Deduplication is the step where an analytics or advertising platform recognises that two reports of the same action describe one event, and counts it only once. It matters most when the same conversion is sent by two routes, such as the Meta Pixel in the visitor’s browser and the Conversions API from your server, which is now a standard way to track ads.
How deduplication works
A platform needs some way to tell that two incoming events are the same action. On Meta, the browser event and the server event must carry the same event name and the same event ID: a unique reference your site creates for that action, such as an order number or a code generated when a form is submitted. When the Meta Pixel and the Conversions API both send a Purchase with the ID 10482, Meta keeps one and discards the other. At the time of writing (October 2026), Meta matches pairs that arrive within 48 hours of each other.
Google Ads and GA4 rely on the transaction ID for purchases: a conversion arriving with an order number already recorded for the same conversion action can be ignored. For leads, Google Ads lets you count one conversion per ad click rather than every submission, so a person who fills in your form three times is not reported as three leads.
Deduplication also happens outside tracking code. When you merge customer lists from your shop and your email platform, or import CRM leads alongside ad leads, the duplicates have to be matched and combined on an email address, phone number or customer number.
Why it matters
Without deduplication, every conversion tracked by two routes is counted twice. Your cost per lead halves on paper, your return on ad spend doubles, and the platform’s bidding learns to chase results that never happened. Budget decisions then rest on figures roughly twice the truth.
A second, wider kind of duplication is not fixed by any setting: separate platforms each claiming the same sale. If a customer clicked a Meta ad on Monday and a Google ad on Thursday, both platforms may count the purchase. Added together, the platforms’ figures will exceed your real orders, which is why platform totals should always be checked against sales in your shop or CRM.
Common mistakes
- Sending browser and server events with no event ID, or with IDs generated separately on each side so they can never match.
- Using different event names on each route, such as “Lead” in the pixel and “SubmitForm” from the server.
- Sending the same fixed value as the event ID on every event, so Meta treats genuinely separate purchases as duplicates and drops them.
- Treating the server route as a way around the cookie banner. If a UK visitor has declined marketing cookies, sending their data through the Conversions API instead still needs a lawful basis under UK GDPR.
- Checking deduplication once at launch and never again, when a plugin or theme update can change how IDs are created.
How to act on it
In Meta Events Manager, open each event you send by both routes and look at the details for browser and server events, which show whether the two are being matched. If they are not, fix the event ID before anything else, ideally using the order or submission number your system already creates. In Google Ads, make sure purchase conversions pass a transaction ID and that lead conversions count one per click, unless repeat leads from the same person are genuinely valuable to you.
Then compare the totals with reality: orders in the shop, or enquiries in the inbox or CRM, for the same dates. If a platform reports noticeably more than actually happened, duplication is the first thing to suspect. I check this as a matter of routine in Facebook ads management, because Meta’s delivery depends on accurate conversion signals.
