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:
- Artificially high ROAS in your Ads Manager, misleading you into scaling unprofitable ad sets.
- Wasted ad budget as Facebook optimizes for the wrong audiences.
- Messy optimization data that confuses Meta's learning algorithms.
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:
- If the browser Pixel event arrives first, Meta records it. When the CAPI event arrives later (up to 48 hours), Meta sees the matching
event_idand merges them.
- You can verify this inside Events Manager -> Data Sources. Look for your Pixel, select the event, and check the Deduplication tab. You should see a green badge saying *"Deduplicated"* with a high match rate.