By Hira Ads Pro·2 min read·October 12, 2026
When you send the same conversion through the Meta Pixel and the Conversions API, Meta needs to know it is one lead, not two. That is deduplication. Get it wrong and every lead is counted twice, and campaign optimisation drifts.
How Meta matches events
Meta treats a browser event and a server event as duplicates when:
- The event name matches (for example both are
Lead) - The event ID matches:
eventIDin the Pixel andevent_idin the Conversions API
Matching events must also arrive within Meta’s deduplication window, so send server events promptly.
Generate one ID per action
Create the ID once, at the moment the action happens, and reuse it for both sends:
// Browser: after the form is accepted
const eventId = 'lead_' + leadId;
fbq('track', 'Lead', { content_name: 'quote_request' }, { eventID: eventId });
dataLayer.push({ event: 'generate_lead', event_id: eventId });
// Server: same ID in the Conversions API payload
{
"event_name": "Lead",
"event_id": "lead_123",
"event_time": 1760000000,
"action_source": "website",
"user_data": { "em": ["<sha256 email>"], "fbp": "fb.1....", "fbc": "fb.1...." }
}
Using the lead or order ID from your database is ideal: it is unique and available on both sides.
Common mistakes
- Different IDs: the browser generates a random ID and the server generates another
- Different event names:
Leadin the Pixel,leadorgenerate_leadin CAPI - The ID is put in the wrong place: inside custom data instead of the event ID field
- Server events sent hours later in a batch, outside the deduplication window
- Two Pixels or two CAPI integrations (for example a plugin and server-side GTM) both sending the same event
How to test
- Open Events Manager → Test Events for your dataset.
- Submit a test lead on your site.
- You should see the event from both browser and server, with one marked as deduplicated.
- Check the Overview tab over the next day: the event should show both integrations with a healthy deduplication rate.
Do not forget match quality
Deduplication stops double counting, but server events still need good customer information parameters to be matched to people. Send hashed email or phone where you have consent, plus fbp, fbc, IP address and user agent.
Read the wider context in Meta Pixel vs Conversions API, or have it set up as part of conversion tracking.
Want this set up properly on your site?
Request an audit and get a clear plan before any changes are made.
Request an Audit →