Table of Contents
- 1 Problem 1: The Checkout iframe Blocks Your Tracking Scripts
- 2 Problem 2: PayPal, Shop Pay, and Off-Site Payment Redirects
- 3 Problem 3: iOS 14+ and Link Tracking Protection
- 4 Problem 4: Multiple Tracking Apps Running Simultaneously
- 5 Problem 5: The Currency and Revenue Data Is Formatted Incorrectly
- 6 Problem 6: Ad Blockers Silently Dropping Browser Events
- 7 Problem 7: Shopify's Native Analytics vs GA4 Discrepancies
- 8 Where to Start: The Shopify Tracking Fix Priority List
- 9 Wrapping Up: Accurate Shopify Data Is a Competitive Advantage
If you run a Shopify store and trust the conversion numbers in your Google Ads account or Meta Ads Manager, there's a reasonable chance you're making decisions based on data that's 20–40% incomplete. Not because your store is broken. Not because your ads aren't working. But because the standard way most Shopify stores are tracked has fundamental structural limitations that were tolerable four years ago and are increasingly serious today.
This isn't a problem unique to small stores or those who haven't "properly" set up tracking. It affects established DTC brands spending tens of thousands per month on ads. It affects businesses with experienced marketing teams. The issue is baked into how Shopify's checkout works, how iOS handles click IDs, and how browsers treat third-party tracking scripts — and most stores haven't adapted their tracking setup to account for any of it.
This guide covers every reason Shopify conversion data is likely wrong on your store, how serious each issue is, and what the fix looks like.
Concerned your Shopify conversion data isn't accurate? Incisive Ranking audits Shopify tracking setups and identifies exactly where purchases are being missed.
Get a Free Shopify Tracking AuditProblem 1: The Checkout iframe Blocks Your Tracking Scripts
Shopify's checkout runs inside a sandboxed environment that prevents external JavaScript from executing. This matters because it means any tracking scripts — GA4 tags, Meta Pixel, Google Ads conversion tags — loaded by GTM on your storefront pages cannot run inside the checkout. They're blocked at the door.
The implication: if your tracking relies on standard GTM tags firing at checkout steps (add payment info, begin checkout), those tags are likely not firing at all on the actual Shopify checkout pages. You may be seeing data for your product pages and cart, but checkout-step events and purchases tracked through standard client-side GTM will have significant gaps.
The fix: Shopify's Customer Events API is the correct way to track within the checkout. It's a sandboxed JavaScript environment that Shopify provides specifically for tracking purposes inside the checkout flow. For purchase events specifically, Shopify webhooks (server-side) are the most reliable mechanism — they fire from Shopify's own servers when an order is confirmed, meaning no browser-side dependency at all.
Problem 2: PayPal, Shop Pay, and Off-Site Payment Redirects
This is one of the most consistent causes of missing purchase events in Shopify stores. A significant portion of your customers — often 20–35% — will choose an accelerated checkout option: PayPal, Shop Pay, Apple Pay, Google Pay, or Klarna. Many of these options redirect the user off your Shopify domain to complete payment, then redirect them back to your thank-you page.
Here's the problem: that redirect breaks the session. When a user comes back from PayPal's domain to your thank-you page, their browser treats it as a new session. The GA client ID that was tracking their journey may not persist. The Facebook click ID stored in their cookie may have expired or been reset. The result: the purchase happens, gets confirmed in your backend, but your tracking either misses it entirely or attributes it to "direct" traffic rather than the paid campaign that actually drove it.
The fix: The only fully reliable solution is server-side tracking for purchase events. Shopify webhooks fire when an order is placed regardless of which payment method the customer used or how many redirects happened in between. Pairing this with the Meta Conversions API and Google Ads Enhanced Conversions ensures the purchase gets attributed correctly even when the browser-based pixel failed.
Problem 3: iOS 14+ and Link Tracking Protection
When Apple introduced App Tracking Transparency in iOS 14, it restricted the Facebook Pixel's ability to match in-app browser events to Meta ad interactions. The result was a well-documented collapse in reported Meta conversions for many advertisers — some saw their reported ROAS drop by 30–50% despite actual sales remaining constant.
iOS 17 made this worse by introducing Link Tracking Protection in Safari, which strips click ID parameters (fbclid, gclid, ttclid) from URLs when links are opened from Messages, Mail, and Safari private browsing. When the click ID is stripped, the ad platform has no way to connect that browser session to the ad click that started it, so the eventual purchase becomes invisible to your campaigns.
For Shopify stores with a significant mobile audience — which is most stores — this represents systematic attribution loss that compounds every month as iOS adoption grows.
The fix: The Conversions API (Meta) and Enhanced Conversions (Google) use hashed first-party data — email addresses, phone numbers — to match conversions to users without relying on click IDs. When a customer completes a purchase and provides their email at checkout, that hashed email can be matched against the user who clicked your ad, restoring attribution without depending on URL parameters that iOS strips.
Problem 4: Multiple Tracking Apps Running Simultaneously
Shopify's app ecosystem makes it easy to install tracking solutions without fully understanding what each one does. A common scenario: you install a "GA4 tracking" app, then also add GTM and set up GA4 through there, and still have Shopify's native Google channel connected. Result: three separate implementations all sending purchase events to the same GA4 property — your reported transaction count is two or three times what actually happened.
This is equally damaging to decision-making as missing conversions. Inflated data makes profitable campaigns look more profitable, masks problems in your funnel, and gives your ad algorithms overcounted signals that lead to misoptimisation.
The fix: Audit every tracking implementation active on your store. Check your Shopify theme code, your installed apps, your GTM container, and your Shopify customer events. For each platform (GA4, Google Ads, Meta), there should be exactly one active implementation. Remove all duplicates before making any other changes.
Problem 5: The Currency and Revenue Data Is Formatted Incorrectly
Even when purchase events are being tracked, the revenue figures in GA4 or ad platforms are often wrong. Common formatting errors that cause this:
- Passing revenue as a string with a currency symbol:
"£49.99"instead of the number49.99 - Sending the currency code inside the value field:
"49.99 GBP"instead of a separatecurrency: "GBP"parameter - Missing the
currencyparameter entirely — GA4 will accept the event but won't display revenue in monetisation reports - Sending tax and shipping included in item prices but excluded from the order total, creating revenue discrepancies
- Passing prices inclusive of tax to Google Ads but exclusive of tax to Meta, making platform comparison impossible
The fix: Standardise your revenue format: numeric values, no symbols, consistent tax treatment across all platforms. Include the currency parameter as a separate ISO 4217 code on every purchase event. Document the approach and verify it hasn't changed whenever your checkout or pricing logic is updated.
Problem 6: Ad Blockers Silently Dropping Browser Events
A meaningful segment of your customers — typically 15–30% depending on your audience demographics — will have some form of ad or tracker blocking active. uBlock Origin, Privacy Badger, Ghostery, and the built-in blocking in Brave browser all intercept requests to domains like google-analytics.com, connect.facebook.net, and gtm.js. These requests are dropped silently — no error, no warning, just missing data.
This affects every browser-based tracking approach equally. The only mitigation is routing your tracking through your own first-party domain (e.g., analytics.yourstore.com) via server-side GTM, which makes it significantly harder for blockers to identify and intercept. It won't catch every blocker, but it meaningfully reduces the gap.
Problem 7: Shopify's Native Analytics vs GA4 Discrepancies
Many Shopify store owners notice that their Shopify dashboard shows a different order count to GA4, and assume one of them is wrong. The truth is that they're measuring different things and neither is technically incorrect.
Shopify counts every completed order in its backend — every payment method, every refund status, every location. GA4 counts purchase events sent by your tracking implementation, which is subject to all the losses described above. The gap between them is a rough proxy for your tracking accuracy. A 10–15% gap is typical; anything above 20–25% suggests a fixable technical issue worth investigating.
| Issue | Typical Data Loss | Fix Complexity | Priority |
|---|---|---|---|
| Checkout iframe blocking GTM | High — checkout events largely missing | Medium — use Customer Events API | High |
| Off-site payment redirects | 20–35% of purchases | High — requires server-side tracking | High |
| iOS click ID stripping | Significant for mobile traffic | High — requires Conversions API | High |
| Duplicate tracking apps | Overcounts by 2–3x | Low — audit and remove | Critical (fix first) |
| Currency/revenue formatting | Revenue figures inaccurate | Low — developer data layer fix | Medium |
| Ad blockers | 15–30% of users | High — requires server-side domain | Medium |
Most Shopify tracking issues are fixable — but the fixes vary from a quick audit to a full server-side implementation. Our team can assess your setup and tell you exactly what's causing your data gaps.
Talk to Our TeamWhere to Start: The Shopify Tracking Fix Priority List
If you've read this far and you're not sure where to begin, here's the order that makes sense for most stores:
- Remove duplicate tracking implementations first. Inflated data actively misleads your ad algorithms. Before adding anything, confirm you have exactly one implementation per platform.
- Verify your currency and revenue format. This is the lowest-effort, highest-accuracy fix. Correct data formats take a developer an hour to fix and immediately clean up your revenue reporting.
- Implement Shopify Customer Events for checkout tracking. This gives you accurate add-to-cart, begin-checkout, and add-payment-info events through the correct Shopify mechanism.
- Add server-side purchase tracking via webhooks. This recovers purchases lost to PayPal redirects, Shop Pay flows, and browser crashes. It's the most impactful change for most stores.
- Connect the Conversions API (Meta) and Enhanced Conversions (Google). This restores attribution for iOS users and ad-blocker users by matching hashed customer data rather than relying on click IDs.
Wrapping Up: Accurate Shopify Data Is a Competitive Advantage
Every competitor running on incomplete conversion data is optimising their campaigns based on a distorted picture of what's working. When your tracking is accurate and theirs isn't, your ad algorithms get better signals, your budget gets allocated more efficiently, and you make better decisions about which products, audiences, and channels to scale.
The fixes aren't trivial — some require developer involvement and a meaningful implementation effort. But for any store spending more than a few thousand pounds or dollars per month on ads, the improvement in data quality pays for itself quickly in better campaign performance.
At Incisive Ranking, fixing Shopify tracking is one of our most common engagements. If your numbers don't look right, we'll find out why.
Ready to find out exactly what's wrong with your Shopify tracking? Get a free audit from Incisive Ranking and get a clear fix list.
Get My Free Shopify Audit View Our Services
