Overview
A growing Shopify brand came to Adslytics.io with a frustrating and expensive problem. Its Google Ads performance had dropped sharply and its GA4 revenue no longer matched Shopify's backend. It had already invested in server-side tracking through Stape, but that setup had made things worse. Orders were disappearing from its reports, especially orders paid through Shop Pay and PayPal.
The problem
The store's tracking stack (Shopify, GTM Web, GTM Server on Stape, then GA4 and Google Ads) was silently dropping purchase events:
- About 40% of purchases were missing from GA4 compared with Shopify's order reports.
- Google Ads recorded even fewer conversions, so Smart Bidding was optimizing on incomplete data.
- The gap was worst on Shop Pay and PayPal orders, which redirect customers away from the standard checkout flow.
- On some days orders were double-counted, so the data could not be trusted in either direction.
What caused it
We audited the web container, the server container and Shopify's checkout behavior, and found four root causes:
- Accelerated checkouts skipped the thank-you page. Shop Pay and PayPal express buyers often never loaded the page where the purchase tag fired, so those events never reached the server container.
- Deduplication keys were missing. Events sent from the browser and the server used inconsistent transaction IDs, so GA4 sometimes counted the same order twice and sometimes rejected valid ones.
- Consent and ad blockers caused losses. The client-side pixel was the only source of Google Ads conversions, so every blocked browser meant a lost conversion.
- The Stape container was misconfigured. The custom tagging server domain was not set up as first-party, so browsers treated its cookies as third-party and trimmed them.
What it cost the business
- Google's algorithm bid on about 60% of real conversions, so it undervalued profitable audiences and ad spend was wasted.
- The team paused campaigns that were actually profitable because the dashboards showed poor ROAS.
- Marketing, finance and the ad agency each had different revenue numbers, so there was no reliable reporting.
The solution
We rebuilt the tracking around the server as the source of truth:
- We set up Shopify webhook-based purchase events sent directly to the Stape server container, so every order is captured whether it came through Shop Pay, PayPal or standard checkout, and whether or not the thank-you page loads.
- We standardized transaction IDs across all channels and configured event deduplication in GA4 and Google Ads.
- We set up a first-party custom domain for the tagging server, which restored cookie lifetime and attribution accuracy.
- We enabled Enhanced Conversions for Google Ads with hashed customer data to recover attribution lost to ad blockers and iOS privacy features.
- We built a validation dashboard that compares Shopify orders, GA4 and Google Ads every day, so any discrepancy shows up immediately.
Results
Within two weeks of the fix:
- Purchase tracking accuracy rose from about 60% to over 98% against Shopify's backend.
- Google Ads conversions rose about 35% overnight. These were not new sales. The store could finally see sales that had always been there.
- ROAS reporting stabilized, and Smart Bidding began optimizing on complete data, which improved actual campaign performance in the following month.
- Duplicate events dropped to zero.
Conclusion
Server-side tracking is not a set-and-forget install, and a misconfigured one can be worse than none. By moving the source of truth from the browser to Shopify's own order data, we took this store from guessing to knowing, and its ad platforms got the signal they needed to perform.
Key takeaways
- Accelerated checkouts (Shop Pay and PayPal Express) are the biggest silent cause of lost Shopify purchase tracking.
- Webhooks beat thank-you-page pixels. Capture purchases at the order level, not the pageview level.
- Deduplication is required. Browser and server events must share one transaction ID.
- Your ad performance is only as good as your conversion data, so fix tracking before touching campaigns.
Seeing the same problem in your account?
Send us your site and we will review your tracking for free. You get a list of what is broken and what to fix first.
Get a free tracking review