Skip to main content
CAPI deduplicationEngagement pattern

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

  1. 01

    Purchase count near double the order count

    Both paths counting independently.

  2. 02

    No deduplication indicator in Events Manager

    Both a browser and a server count with nothing joining them.

  3. 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. 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. 2

    Platform integrations mint their own IDs

    A one-click CAPI integration has no way to know your container already generates one.

  3. 3

    A valid ID is not a shared ID

    Both events process successfully and look correct in isolation. Nothing errors.

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

  1. 01

    Check the Deduplicated indicator per event

    Over seven days, not one session.

  2. 02

    Capture both event IDs from one real order

    Byte-identical, not merely both present.

  3. 03

    Confirm the event names match exactly

    Including case.

  4. 04

    Count active integrations

    Partner, app and container can all be sending.

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

Get my free conversion tracking audit

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.

Get my free conversion tracking audit

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
Fix what I have

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
Rebuild it server-side

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
Get the full stack

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.

Free · 30 min

Get Pixel and CAPI counting once

Free30 minutesNo obligation