What is the Meta Conversions API, and do you need it?
The Meta Conversions API (CAPI) sends conversion events to Meta from your server, website platform, app or CRM, instead of relying only on the visitor’s browser like the Meta Pixel.
Read the full answer
Meta recommends running both, a setup it calls redundant: the pixel and the Conversions API share the same events, and the Conversions API can capture website events the pixel might miss because of network issues or page loading errors. To avoid counting a purchase twice, give the browser and server copies the same event name and the same event ID; Meta keeps one of them when both arrive within 48 hours. Event Match Quality, a score from 1 to 10, shows how well the customer information you send matches events to Meta accounts. You can set up the Conversions API through a partner such as Shopify in a few clicks, with the codeless Conversions API Gateway, or through a direct integration built by a developer.
How does Meta turn two copies of a purchase into one?
The same purchase reaches Meta twice: once from the browser, once from your server. Meta counts it once when the name and the ID match.
Browser · Meta Pixel
event"Purchase"eventID"order-1042"
Server · Conversions API
event_name"Purchase"event_id"order-1042"
1 purchase counted
What is the Meta Conversions API?
The Meta Conversions API is a direct connection between your marketing data and Meta’s ad systems. Instead of relying only on code in the visitor’s browser, it sends events such as purchases, leads or add to carts from your server, website platform, app or CRM, so Meta can measure and optimize your ads.
Read more
Meta presents it as a way to optimize ad targeting, decrease cost per result and measure outcomes across its technologies. One API carries website events, app events, offline conversions and messaging events. You will see it shortened to CAPI, and often called the Facebook Conversions API.
Meta also notes that the Offline Conversions API was discontinued in May 2025: offline events now go through the Conversions API, into datasets.
Why use the Conversions API in addition to the pixel?
Because the pixel alone misses events. Meta’s best practices say the Conversions API can capture website events that the pixel might miss due to network issues or page loading errors. Meta recommends a redundant setup: send the same events, such as purchase, initiate checkout or contact, through both the pixel and the Conversions API.
Read more
Meta even gives a target for that parity: aim for a 75% event coverage ratio of Conversions API events to Meta Pixel events. You can follow that ratio in Events Manager.
Meta also asks you to share events in real time, or as close to real time as possible, so the delivery system can judge who is likely to act after seeing an ad.
How does deduplication with event_id work?
When the pixel and the Conversions API both report the same purchase, Meta has to know it is one purchase, not two. It compares two fields: the pixel’s eventID must match the Conversions API’s event_id, and the pixel’s event must match the event_name. When both match, Meta keeps one event and discards the duplicate.
Read more
Meta only deduplicates events received within 48 hours of the first one, and it generally keeps the event it received first.
Meta documents a second method, sending the same fbp or external_id values from both sources, but it only works when the browser event arrives before the server event. Meta recommends the event ID and event name method.
Duplicates that slip through inflate reported conversions, and your ROAS with them. If your numbers look too good, or suddenly drop, check the tracking first.
What is Event Match Quality?
Event Match Quality is a score from 1 to 10 that shows how well the customer information sent with your server events matches them to Meta accounts. Meta calculates it from the quality of that information and the share of events it matched, using the last 48 hours of data, so events need to flow regularly.
Read more
It applies to website events sent through the Conversions API with the action source set to Website. Meta says better matching helps deliver ads to people more likely to convert and attribute conversions to your ads, and may increase the additional conversions reported.
To raise it, send more customer information parameters, hashed as Meta’s developer documentation explains, and only with the lawful permissions and consents required. Meta ranks their priority:
- High: email and click ID.
- Medium: Facebook Login ID, birthdate, country, phone number, external ID and browser ID.
- Low: lead ID, first name, last name, city, and zip or postal code.
How do you set up the Conversions API?
Meta lists several setup paths, and says many need no developer. The right one depends on where your site runs and who maintains it: a commerce platform partner, the one-click Meta-enabled Conversions API, the codeless Conversions API Gateway, or a direct integration coded against the API.
Read more
- Partner integrations. On Shopify, WooCommerce, Wix or BigCommerce, Meta says setup takes a few clicks at no additional cost. Adobe, Google Tag Manager, Tealium and other partners can connect it too.
- Meta-enabled Conversions API. A web-only option that creates the server-side connection in one click, for free, and sends the same events and parameters as your pixel, deduplicated automatically.
- Conversions API Gateway. A codeless setup you pick in Events Manager, hosted in your own AWS or Google Cloud account. Meta says it cuts setup from weeks to under 30 minutes and deduplicates automatically; cloud fees, its only cost, start at $30 per month.
- Direct integration. A developer sends your events to the API. Meta estimates 2 to 4 weeks for a new integration, and it is the only option for app and physical store events.
Meta suggests the Gateway if you already use the pixel, don’t send web events through the Conversions API yet, spend more than $300 a month on campaigns optimized for web events, and don’t work with an e-commerce partner. If a partner such as Shopify already manages your pixel, Meta recommends that partner’s integration.
| Option | Who sets it up | Cost | Events | Deduplication |
|---|---|---|---|---|
| Commerce partner (Shopify, WooCommerce…) | You, in a few clicks | No additional cost | Depends on the partner | Depends on the partner |
| Meta-enabled Conversions API | You, in one click | Free | Web only | Automatic |
| Conversions API Gateway | You, without code | Cloud fees, from $30 a month | Web | Automatic |
| Direct integration | A developer, 2 to 4 weeks | Your development and upkeep | Web, app, offline, CRM, messaging | You send event_id |
Costs and times are Meta’s own figures. Cloud fees for the Gateway vary with your region and traffic.
How do you check that the Conversions API works in Events Manager?
Open Events Manager, go to Data Sources, select the pixel your server sends events to and click Overview. Meta says you should be able to verify server events within 20 minutes of sending them. Overview counts the events Meta received and, under Connection Method, shows the channel each event was sent through. Click an event for more detail.
Read more
Before you rely on live data, use the Test Events tool: Events Manager > Data Sources > your pixel > Test Events. It generates a test ID that you send with your server events as the test_event_code parameter, and those events then appear in the Test Events window. Meta lists three uses: confirm your server events are set up and received, check deduplication by seeing which events were processed and which were deduplicated, and debug unusual activity.
Meta adds two cautions. Remove test_event_code once testing is done: events sent with it are not dropped, they flow into Events Manager and are used for targeting and ads measurement. And test with your own customer information, such as your name, email or phone number, because test events can be rejected if they do not match a Facebook or Meta account.
To see deduplication in your live data, open Event Details for an event type from the Overview page and go to the Event Deduplication tab. It shows the rate of events deduplicated from each source, where Meta says higher is better and a warning appears when the rate is too low, and the rate of deduplication key usage. A low Overlap, Meta explains, means one or both sources send non-unique keys, or only one source sends a key.
The same Event Details page has an Event Freshness tab, with the average delay between an event and its sending, on a scale from Real Time to Weekly. Meta recommends sharing events as close to real time as possible.
What data does the Conversions API send, and what must be hashed?
Each server event carries the event itself, such as its name, time, source URL and action source, plus customer information parameters that help Meta match it to an account. Contact information must be normalized, then hashed with SHA-256: Meta says its systems are designed not to accept unhashed contact information, which it uses for matching only. If you use the Meta Business SDK, hashing is done for you.
Read more
Normalizing comes first, as Meta’s Customer Information Parameters page details. Email: trim leading and trailing spaces and convert to lowercase. Phone number: remove symbols, letters and leading zeros, and always include the country code. Country: the lowercase two-letter ISO 3166-1 code, such as us.
Meta sorts the parameters into three groups:
- Hash with SHA-256: email, phone number, first name, last name, date of birth, gender, city, state, zip code and country.
- Hashing recommended: external ID, your own customer identifier such as a loyalty or user ID.
- Never hash: client IP address, client user agent, click ID (
fbc), browser ID (fbp), subscription ID, Facebook Login ID and lead ID.
The IP address and user agent are added automatically to browser events, but Meta says you must set them yourself on server events, and the user agent is required for website events. The fbc and fbp values come from first-party cookies the pixel sets on your domain, and Meta asks you to refresh them regularly if you send them.
Hashing does not replace consent. If you control what your pixel shares based on consent, Meta asks you to apply the same logic to the Conversions API. For US users, Meta documents data processing options, added inside each event, to enable Limited Data Use.
What should you read next?
Clean events are only the input. What matters next is reading the results they produce.
