There are two ways to tell Meta you made a sale. Understanding the difference explains why your numbers don't add up.
The browser pixel (client-side)
Code that runs in your customer's browser. When someone buys, the browser tells Meta.
Problem: it depends on the browser running that code. Ad blockers, iOS privacy settings and automatic cookie clearing shut it off.
The Conversions API (server-side)
The signal goes straight from a server to Meta's server, without passing through the customer's browser.
Advantage: it can't be blocked. A blocker can shut off a script in a browser, but it can't get between two servers.
Which one should you use?
Both. They aren't alternatives: they're two channels that complement each other. The pixel captures what it can from the browser, and CAPI makes sure the event arrives anyway.
Meta explicitly recommends using both in parallel. The key is deduplication: each event carries a unique identifier, so if it arrives through both channels, Meta counts it only once.
Quick comparison
- Ad blockers — the pixel gets blocked, CAPI doesn't
- iOS — the pixel loses signal, CAPI keeps it
- Cleared cookies — the pixel loses attribution, CAPI keeps it
- Data quality (EMQ) — the pixel sends whatever the browser has, CAPI sends enriched data
- Installation — the pixel is easy, a manual CAPI setup needs a developer (not with Escalafy)
The Escalafy Pixel turns on the CAPI layer without you having to configure anything, and handles deduplication automatically.