← Back to playbooks
Conversions API Published on June 27, 2026

How to Fix Meta Event Deduplication for Browser and Server Tracking

Learn how to configure Meta Pixel and Conversions API deduplication using Event ID to prevent double-counting conversions and keep ad reports accurate.

The Danger of Redundant Event Reporting

To achieve maximum conversion accuracy, Meta recommends using a redundant tracking setup:
1. Meta Pixel: Tracks browser-based actions (page views, button clicks) directly from the user's browser.
2. Conversions API (CAPI): Tracks server-based actions (successful checkouts, approved payouts) directly from your server.

However, if both paths report the same purchase to Meta, your ad reports will double-count conversions.

This causes:



To fix this, you must configure Event Deduplication.

---

How Meta Deduplication Works

Meta deduplicates events using two primary parameters:
1. Event Name: (e.g., Purchase or Lead).
2. Event ID: A unique string generated at the time of the click that identifies that specific conversion path.

When Meta receives a Purchase event from both the browser Pixel and PostbackFlow CAPI with the exact same Event ID, it automatically merges them into a single conversion.

---

Step 1: Generate a Unique Event ID on the Landing Page

To link browser clicks to server conversions, your landing page must assign a unique ID to the user's session.

If you are using the PostbackFlow auto-tagging JS script (track.js), this unique ID is automatically generated as the click_id and saved in the user's browser storage.

If you are coding it manually, generate a unique random string (UUID) on your landing page and store it in a JavaScript variable:

const eventId = "pb_" + Math.random().toString(36).substring(2, 15);

---

Step 2: Configure your Browser Pixel Code

When firing events from the browser Pixel, you must pass the generated ID as the third parameter (event_id) in your fbq('track') calls.

Modify your standard Facebook Pixel script to include the event_id:

// Standard Pixel Tracking with Event ID
fbq('track', 'Purchase', {
value: 29.99,
currency: 'USD'
}, {
eventID: eventId // Pass the unique ID here
});

---

Step 3: Pass the Event ID to PostbackFlow

When the user clicks the affiliate link to proceed to the offer, you must forward that exact same ID into the tracking link so the affiliate network can record it.

If you are using the PostbackFlow redirection links, append the ID to the tracking link:
https://track.yourdomain.com/click/YOUR_TOKEN/CAMPAIGN_TOKEN?click_id=YOUR_EVENT_ID

When the sale completes, the affiliate network sends the event back to PostbackFlow's postback endpoint with this ID.

---

Step 4: Watch Meta Merge the Events

When PostbackFlow forwards the checkout conversion to Meta CAPI, it maps the stored click_id as the event_id in the API payload.

Once Meta's servers receive both events: