Visuals in Turkish · the full text is on this page
Solution Desk · Meta Ads
You Have a Pixel. Your Data Is Half Missing: Meta Pixel + Conversions API event_id Deduplication
The same sale gets counted twice, or not at all. The cause is a single field.
Short answer
The Meta Pixel reports a sale from the browser, and the Conversions API reports the same sale from the server; Meta counts the two records as one sale only if event_name and event_id match. If event_id doesn't match, the sale is counted twice or one of the records is lost. The fix is to send the same ID, for example the order number, from both sides.
4 steps · 2 min read · · Turan Yasin Salcı
Step by step · 4 steps
0/4 checked · saved in this browser only
Events Manager tells you.
3 MINUTESEvents Manager → Data sources → Overview. If an event has both a browser count and a server count, the deduplication rate is shown below it.
If you see this: If the number of deduplicated events is 0 or very low, Meta can't match the two records as the same sale. The number of sales in your report may be showing double the real figure.
The two records don't carry the same ID.
10 MINUTESMeta merges the two records coming from the browser and the server only if event_name and event_id match. Browser side:
Server side: In the Conversions API request, the same value goes into the event_id field. Use your order number; it just has to be the same in both.
fbq('track', 'Purchase', { value: 1200, currency: 'TRY' }, { eventID: 'order-8241' });The 48-hour rule.
The two records must arrive no more than 48 hours apart. If you send the server side as a nightly batch job, the delay can exceed this window.
- Send the server event at the same time as the event; don't queue it.
- event_source_url should be the same address on both sides.
- Also pass the fbp and fbc cookies to the server.
Why it matters: The fbc cookie carries the ID of the ad click. If you don't send it, the sale can't be attributed to the ad, and you end up saying "the ads don't work."
What's your match quality?
15 MINUTESNext to every event there's an Event Match Quality score out of 10. The fields that raise the score, hashed:
Rule: These fields are hashed with SHA-256 before they leave the browser; no plain data goes to Meta. Your privacy notice and consent flow must be consistent with this.
How to measure it
Let's see if it's fixed.
Open the Test Events tab and try a purchase on your site. In order:
- The browser and server events land in the list at the same time
- The same event_id appears next to both
- After 24 hours, the deduplication rate isn't zero
- The match quality score has gone up
Bottom line: You build your ad budget decisions on these numbers. If the measurement is wrong, you have no chance of making the right decision.
Free · PDF
Download the PIXEL checklist.
A printable checklist version of the steps on this page. The PDF is in Turkish; no sign-up needed.
Download the checklist (PDF in Turkish)Sources
- AMeta for Developers: Handling Duplicate Pixel and Conversions API EventsPrimary source · checked: September 20, 2026
[A] primary source · [B] industry research · [C] practitioner · [D] our own data
This post is also on (in Turkish)
Frequently asked questions
Why do sales show up double in my Meta report?
The Pixel and the Conversions API are sending the same sale separately, but if the event_id field doesn't match, Meta counts them as two separate sales. If the deduplication rate on the Events Manager → Data sources → Overview screen is zero or very low, this is the problem.
How far apart can the pixel and server events arrive?
Meta matches the two records if they arrive no more than 48 hours apart. event_source_url must be the same on both sides, and the fbp and fbc cookies must be passed to the server. Hashed email raises match quality the most.
Next step
Let’s look at your site together.
Free Digital Checkup: a health score for your website, your ads and your visibility in AI search, plus what to fix first. 3 minutes.
More guides

Tools
How to transform product photos with ChatGPT Images 2.5: 20 ready-made image prompts (step by step)
26 steps · 14 min

Tools
5 Free Animation Skills for Claude Code: How to Install Three.js, GSAP, design-dna, LottieFiles and Genjutsu (Step by Step)
16 steps · 9 min

Tools
How to Use the Prompt Library and Prompt Builder: Copy a Ready-Made Prompt, Fill In the Blanks
9 steps · 7 min






