Analytics and Tracking

Event ID

A unique reference sent with a conversion so an ad platform can recognise the browser and server copies of the same action and count it once.

Quick facts: Event ID

Category
Analytics and Tracking
Level
Advanced
Affects
Meta conversion counts, reported ROAS, campaign bidding
Where to see it
Meta Events Manager, Test Events tool, Meta Pixel Helper
In this article4
  1. How an event ID works
  2. Why it matters
  3. Common mistakes
  4. How to act on it

An event ID is a unique reference attached to a tracked action, such as a purchase or a lead, so that an ad platform can tell when it has received the same action twice and count it once. It matters most when you send conversions to Meta from both the browser, through the Meta Pixel, and your server, through the Conversions API.

How an event ID works

Many sites now report each conversion twice on purpose. The browser sends it through the Pixel, which is quick but can be stopped by ad blockers, browser privacy features or a declined cookie banner. The server sends it through the Conversions API, which is much harder to block. Between them, fewer conversions go missing, but Meta now receives two copies of most of them.

Meta sorts this out through deduplication. When two events reach the same dataset with the same event name and the same event ID, within 48 hours of each other, Meta keeps one and discards the other. In the Pixel code the ID is passed as eventID; in the Conversions API it is the event_id field.

The ID can be any value unique to that one action. For a purchase, the order number works well. For a lead, a reference created when the form is submitted, and stored so both the browser and the server can read it, does the same job. What matters is that the browser copy and the server copy carry exactly the same value.

Other platforms use the same idea. TikTok’s Events API also deduplicates on an event ID, while Google relies on the transaction ID to drop repeated purchases in GA4 and on order IDs to drop repeated conversions in Google Ads.

Why it matters

Without a matching event ID, Meta counts the browser and server copies separately. A shop taking 100 orders a week could see close to 200 purchases in Ads Manager, a reported return on ad spend almost double the real one, and a bidding system convinced its campaigns are doing better than they are. For a UK business deciding whether to put more money into Facebook and Instagram, that is an expensive misreading.

The opposite fault is just as damaging. If one ID is reused across different actions, Meta treats genuine conversions as duplicates and throws them away. Campaigns then look weaker than they are and may be paused for the wrong reason.

Common mistakes

  • Different IDs on each side. Generating a random ID in the browser and a separate one on the server means nothing ever matches.
  • A fixed ID. Hard-coding a value such as “purchase”, or leaving a template placeholder unfilled, makes every event look like the same one.
  • Mismatched event names. Deduplication needs the event names to match exactly as well. Send Purchase from both the Pixel and the server, not Purchase from one and a custom name from the other.
  • Late server events. Server events sent in a nightly batch can fall outside the 48-hour window.
  • Assuming the plugin handles it. Some Shopify apps and WordPress plugins set event IDs correctly; others send server events without one. Check rather than assume.

How to act on it

  1. In Meta Events Manager, open your dataset, select each conversion event and look at the deduplication and event coverage details, which show whether browser and server events are being paired.
  2. Place a test order or submit a test lead with the Test Events tool open, and confirm the browser and server events show the same event ID.
  3. Compare a week of purchases in Ads Manager with your shop’s real order count. A reported figure well above the real one points to failed deduplication.
  4. Agree a source for the ID with your developer: the order number for purchases, a stored reference for leads.

Checking deduplication is a standard step when I set up tracking for Facebook and Instagram ads management, because every reported result depends on it.

Do and do not

Do

  • Use the order number as the event ID for purchases
  • Send identical event names from browser and server
  • Check deduplication in Events Manager after every tracking change

Do not

  • Generate separate IDs in the browser and on the server
  • Hard-code one ID for every event
  • Batch server events beyond the 48-hour window

Questions people ask about this

Is an event ID the same as a transaction ID?

Not quite. A transaction ID identifies an order, and GA4 and Google Ads use it to avoid counting one purchase twice. An event ID identifies one sent event, so Meta and similar platforms can pair the browser and server copies. For purchases it is often sensible to use the order number for both.

Do I need an event ID if I only use the Meta Pixel?

Not for its main purpose, because with a single source there are no browser and server copies to pair. Adding one costs little, though, and means deduplication works from the first day if you add the Conversions API later. The bigger risk with a Pixel-only setup is a confirmation page that fires the purchase event on every reload, which is better fixed at the page.

How do I know if deduplication is working?

In Events Manager, each event's details show how browser and server events overlap and whether they are being deduplicated. The practical test is a purchase count close to your real order count rather than nearly double it. Use Test Events while placing a test order to watch both copies arrive with the same ID.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.