Why the pixel misses, what server-side fixes, what it still cannot see.
In 2021 our Meta purchases dropped 40% in a week. Shopify orders did not move. I assumed a creative had died. It was iOS 14.5 rolling out, and the pixel simply stopped being able to connect a click in Instagram to a purchase in Safari. The customers were still buying. We just could not see them.
The one-sentence version
A pixel is a script in the shopper's browser; server-side tracking is a record on your own server. Browsers, phones and blockers can delete the first. They cannot reach the second.
The setup
iOS asks "allow tracking?" and most people say no. Safari caps a pixel's cookie at seven days, one day in some cases. Ad blockers stop the script loading at all. And the click on a phone plus purchase on a laptop was never connectable by a cookie in the first place.
Try it: 100 real purchases
How many does each method still see?
Browser pixel
57
purchases attributed
Server-side, first-party
93
purchases attributed
43 of 100 purchases invisible to the pixel
The purchases happened. Shopify has them. The ad platform never learned that its ad caused them, so it optimises toward the 57 it can see. Server-side keeps 93 because the record lives on your domain, not in a cookie a browser can delete.
Your customers did not stop buying. The pixel just stopped watching.
Why it matters
Delivery is a feedback loop. Meta finds people who look like the buyers it observed. If it observes mostly Android desktop users because the iPhone buyers vanished, it goes looking for more Android desktop users. Signal loss does not just break your reports. It steers your spend.
This is why "fix the tracking" is not a reporting project. It is the cheapest media optimisation you will ever do.
How it works
Click lands on your domain
The click ID is stored by your store, not in a third-party cookie. Safari's limits do not apply to your own domain the same way.
Order created in Shopify
The order webhook fires server-to-server. No browser involved, so no blocker can stop it.
Click and order are joined
By session, and by customer identity when they check out. Cross-device works when the same email shows up.
Verified event sent onward
To Meta's Conversions API and Google with match keys and order value, de-duplicated against the pixel.
Honest footnote
Server-side tracking sees clicks and orders. It does not see the reel someone watched and never clicked, and it cannot decide whether the brand search deserved the credit. Those need surveys and a model, which is why TrueROAS treats tracking as one of three legs, not the whole chair.
Questions people actually ask
Is server-side tracking the same as the Conversions API?
No. Server-side tracking is how you record events reliably. The Conversions API is how you send them to Meta. You need the first to make the second worth anything. Most 'CAPI setups' just forward the same broken pixel events from a server.
Do I remove the pixel?
Keep it. It is still the fastest signal for delivery and it helps Meta match users. Server-side events are de-duplicated against it by event ID so nothing is counted twice.
Is first-party tracking GDPR compliant?
It runs on your own domain and respects the consent your store collects, which is a better position than third-party cookies. Compliance is about what you collect and why, not the transport. See the GDPR page linked under every signup button.
What does server-side still miss?
The impression nobody clicked, and journeys where the customer is never identifiable at checkout (guest, new device, no email match). That is what the post-purchase survey is for.
See your own numbers, verified against your orders.
Free under $10k/month in revenue. 14-day trial above that. Nothing changes in your ad accounts. You will know within a week which platform has been telling stories.

"I built this because I was making $50k-a-month decisions on numbers I knew were wrong. If TrueROAS does not show you something Meta or Google got wrong in the first two weeks, tell me and I will help you cancel."
Rasmus Arvidsson
Founder, TrueROAS. Answers support himself.
Keep going