The point of running a server-side pipeline alongside browser pixels isn’t to replace the browser events — it’s to catch the ones the browser drops. When both paths succeed, destinations need to see it as one event. That’s what event_id is for.
The pattern
- The Web Pixel generates an
event_id(UUIDv7) and stamps every browser-side event with it. - The same event is sent server-side via eventabee with the same
event_id. - Destinations (Meta, Google, TikTok, Pinterest, Snapchat) dedupe on
event_idwhen they see both.
If the browser event fails (blocker, ITP, network), only the server event arrives. The destination sees one event. Either way, the destination counts the conversion once.
What you need to do
Nothing, as long as you use eventabee’s Theme App Embed. The embed’s Web Pixel and the server-side ingest share event IDs automatically.
If you have an additional browser-side tag (say, Meta’s native pixel installed by your theme), you’ll get duplicates unless you disable either the theme-side tag or eventabee’s browser fan-out for that destination.
How to check dedup is working
- Open a browser you control, load the storefront, and trigger a purchase.
- In Meta’s Events Manager → Test Events (with test code on both your browser pixel and eventabee), you’ll see two events — one from browser, one from server — sharing an event ID. Meta marks them as deduped.
Per-destination behavior
- Meta: dedupes on
event_idwithin a 48-hour window. - Google: dedupes on
transaction_idfor purchase events; other events dedupe client-side. - TikTok: dedupes on
event_idfor 10 minutes. - Pinterest: dedupes on
event_idfor ~20 minutes. - Snapchat: dedupes on
event_idwithin a short window.
eventabee’s event IDs are generated once and reused across paths, so these windows don’t bite you in normal operation.
Edge cases
- Refunds reissued as new orders. Shopify treats certain exchanges as a new order. eventabee mints a new
event_id, which is correct — that’s a new conversion. - Replays. Replayed events keep their original
event_id, so replaying a week-old purchase doesn’t double-count at the destination.