PB

deduplication • event_id

Meta Event Deduplication with event_id

Meta deduplicates a browser pixel event and a Conversions API event when both have the same event name and the same event ID and arrive within 48 hours, so it counts the lead once. Your website creates one unique ID at the moment of the event, sends it as eventID in the pixel and as event_id from the server, and you test that only one event appears.

By Ali Murtaza, PrimeBuildLast updated:

01 • the problem

Why do pixel and Conversions API events get counted twice?

When you run both the pixel and the Conversions API (which Meta recommends), the same lead is reported twice: once by the visitor's browser and once by your server. Without a way to tell they are the same, Meta would count two leads. Deduplication is the process Meta uses to keep one and discard the other.

02 • meta's rules

How does Meta decide two events are duplicates?

MethodWhat must matchNotes from Meta's documentation
Event ID (recommended)event_name and event_idDeduplicated if they arrive within 48 hours of the first event with that ID
fbp or external_idevent_name plus fbp and/or external_idWorks mainly when the browser event arrives first; does not deduplicate browser-only or server-only duplicates

Meta's page says that when duplicate events do not meaningfully differ, it generally prefers the one received first. In the pixel code, the ID is passed as eventID in the fourth argument of the track call; on the server it is event_id.

Event flow • one id, two routes

  1. 01

    Form submitted

    Site creates ID, e.g. lead-8f2c…

  2. 02

    Pixel

    fbq('track','Lead',{},{eventID})

  3. 03

    Server

    event_id: same value

  4. 04

    Meta

    Same name + ID within 48h → one event

The ID is created once, at the moment of the event, and shared by both routes.

03 • set it up

How do I set up event_id deduplication?

  1. 1When the form is submitted, generate one unique ID in the page (for example a random string).
  2. 2Fire the pixel Lead event with that ID as eventID.
  3. 3Send the same ID to your server along with the form data.
  4. 4Your server sends the Conversions API Lead event with event_id set to that ID and event_name exactly 'Lead'.
  5. 5Test: submit a test lead and check Events Manager shows it once, received from both browser and server.

Names must match exactly

'Lead' and 'lead' are different event names. So are 'Lead' and 'Lead Submitted'. If the names differ, Meta will not treat the events as duplicates.

04 • what goes wrong

What are the most common deduplication mistakes?

  • Creating a new ID on the server instead of reusing the browser's ID.
  • Using the same fixed ID for every event, so different leads are wrongly merged.
  • Different event names in the browser and the server.
  • The server event arriving more than 48 hours later, outside the deduplication window.
  • A CRM stage event and a website event both called 'Lead' for the same person but with different IDs.

If your numbers look inflated after adding the Conversions API, deduplication is the first thing to check. See also Meta pixel vs Conversions API.

05 • check it

How do I check that deduplication is working?

  1. 1Submit one test lead on your site.
  2. 2In Test Events, confirm you see the Lead event from the browser and from the server.
  3. 3Open each and confirm the event ID is identical and the event name matches exactly.
  4. 4A day later, in Events Manager Overview, check that the test counted as one event, not two.
  5. 5Compare a week of Leads in Events Manager with the same week in your CRM. They should be close; a big gap above your CRM suggests duplicates.

If numbers jump after adding the Conversions API, do not panic and switch it off. Check the event IDs first. Missing or mismatched IDs are by far the most common cause.

06 • web and crm together

How do website events and CRM events fit together without duplicates?

A lead often produces two kinds of event: a website Lead when the form is submitted, and later CRM stage events. These are different events, not duplicates, as long as they have different names.

EventSent byEvent ID rule
Lead (website)Pixel and server, deduplicatedOne ID per form submission, shared by both
QualifiedCRMOne ID per lead for this stage
BookedCRMOne ID per lead for this stage
Won / PurchaseCRMOne ID per lead for this stage

The mistake to avoid is a CRM also sending 'Lead' for website leads that the site already reported. Decide which system owns the Lead event and let the other one start at the next stage.

07 • key terms

Which terms do I need to know?

Short, plain definitions of the terms used on this page.

TermWhat it means
DeduplicationMeta's way of counting a browser event and a server event once when they are the same
event_idA unique ID shared by the browser and server copies of an event
Meta pixelCode on your website that reports visitor actions to Meta from the browser
Conversions API (CAPI)Meta's way for your server or CRM to send events directly to Meta
fbpA Meta browser ID cookie set by the pixel
EventA recorded action, such as Lead, Schedule or Purchase

08 • crm events

Do CRM stage events need event IDs too?

Yes. Meta's best-practices page recommends sending event_id with all events. For CRM stages, use an ID that is unique per lead and per stage, so if the same 'won' event is sent twice by mistake, Meta can recognise it.

Think your leads are being double counted? Ask for the free tracking check and I will look at what Meta receives.

Free tracking check

see what meta actually receives

Free tracking check

I review which events your Meta ads actually receive and what is missing, then send you a short written summary. No calls required, and no promise of results: just a clear picture of your tracking.

questions

Frequently asked questions

01. What is event_id in the Conversions API?

+

A unique ID for an event. When the pixel and the server send the same event with the same ID and name, Meta counts it once.

02. How long is the deduplication window?

+

Meta's documentation says 48 hours from the first event with a given event_id.

03. Does event name case matter?

+

Yes. The names must match exactly in the browser and server events.

04. Can I deduplicate with fbp instead?

+

Meta supports fbp or external_id as another method, but it works mainly when the browser event arrives first. Event ID is the recommended method.

PrimeBuild is not affiliated with any company, platform or website named on this page. Names and links are given only so you can check them yourself.