Conversions API: what it fixes, what it does not, and how to set it up
Sending conversion events from your server rather than the browser recovers measurement that ad blockers and browser restrictions removed. It does not recover anything a visitor declined, and treating it as a way around consent is the mistake to avoid.
A browser pixel fails for ordinary reasons: an ad blocker, a browser restricting third-party storage, a network error, a page closed before the script ran. The result is that the platform never learns about a conversion that genuinely happened, and optimises with worse information.
A conversions API sends the same events from your server, where none of those failures apply. That is a real fix for a real problem, and it is routinely oversold as something else.
What it genuinely fixes
- Blocked or failed pixels. The server does not run an ad blocker.
- Events after the browser is gone — a payment confirmed by webhook an hour later, a subscription renewal, an order that becomes valid only after a bank transfer clears.
- Data quality. Your server knows the true order value net of discounts, the real currency and the actual product ids, rather than whatever the front end happened to have.
- Corrections. A refunded or cancelled order can be reported, which a pixel fired at checkout never can.
What it does not fix
- It is not a consent workaround. Sending events server-side for a visitor who refused is the same processing by another route, and both the platforms' terms and EU rules treat it that way.
- It does not restore identity. Matching still depends on identifiers you are allowed to send — a hashed email, a click id — and without one the event matches nobody.
- It does not make attribution accurate. It improves the platform's input. The platform's model, window and view-through counting are unchanged.
Setting it up without double counting
Most shops run pixel and server events together for coverage, which means the same conversion arrives twice. Deduplication is what stops that being a problem, and it is the step most often skipped.
- Send a shared event id from both the browser and the server for the same conversion — typically the order id.
- Include the event time as the true moment, not the moment you sent it.
- Send the click identifier where you have it, since it is the strongest match signal available.
- Hash and normalise identifiers exactly as specified — lowercased, trimmed, then hashed. A wrongly normalised hash matches nothing and fails silently.
- Verify in the platform's diagnostics that deduplication is happening. This is the only way to find out, and it is worth checking again after any checkout change.
Match quality is the number to watch
Both major platforms report an event match quality figure. It is the most useful diagnostic in the whole setup and almost nobody looks at it.
- Low match quality usually means missing identifiers rather than a broken integration — no email, no click id, no phone.
- Send every identifier you are permitted to, not the minimum. More fields, better matching.
- Watch it after site changes. A checkout redesign that stops passing the email address will show up here weeks before anybody notices the campaign performance drift.
Setting expectations honestly
Expect reported conversions to rise after implementation, and be careful about what that means. Some of the increase is genuinely recovered measurement. Some is double counting that deduplication is not catching. None of it is extra revenue.
Reconcile against your own order data before drawing conclusions. If the platform's reported conversions now exceed your actual orders for the same period, deduplication is broken, and optimising bids against that number will make real decisions on fictional data.
Sources and further reading (4)
- Meta — Conversions API
- Meta — Event deduplication
- Google — Enhanced conversions
- EDPB — Guidelines 2/2023 on Art. 5(3) ePrivacy
Checked on 23 September 2026. Provider prices, mailbox rules and legal guidance change — verify anything you plan to act on.
A number you can check the platform against
Auralata reads every order, refund and returned parcel from WooCommerce, so you have a complete and independent count to reconcile a platform's reported conversions against before trusting them.