Meta Conversions API Explained: What It Adds to the Pixel

The Meta Pixel runs in your customer's browser. That is its strength and its weakness. If the browser blocks the script, loses the connection or closes the page too early, the event never reaches Meta, even though the customer really did buy.
The Conversions API, often shortened to CAPI, is the second path. Your own server sends the same event to Meta directly. This article explains what that adds, how the two paths work together, and what to check so you end up with complete data instead of duplicated data.
What the Conversions API is
It is a way for your server, or a tool connected to your store, to send events to Meta without depending on the visitor's browser. An event is a record such as "a purchase happened", with a time, a value, a currency and some details about the customer.
In most stores it does not replace the Pixel. The usual setup runs both. The browser sends the event, the server sends the same event, and Meta keeps one copy. Meta describes this as a redundant setup.
- Browser PixelFires in the visitor's browser
- Server eventSent from your store or server
If the browser path fails, the server path still reports the event. If both arrive, matching keeps a single copy.
What the server path adds
The Pixel depends on the browser. The server path depends on your store. That changes four things.
Resilience
The event does not depend on a script surviving in the browser.
Better matching
You can send customer details you already hold, hashed, so Meta can match the event to a person more reliably.
Control
You decide when an event is sent, for example only after payment is confirmed.
One source of truth
The event can come straight from the order record instead of a page view.
None of this guarantees better results. It gives you more complete and more controlled data to work with.
Be careful with that last point. A complete signal helps the ad platform learn from real purchases, but it does not make a weak offer sell. Treat it as measurement hygiene, not as a growth trick.
How deduplication works
If both paths report the same purchase, Meta needs to know they are one purchase. It uses two fields for that: the event name and the event ID. When the browser event and the server event carry the same name and the same ID, Meta treats them as one.
In practice, this means:
- Use the same event name on both paths, for example `Purchase`.
- Generate an event ID once per action, and send that exact value from the browser and from the server. The order number is a common, stable choice for purchases.
- Do not generate a new random ID on each path. Two different IDs look like two different purchases.
If you skip this, the count can double. The article Duplicate Purchase Events: Causes and How Deduplication Works goes through the symptoms and the fix in detail.
The details that decide quality
A server event that arrives is not automatically a useful one. Check these.
- Customer information. Meta can only match events to people from the details you send, such as email or phone number. These must be normalised and hashed as Meta specifies. Send what you legitimately hold, and nothing you do not.
- Value and currency. A purchase without a correct value and currency cannot support value-based optimisation.
- Event time and source. Send the real time of the event and the correct source (a website event, for example). Old or mislabelled events are less useful.
- Consent. If your audience or local rules require consent before tracking, the server path must respect the same choice as the browser path. Sending data on the server does not remove that obligation.
Events Manager shows how well your events match, and a Test Events tool lets you see what Meta receives in real time. Use both before you trust the numbers.
Three ways to set it up
- A platform integration. Many store platforms offer a Meta integration that sends server events for you. It is the fastest route and often enough.
- A gateway or tag server. A middle layer receives events and forwards them to Meta. More control, more to maintain.
- A direct integration. Your own code sends events from the order system. The most control, and the most responsibility.
Pick the lightest option that gives you the events and the control you need. A heavier setup is not a better one.
Where it matters for cash on delivery
For a store that takes cash on delivery, an order created is not a sale kept. The server path makes it possible to send the event at the moment you are confident about, for example after confirmation or even after delivery, instead of at the first click. That is a different decision from the technical setup, and it deserves its own thought. The Delivery Signal service exists for exactly this case, and the break-even guide How to Calculate Your Advertising Break-Even Point Before Scaling explains why the difference matters.
A short checklist
- Pixel and server events both send the same event names.
- Each purchase carries one event ID, reused on both paths.
- Value, currency and customer details are present and correct.
- Consent is respected on both paths.
- Test Events shows each action once, and the Events Manager count of purchases stays close to your store's orders.
If any line fails, fix that before spending more. If you want the whole chain checked, the tracking setup service covers Pixel, server events, deduplication and testing, and the Full Ads & Tracking Audit reviews what you already have.