Meta pixel and Conversions API deduplication, explained
How Meta matches a browser event and a server event into one conversion: event_id and event_name, the 48-hour window, and the fbp fallback.
Short answer: Meta merges a pixel event and a Conversions API event into one when both have the same event_name and the same event id (eventID in the pixel, event_id on the server), and they arrive within 48 hours of each other. Use a stable id such as the order id for purchases, so every copy of the same purchase carries the same value.
The rule
| Browser pixel | Conversions API | Must match |
|---|---|---|
| event (for example Purchase) | event_name | Exactly |
| eventID | event_id | Exactly |
| Received first | Received within 48 hours | Time window |
Meta keeps one event and drops the duplicate. The 48 hours count from the first event received with that id.
Choosing the event id
- Purchases: derive the id from the order id. The thank you page pixel and a server copy from an order webhook then produce the same value without sharing any state.
- Funnel events: generate the id in the browser and pass it to the server copy, or derive it from something both sides know, such as the checkout or session.
- Never reuse an id for a different event: Meta will drop the second one as a duplicate.
The fallback without an event id
If fbp or external_id is sent from both browser and server, Meta can deduplicate automatically. It only works one way: the server event is not discarded if the browser event has not been received in the past 48 hours. An explicit event id is the reliable option.
How to check it
- Open Events Manager and select the dataset.
- Open an event such as Purchase and look at the deduplication details for browser and server.
- Compare purchase counts with your store orders for the same days. A server count close to double the orders points to ids that do not match.
How TRACK ATLAS does it
TRACK ATLAS gives the browser and server copies of each event the same id. Purchases are keyed on the order id, so the Web Pixel on the thank you page and the order webhook backstop deduplicate in Meta and Pinterest, and TRACK ATLAS also skips a purchase it has already sent for the same order.
Questions
What happens if the event ids do not match?
Meta treats the browser and server events as two different conversions, so purchases are counted twice.
How long does Meta wait to deduplicate?
48 hours from the first event it receives with that event id. A matching event that arrives later is counted again.
Can Meta deduplicate without an event id?
Partly. If fbp or external_id is sent from both browser and server, Meta can remove the server copy, but only when the browser event arrived first.
SOURCES
Try TRACK ATLAS free for 14 days.
Start free trial