Making the Pixel and the Conversions API count one sale once
Meta deduplicates on event name and event ID together, so both paths have to send the same ID for the same sale. The failure is almost never subtle: two systems each mint their own ID because neither was built knowing about the other, and Meta has no way to relate them. The implementation is to generate the ID once — the order number works best, because it's stable and identical on both sides without any coordination — and verify the Deduplicated indicator over a full week rather than on the day of handover.
Free30 minutesNo obligation
CAPI deduplication · what breaks
The situation, as it usually presents — CAPI deduplication
- 01
Purchase count near double the order count
Both paths counting independently.
- 02
No deduplication indicator in Events Manager
Both a browser and a server count with nothing joining them.
- 03
Reported ROAS good enough that budget moved
Before anyone questioned the figure.
CAPI deduplication · the fix
What changes — CAPI deduplication
One conversion per order
With both paths still contributing redundancy.
Deduplication visible in Events Manager
Verified over a week, not a moment.
Bidding valuing clicks correctly
It had been told each was worth roughly double.
CAPI deduplication · architecture
Why this pattern keeps recurring — CAPI deduplication
Deduplication is the single most common CAPI failure, and it's structural rather than careless — the two paths are usually built at different times by different people.
- 1
The two paths are built separately
A Pixel goes in early; CAPI is added later, often by a different person or a platform app. Neither knows the other exists.
- 2
Platform integrations mint their own IDs
A one-click CAPI integration has no way to know your container already generates one.
- 3
A valid ID is not a shared ID
Both events process successfully and look correct in isolation. Nothing errors.
- 4
The indicator is the only visible signal
And it's in a screen most accounts never open.
CAPI deduplication · diagnose
How the root cause gets found — CAPI deduplication
In this order. Each step rules out a class of cause, so the last one usually has a single explanation standing.
- 01
Check the Deduplicated indicator per event
Over seven days, not one session.
- 02
Capture both event IDs from one real order
Byte-identical, not merely both present.
- 03
Confirm the event names match exactly
Including case.
- 04
Count active integrations
Partner, app and container can all be sending.
- 05
Check server send latency
A long delay can exceed the window.
CAPI deduplication · prove
How the work is proven — CAPI deduplication
Against the client's own records, not a dashboard turning green.
Source of truth
Backend order records, matched on order ID
- Deduplicated indicator visible on Purchase across a full week.
- Identical event_id confirmed on both paths for a real order.
- Server purchase count within a few percent of backend orders.
- No order ID appearing twice.
- Reconciled over a fully closed window, matched on ID rather than on totals.
- Payload evidence captured from real transactions and handed over.
- The same reconciliation repeated 30 days later.
CAPI deduplication · free audit
What we check in the free audit
- Check the Deduplicated indicator per event
- Capture both event IDs from one real order
- Confirm the event names match exactly
- Count active integrations
- Check server send latency
Checked against
Backend order records, matched on order ID
Free30 minutesNo obligation
CAPI deduplication · when not to buy
Why there are no client numbers on this page — CAPI deduplication
Most agency case studies lead with a percentage. This one doesn't, and the reason is worth stating.
- We don't publish client results we can't substantiate. An audit of this site in August 2026 found named testimonials and before-and-after figures that had never been measured — all of it was removed, and nothing has replaced it that isn't checkable.
- The results that do exist belong to clients under agreement. Publishing anonymised numbers without their sign-off would be the same problem in a thinner disguise.
- What we will commit to in writing is 95%+ conversion accuracy and 8+ Meta Event Match Quality, reconciled against your own order records. That is checkable by you, which a case study percentage never is.
- For proof from actual clients, the video testimonials on the site are real people describing their own rebuild. That is the strongest evidence we have, and it isn't a number we wrote.
CAPI deduplication · what we deliver
What the work involves — CAPI deduplication
One generation point for the event ID
Created once and reused, rather than minted per path.
Order number as the ID for Purchase
Stable, unique, identical on both sides by construction.
Duplicate integrations removed
A partner integration plus an app plus a container is three paths for one order.
Event names matched exactly
Meta matches on name and ID together, and case matters.
Written guarantee
95%+ tracking accuracy
Measured against Backend order records, matched on order ID. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs the fault in your existing browser-side setup and verifies it on a live transaction. Honest about its ceiling: it fixes this instance, not the class.
- Root cause fixed, not worked around
- Verified on a live transaction
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Removes the class of failure rather than this instance. Money events sent from your order records through a first-party container on your own subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your order records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, for advertisers whose spend makes an attribution leak more expensive than the build.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds reversed at every destination
- Monitoring so the next break surfaces in days
FAQ
CAPI deduplication questions, answered
You can, and you lose browser signals that improve match quality and attribution. Both paths deduplicated is stronger than either alone.
The order number. Stable, unique, and identical on both sides without coordination between the two implementations.
It only appears where both a browser and a server event arrived. A server-only event like a qualified lead will never show it, correctly.
Deduplication applies to new events immediately. Historical double-counted conversions can't be corrected.
