// Tracking and data

What Is the Conversions API (CAPI) and How It Works in Meta Ads

The Conversions API sends events from your server to Meta. Read the send path, how event_id removes double counting, and how to raise match quality.

What Is the Conversions API (CAPI) and How It Works in Meta Ads

The Conversions API is a server-to-server path that sends events to Meta. The pixelPixelA piece of code on a web page that tells the ad platform somebody opened the page or took an action.What is the Meta Pixel? sends events from the buyer browser. The Conversions APICAPIA server path that sends conversion data from your system to the ad platform, without depending on the buyer browser.What is the Conversions API (CAPI)? sends the same events from your server. Both paths write into one dataset, and Meta joins them with event_id.

This page explains the send path, how to remove double counting, and how to read the event match score.

How the Conversions API works in 3 steps

A buyer presses pay. The browser sends one event. Your server sends the same event with the same event_id. Meta receives two sends and stores one row.

01BrowserThe pixel sends Purchase with anevent_id and an order value.02Your serverThe ConversionsConversionThe action you count as a result, for example a paid order, a sign-up, or a chat that becomes a qualified buyer.Open the glossary APIAPIThe official door 2 systems use to exchange data, without anybody copying it by hand.Open the glossary sends the sameevent from the server side.03Meta datasetMeta joins the two sends into asingle row.

Scroll the diagram sideways

Two paths, one dataset. A matching event_id makes Meta keep one row instead of two.

Why the pixel alone leaves gaps

The pixel runs inside the browser. Ad blockers, browser cookie limits, and network failures stop that send. Your server does not meet the same limits, because the call runs from server to server.

The pixel also stops at payments that complete outside your site. A payment confirmation that arrives as a webhookWebhookAn automatic message one system sends to another the moment something happens, for example an incoming WhatsApp message.Open the glossary is one example. Only the server can send that event.

Deduplication: one purchase stays one row

Meta reads two fields to join the sends: event_name and event_id. Send the same values on both paths for the same single action.

FieldPixelConversions APIRule
event_namePurchasePurchaseMust match exactly.
event_idOrder IDOrder IDMust match exactly.
event_timeClick timeServer timeA small gap is accepted.
action_sourcewebsitewebsiteState where the action happened.

The order number is a safe candidate for event_id, because that number is already unique in your system.

Event match quality and how to raise it

Meta gives an event match score to each web dataset. The score rates how well the customer information you send can match one account. The Dataset Quality API publishes that score together with event coverage and deduplication state.

Email and phone numberThe strongest match fields. Send them as a hash.First name, last name, cityThese help when an email address is missing.Click ID (fbc) and browser ID (fbp)They tie the event to the ad click that produced it.IP address and user agentAI agentAn AI program that performs work steps by itself, for example reading a message, drafting a reply, and recording the result.Open the glossaryBase fields. Send them on every server event.

Scroll the diagram sideways

Send the top fields first. Meta requires email and phone as a SHA-256 hash.

Your server creates the hash before the send. Meta does not accept a raw email address on the Conversions API.

A safe install order

  1. Install the pixel first, then confirm the base events arrive.
  2. Pick one source for event_id, such as the order number.
  3. Send server events for one event first, such as Purchase.
  4. Check the deduplication state in Events Manager for 7 days.
  5. Add the next event after the double rows disappear.

Run the tracking health check to see the state of your own install.

Questions and answers

Does the Conversions API replace the pixel? No. Meta asks you to run both paths together. The pixel carries browser signals such as fbp and fbc, and the server carries events that never leave the browser.

What happens when the event_id differs? Meta counts two separate events. Your report shows double purchases, and campaign optimisation learns from the wrong number.

How late may a server event arrive? Send it as soon as the action happens. Meta accepts late events, but an event that arrives much later no longer helps campaign optimisation.

// references

Official sources

We checked every claim on this page against the documents below on 11 September 2026. Open the source before you change a live system.

// next step

Need help to apply this?

Send your target. We check the context and write the first step before implementation.