Try this: compare the number of orders in Shopify with what Meta Ads and Google Ads report over the same period. The gap is often 30 to 50%. Those conversions aren’t lost for your business — they’re invisible to your ad platforms. And that’s a problem, because an algorithm that can’t see a conversion can’t optimize for it.
Here are the three culprits, and how to take back control.
Culprit #1: ITP (Safari / iOS)
Apple’s Intelligent Tracking Prevention caps JavaScript first-party cookies at 7 days and drops third-party cookies. In practice:
- A visitor who returns after 8 days via an ad is counted as new.
- Long attribution windows (Meta’s 28 days) break.
- On mobile, where Safari dominates, that’s most of your iOS traffic.
Culprit #2: ad blockers
Between 20% and 40% of visitors run a blocker, depending on your audience (tech, gaming, and male-skewing audiences run much higher). Ad blockers block requests outright to:
connect.facebook.net/facebook.comgoogle-analytics.com/googletagmanager.comanalytics.tiktok.com
When the pixel can’t even send its request, the conversion simply doesn’t exist for the platform.
Culprit #3: CMPs (consent banners)
A well-built consent banner blocks ad scripts before consent. But in practice:
- Many users close the page before clicking.
- Scripts don’t always reload correctly after acceptance.
- The consent signal and the events arrive out of sync.
The combined result of all three: a huge share of your sales never makes it back.
The fix: server-side tracking
Server-side tracking attacks all three problems at the root. Instead of sending events from the browser to the platforms, you send them first to your own first-party domain, which then relays them through the server APIs (Meta CAPI, Google Enhanced Conversions, TikTok Events API…).
- Against ad blockers: the request goes to your domain, invisible to blockers.
- Against ITP: cookies set server-side escape the 7-day cap.
- Against CMP chaos: consent is applied deterministically, server-side, before anything is sent.
”But I’ll double-count my conversions”
That’s the legitimate fear when you keep both a browser pixel and server-side. The answer is one word: deduplication. Both copies (browser and server) must carry the same event_id; the platform then recognizes it as a single conversion.
Walityk automates this bridge: your existing pixel and the server copy share the same identifier, so zero double-counting — even if you keep your pixels in place.
Where to start
- Measure the gap: Shopify orders vs conversions reported by each platform.
- Enable server-side for your main destinations (Meta, Google, TikTok).
- Verify deduplication if you keep your pixels.
- Track match quality on the platform side: it should climb after the switch.
The gap will never fully close (no method is perfect), but recovering even 20 to 30 points of visible conversions radically changes how your algorithms optimize — and therefore your ROAS.
To set this up without code, see how Walityk installs on Shopify or read our complete server-side tracking guide.