Your ROAS is wrong, and the Pixel is why
The Meta Pixel is a JavaScript snippet that runs in the buyer browser. When it cannot run, the purchase never reaches Meta. Ad blockers stop the script from loading. Apple iOS 14.5 asks users whether apps may track them, and most say no. Safari caps the cookies the Pixel relies on at 7 days. Browser tracking misses 20 to 40 percent of real purchases on most stores. Your reported ROAS is understated, your cost per acquisition looks higher than it is, and Meta optimises toward the buyers it can see instead of the buyers you actually have.
What CAPI is
The Conversions API sends conversion events from your server directly to Meta, instead of from the buyer browser. The browser can be blocked. Your server cannot. CAPI does not replace the Pixel. The two run in parallel, and Meta deduplicates them so one purchase is counted once. The setup Meta recommends is called a redundant event setup: Pixel plus CAPI for every important event, with the same event ID on both sides.
How much you are losing
Take a simple example. If you had 100 real purchases but only 70 were tracked, your cost per acquisition looks 43 percent higher than it actually is. If Meta reports only 70 percent of your real revenue, your ROAS looks like 2.3 instead of 3.3. Meta reports an average 17.8 percent lower cost per result for advertisers using CAPI alongside the Pixel, in its April 2026 announcement. The gap is not a reporting quirk. It is the algorithm learning from a biased sample, and it gets worse as your iOS share grows.
The Shopify setup, step by step
On Shopify, the fastest route takes an afternoon. You do not need a developer.
- Open Settings, then Customer events, and connect the Facebook and Instagram app.
- Set data sharing to Maximum, so server side events are sent alongside browser events.
- In Meta Events Manager, confirm each event shows both Browser and Server as sources.
- Check Event Match Quality on your Purchase event. Below 5.0 means you are sending too few customer parameters.
- Send hashed email, phone and external ID with each event, hashed with SHA-256 before transmission. This lifts match quality from the 4 to 5 range into the 7 to 8 range.
The one mistake that doubles your conversions
If the browser and the server both send a purchase without a shared event ID, Meta counts it twice. Your conversion numbers double, and that is worse than losing signals. Send the same event ID on both sides for every purchase. Meta deduplicates a browser and a server event when the event name and event ID match and both arrive within 48 hours. Check your Purchase event in Events Manager after setup. If the count jumps overnight, deduplication is broken.
What to check every month
CAPI is not a one time setup. Check three numbers monthly. Event Match Quality on Purchase should sit above 7.0. Event coverage, the ratio of CAPI events to Pixel events, should head toward 75 percent, which is the target Meta recommends. And compare your Shopify order count with the purchases Meta reports. If the gap is wider than 10 percent, something in the setup has broken.
| What breaks | What CAPI does |
|---|---|
| Ad blockers stop the Pixel script | The server sends the event direct to Meta |
| iOS opt outs hide the buyer | Hashed email and phone match the buyer |
| Safari cookies expire in 7 days | Server events carry the full order data |
If Meta can't see your conversions, it can't optimize for them. You end up paying to reach the wrong people while your best customers go unattributed.
One guide found a store where summing the same purchase under several event names read 12.63 instead of 2.53. Deduplicate by event ID, then trust the number.


