Skip to content
  • Cover: You have a pixel. Your data is half missing. The same sale gets counted twice, or not at all. The cause is a single field.
  • Diagnosis: Events Manager tells you.
  • Cause: The two records don't carry the same ID.
  • Window: The 48-hour rule.
  • Quality: What's your match quality?
  • Verification: Let's see if it's fixed.
  • Closing: Comment PIKSEL ("pixel"). We'll DM you the setup checklist.
1/7

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

  1. Events Manager tells you.

    3 MINUTES

    Events 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.

  2. The two records don't carry the same ID.

    10 MINUTES

    Meta 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' });
  3. 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."

  4. What's your match quality?

    15 MINUTES

    Next 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

[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