In this guide
- The Pixel is a script in the visitor's browser. The Conversions API (CAPI) is a call from your server. They send the same kinds of events by different roads.
- Meta's advice, and the common practice, is to run both and give each event a shared event ID so Meta counts it once.
- Server events help most with ad blockers, Safari, slow pages and anything the browser never sees, such as a refund or a CRM stage.
Both tools tell Meta what visitors did on your site, so Meta can measure ads and optimise delivery. They differ in where the event is sent from. That one difference changes what survives ad blockers, browser limits and slow connections, and it changes how much data you can attach. This page compares them point by point and shows how to run them together. For the general idea of sending from a server, see what server-side tracking is.
The difference in one sentence
The Meta Pixel is JavaScript that loads in the visitor's browser and sends events straight to Meta. The Conversions API is an HTTPS endpoint that accepts events from your server (or from a Tag Manager server container). Same events, different senders.
3 things to remember
Scroll and the points stack up.
The Pixel is a script in the visitor's browser. The Conversions API (CAPI) is a call from your server. They send the same kinds of

Meta's advice, and the common practice, is to run both and give each event a shared event ID so Meta counts it once.

Server events help most with ad blockers, Safari, slow pages and anything the browser never sees, such as a refund or a CRM stage.

How each one fails
| Situation | Pixel | Conversions API |
|---|---|---|
| Visitor uses an ad blocker | Often blocked before it loads | Not affected, because your server sends it |
| Safari or Firefox limits cookies | Cookie life is short, so returning visitors look new | Can set longer cookies from your own domain and add stored identifiers |
| Visitor closes the page early | Event may not leave the browser | Sent from the server as soon as it receives the event |
| Page loads slowly or script errors | Event can be lost | Independent of page script errors |
| Event happens off the site (refund, call, CRM stage) | Cannot see it | Can send it from your backend or CRM |
| Visitor declines consent | Should not fire | Should not send personal data either; consent still applies |
What each one is good at
The Pixel
Easy to install, rich browser signals such as the page URL, the fbp browser ID and click ID fbc, instant feedback in Pixel Helper, and Meta's automatic advanced matching.
The Conversions API
Reliable delivery, control over fields, the ability to add hashed e-mail and phone from your own data, and events that never touch the browser.
Both together
The Pixel gives fast browser signals, the API fills the gaps. With a shared event ID you get higher coverage without double counting.
Runs on your domain, anywhere
Your tracking runs on your own domain, so a visit from any country is handled the same way.
How deduplication works
If the same purchase reaches Meta from the Pixel and from the server, Meta must count it once. It does this by matching the event name and the event ID across the two sources, within a window of about 48 hours. If the ID is missing or different, Meta counts two purchases. To set it up:
Create one ID per event
For a purchase, the order number is a natural ID. For other events, generate a random ID when the event happens.
Send it with the Pixel
Pass it as eventID in the Pixel call, or as event_id in the data layer.
Send the same ID with the Conversions API
Put it in the event_id field of the server event.
Check it in Events Manager
Open the dataset, the Overview tab, and look for "Deduplicated" on the event.
Full steps in Tag Manager are in Facebook event deduplication in Google Tag Manager and server-side tracking event deduplication.
What data the Conversions API can carry
- Event data: event name, event time, source URL, action source (website, email, phone call, physical store and more).
- Customer information: hashed e-mail, phone, first name, last name, city, state, zip and country, plus external ID, IP address, user agent,
fbpandfbc. - Custom data: value, currency, content IDs, order ID and other parameters.
More of these fields lead to a higher event match quality score. See how to improve event match quality.
How to run both with Open Tracked
Open Tracked hosts your Tag Manager server container, so the Meta Conversions API tag runs there. Several power-ups feed it with matching data, and all of them are on every plan, including Free: Cookie Keeper keeps _fbp and _fbc alive for returning Safari visitors, the Data Store and Enricher add stored hashed e-mail and phone to later events, Visitor Location adds country, region, city and postcode, and the User ID power-up sends an anonymous external_id. For leads that become customers later, the CRM and offline conversion features send the stage back to Meta. See offline conversions.
Which should you choose?
- you run a tiny test and want a result today
- you have no way to host a server yet
- you spend real money on Meta ads
- your Meta numbers are lower than your orders
- you have many Safari or iPhone visitors
- you have leads or sales that happen outside the browser
Test checklist
Ask Ari instead of digging through reports
Ari reads your tracking and ad data and answers in plain words.
Frequently asked questions
Do I still need the Pixel if I use the Conversions API?
Most advertisers keep both. The Pixel gives fast browser signals and the API recovers what the browser loses. Running both with a shared event ID is the usual advice.
Will I get double conversions if I send both?
Not if the event name and event ID match. Meta then counts the event once. Without a shared ID you can see double counts.
Is the Conversions API only for big advertisers?
No. A Tag Manager server container or a platform integration makes it available to small stores too.
Does the Conversions API need consent?
Yes, where consent is required. Sending an event from a server does not change the rules for personal data.
Can the Conversions API send events that happen offline?
Yes. You can send events such as a phone sale or a CRM stage, with the matching customer data, as long as they are within Meta's allowed time window for the event.
Do I need spreadsheets to read my results?
No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.
Is Open Tracked different from Open Track or Open Space Track?
No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source
Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.
The Open Tracked team
We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?
Comments
Loading comments...

