Glossary

Meta CAPI — Conversions API

The server-side interface for sending conversion events to Meta. Why deduplication matters, and how it differs from the browser pixel.

Meta CAPI (Conversions API) is Meta’s server-to-server interface for sending conversion events. Instead of a browser script reporting a conversion, your server sends it directly.

Why it exists

After ATT and browser restrictions, browser-side signals became incomplete: the pixel could not always fire, and could not always identify the user. CAPI gives the platform a server-side signal, which is not affected by ad blockers or by a page that fails to load.

In practice: the three steps

Sending an event to CAPI does not need an integration. It needs three pieces.

  1. Dataset and token. You need the dataset (pixel) ID and an access token that can manage events. The token lives on the server, never in the browser.
  2. The event payload. At minimum event_name, event_time in UTC, event_id for deduplication, action_source (usually website) and user_data with the matching keys: email or phone hashed in SHA-256, fbclid, IP and user agent. Without user_data the event arrives but is attributed to nobody.
  3. The call. A POST to https://graph.facebook.com/<VERSION>/<DATASET_ID>/events with data=[…] and the token. The response reports how many events were received and how many found a match.

What to check afterwards: events received equal events sent, and no event dropped because its event_time is older than 7 days.

Deduplication

If both the pixel and CAPI report the same conversion, Meta must know they are the same event, or it counts two. The mechanism is an event_id shared by both reports:

pixel:  fbq('track', 'Lead', { ... }, { eventID: 'lead_9f21' })
CAPI:   { event_name: 'Lead', event_id: 'lead_9f21', ... }

Without a consistent event_id, conversions are inflated — and inflated conversions lower the reported CPL, which makes the platform’s number look better than reality. It is the first thing to check when the two CPLs disagree.

What it improves

  • Match quality: sending fbclid, hashed email or phone raises the share of events the platform can attribute.
  • Optimisation: the platform’s optimiser learns from the events it receives. If it only sees a fraction, it optimises on a fraction.

What it does not do

It does not make the platform’s reported numbers equal to your first-party numbers. The model still applies its own window and modelling — see real CPL vs platform CPL.

Last updated: 2026-10-26

FAQ

Do I still need the pixel if I use CAPI?+

Usually both are sent, and the platform deduplicates them using the event_id. CAPI alone is more reliable; the pixel alone is more fragile. If you send both without a shared event_id, you will double count conversions.

Ready to find out what
converts, for real?

Free to start.

Start free →