Facebook Conversions API Duplicate Events: Why They Happen and How to Fix Them
Quick fix
Facebook conversions api duplicate events happen when the Pixel and the Conversions API both send the same event and Meta can't tell they match. Add the same event_id and event name to both, with the Pixel's eventID as the fourth argument of the fbq track call. Meta then keeps one copy, if both arrive within 48 hours.
- Confirm both Pixel and Conversions API send the same event.
- Add the same ID to both: Pixel eventID and server event_id.
- Use matching event names on both sides.
- Check both copies arrive within 48 hours.
Can't fix it yourself? Send me the details
What this error means
When you send an event from both the browser Pixel and the server, Meta can receive it twice. Deduplication tells Meta the two are the same event so it keeps one. Without a shared event ID, or with mismatched names, both copies can be counted.
Why it happens
1No shared event ID
Both sides need the same event ID for Meta to match them.
How to tell if this is you: Events lack an event_id on the server or the eventID in the Pixel.
2Event names differ
The Pixel event and the server event_name must match.
How to tell if this is you: The names differ in spelling or case.
3Events arrive too far apart
Deduplication only works within 48 hours of the first event with that ID.
How to tell if this is you: The server batch is sent days later.
4Duplicates from one source
The fbp method does not remove duplicates sent twice from only the browser or only the server.
How to tell if this is you: The same source fires an event twice.
How to fix it
Add shared event IDs
For: No shared event ID, Event names differ
- Add the same unique ID as event_id on the server and eventID in the Pixel.
- Pass eventID as the fourth argument of the fbq track call.
- For events without parameters, pass an empty object first.
- Make sure the event names match.
Send both copies promptly
For: Events arrive too far apart
- Send server events within 48 hours of the browser event.
Or use fbp and external ID
For: Duplicates from one source
- Use event_name with fbp or external_id consistently on both sides.
- Expect it to work mainly for browser-then-server order.
How long it takes
Meta only deduplicates events received within 48 hours of the first event with a given event_id.
How to stop it happening again
- Generate the ID once and reuse it for browser and server.
- Skip deduplication only for events you send once, from one source.
- Deduplicate every redundant event, not just purchases.
From my desk
For each event I send the same event name and the same event ID from both the browser Pixel and Conversions API, so Meta can deduplicate them. On Shopify, I check how the app generates those IDs. Then I confirm in Events Manager that deduplication actually shows up, instead of trusting the setup screen.
Muhammed Abdul Kalam
When to get help
- You've worked through the checks and the numbers or status still aren't right.
- The setup involves a tag manager, Shopify app or developer you cannot reach and nobody can explain it.
- Results are suffering during a launch or sale and every day costs real money.
Stuck on this? Send me the details.Tell me what the platform shows and what you've tried so far.
Send me the detailsFAQs
Do I always need deduplication?
No. If you do not send the same event twice via both Pixel and Conversions API, you do not need it for those events.
Which method does Meta recommend?
Event ID and event name.
Where does the Pixel event ID go?
In the fourth argument of the fbq track call.
Which copy does Meta keep?
If the events do not differ meaningfully, Meta generally prefers the one received first.
Is there a time limit?
Yes. Events are only deduplicated if received within 48 hours of the first event with that ID.