The Meta Conversions API (often shortened to CAPI, or Facebook CAPI in older guides) matters directly for any Shopify store running Meta ads. Meta's bidding and audiences learn from the events you send, and the browser pixel alone misses some of them because of ad blockers, browser tracking protection and cookie limits. Missing purchases mean the algorithm optimizes on a partial picture, and reporting understates what your ads are doing.
This guide covers what the Conversions API is, how it works with the pixel, the setup options on Shopify, deduplication, testing and the errors we fix most often.
What Is the Meta Conversions API?
The Meta Conversions API is a server-to-server connection that sends events such as ViewContent, AddToCart, InitiateCheckout and Purchase to Meta from a server instead of from the shopper's browser. It launched as the Facebook Conversions API, and the name changed with the company rebrand while the job stayed the same. Because server events are not stopped by ad blockers or browser limits, more of your real conversions reach Meta, often with better customer data attached.
Which events to send
A store should send AddToCart, InitiateCheckout and Purchase from the server at minimum, plus ViewContent and AddPaymentInfo where the setup supports them. Each event should carry value, currency and content IDs that match your Meta catalog, so catalog ads can connect views and purchases to the right products. Lead generation sites send Lead events and, ideally, later CRM stages as offline events.
Conversions API vs Meta Pixel: What Is the Difference?
The difference is where events come from: the Meta Pixel sends them from the shopper's browser, while the Conversions API sends them from a server. You do not choose one or the other. Meta recommends running both, with each event sent twice and deduplicated, and the table shows why.
| Meta Pixel (browser) | Conversions API (server) | |
|---|---|---|
| Where it runs | JavaScript in the shopper's browser | Your server, a tracking server or an app's server |
| Blocked by ad blockers | Often | No, although consent rules still apply |
| Browser signals | Captures cookies (fbp, fbc), URL and user agent automatically | Must be passed in explicitly |
| Customer data | Only what the page exposes | Can include hashed email, phone and address from the order |
| Best for | Browsing events and retargeting signals | Reliable checkout and purchase events |
What people still call the Facebook pixel on Shopify is now the Meta Pixel, and it is the browser half of this setup. On current Shopify stores it should run through Customer Events (Shopify's sandboxed pixel system) rather than code pasted into the theme or the old "additional scripts" box, which Shopify has been retiring as stores move to Checkout Extensibility.
Three Ways to Set Up the Meta Conversions API on Shopify
1. The Facebook and Instagram app
Meta's own sales channel app connects your pixel and catalog, and its data sharing setting controls how much is sent. At the highest level it adds server events through the Conversions API. It is free, quick and maintained by Meta and Shopify. The trade-off is limited control: you cannot easily change which events are sent, add custom parameters or send the same data to other platforms.
2. Server-side Google Tag Manager
A server container, hosted on a service such as Stape or Google Cloud, receives events from the store and forwards them to Meta, Google Ads, GA4 and others. It gives full control over event names, parameters, customer data and consent handling. It needs someone who understands GTM and a small ongoing hosting cost, and it has to be maintained.
3. A dedicated tracking app
Apps such as Elevar and Littledata package server-side tracking for Shopify with prebuilt event mapping. They sit in the middle: more control than Meta's app, less setup than building your own server container, with a monthly subscription.
For most stores, Meta's app is a sound first CAPI integration. Stores spending seriously on Meta, running several ad platforms or needing custom events usually outgrow it and move to server-side GTM or an app. Our server-side tracking service sets up and maintains either option.
How Pixel and Server Event Deduplication Works
If the pixel and the server both send a Purchase for the same order, Meta needs to know it is one purchase, not two. It matches events that share the same event_name and the same event_id. So the browser event must pass an event ID, and the server event for the same action must send the identical value, typically built from the order ID for purchases.
When deduplication fails, you see one of two symptoms: purchases in Ads Manager roughly double what Shopify reports, or server events that never seem to count. Both almost always come back to missing or mismatched event IDs, or to two separate pixels firing, for example Meta's app plus a leftover snippet in the theme.
How to Set Up the Conversions API in Meta
You set up the Conversions API in Meta Events Manager, where you choose a partner integration, the Conversions API Gateway or a manual setup. For Shopify, the partner route is the Facebook and Instagram app, and these are the steps:
- Remove any old pixel code from the theme, the checkout additional scripts and other apps, so only one source fires the browser pixel.
- Install the Facebook and Instagram app, connect your Business Manager, ad account and the existing pixel (do not create a new one if the old one has history).
- Set data sharing to the level that includes the Conversions API.
- Connect your cookie banner to Shopify's Customer Privacy API so events respect consent for UK and EU visitors.
- Verify your domain in Business Manager if you have not already.
- Place a test order and check Events Manager, as described below.
How to Test the Conversions API in Events Manager
- Test Events. In Events Manager, open Test Events, browse the store and place a test order. You should see each event arrive from both the browser and the server.
- Event Match Quality. Each server event gets a score out of 10 showing how well Meta can match it to a person. Hashed email and phone, plus fbp, fbc, IP address and user agent, raise it.
- Diagnostics. Events Manager flags missing parameters, deduplication problems and currency or value errors. Clear every warning.
- Order reconciliation. For a week, compare Meta's reported purchases by day against Shopify orders. They will never match exactly, because of attribution windows and consent, but large gaps point to a problem.
Common Conversions API Errors on Shopify
- Two pixels installed, doubling every event.
- Server purchases with no event ID, so nothing deduplicates.
- Purchase value sent without currency, or including tax and shipping inconsistently with other platforms.
- Customer data sent unhashed. Email, phone and names must be normalized and SHA-256 hashed; IP address, user agent, fbp and fbc are sent as they are.
- Events firing before consent in regions where consent is required.
- A new pixel created during setup, throwing away years of audience and learning data.
Meta Conversions API Checklist
- One browser pixel source, through Customer Events or Meta's app.
- Server events for at least AddToCart, InitiateCheckout and Purchase.
- Matching event_name and event_id on browser and server events.
- Value and currency on every purchase.
- Event Match Quality reviewed and improved where low.
- Consent connected to Shopify's Customer Privacy API.
- Weekly comparison of Meta purchases against Shopify orders.
Tracking is one part of a healthy store. Our Shopify SEO checklist and ecommerce SEO checklist cover the organic side, and if you are working out what Meta advertising should cost you, read our guide to Facebook ads cost. For a review of your current pixel and server setup, request a free audit. More guides are on the 95 Solutions blog.