What is event deduplication?

Analytics & measurement

Why do events arrive twice?

Many shops send the same purchase through two routes. The tracking pixel is code in the visitor's browser. The Conversions API (CAPI) sends the event from your own systems. Meta recommends running the Conversions API alongside the Pixel1.

Two routes catch more sales. They also mean the platform can see the same sale twice.

How does Meta decide it is the same event?

Meta matches on the event name and the event ID: the Pixel's eventID must match the Conversions API's event_id, and the event names must match too. If both routes send "Purchase" with the same ID, Meta keeps one. The window is 48 hours from when Meta receives the first event with that ID1.

What goes wrong in practice?

The ID is missing on one side. Or it differs between browser and server. Or the two routes name the event differently. In each case the platform cannot tell it is one sale. Reported purchases and ROAS go up. The shop's order count does not. One more trap: Meta says that if you send two identical server events, it discards neither1. Deduplication between Pixel and server does not clean up a server that fires twice.

Other platforms have the same job. TikTok's help centre says you must share the same event ID through both its Pixel and its Events API for deduplication to take place2. Google's documentation uses a transaction ID to deduplicate between tag and API for enhanced conversions3.

For ZFD: Duplicate purchases are one of the first things we check in an ecommerce tracking audit.

Worked example

Easily confused with

  • Event deduplication vs Event Match Quality (EMQ)

    Meta's score of how well customer details on server events match Meta accounts. It is about matching people, not counting events.

  • Event deduplication vs Conversions API

    The route that makes duplicates possible. Deduplication is the control that keeps them out.

  • Event deduplication vs Cleaning data in your shop

    Deduplication happens inside the ad platform. It does not fix your own order data.

FAQ

A rider in a red cape and bicorne hat on a rearing yellow plush horse, after David's Napoleon Crossing the Alps

Who sets the event ID?

Whoever builds the tracking. It must be the same value on the browser side and the server side for the same event.

Are two identical server events deduplicated?

Not by Meta. Its documentation says two consecutive server events with the same information are both kept1. The fix sits in your server setup.

How can I tell if I have duplicates?

Compare the platform's purchase count with your shop's order count for the same period. A big gap in favour of the platform is one reason to look. Attribution windows also cause gaps, so check duplicates first, then the rest.

Let’s find what’s actually working.

Next step. Not sure your tracking counts each sale once? Start with our measurement and tracking audit.