Problem diagnosis · GA4

GA4 isn't tracking
your conversions.
Here's why.

Your Shopify dashboard shows 200 orders this month. GA4 shows 120 purchases. You're not imagining it — the gap is real, it's common, and it has specific causes. Here are the seven most likely reasons, in order of how often I see them.

Not sure which one applies? Free

Tell me your website and what you're seeing. I'll check your setup and come back with a plain-English breakdown of what's broken — within 24 hours, no charge.

Get a free audit →

50+ setups audited · <24h response

20–40%
Conversions lost in typical browser-only setup
7
Most common root causes — all fixable
3–5d
Typical fix time once diagnosed
100%
GA4 ↔ Shopify reconciliation — achievable
7 reasons GA4 isn't tracking your conversions
01
Events aren't marked as conversions (key events)

GA4 tracks events but doesn't automatically treat them as conversions. If you haven't gone into Admin → Events and toggled "Mark as key event" for your purchase or form submission events, GA4's conversion count will show zero — even though the events are firing correctly.

The fix
Navigate to GA4 Admin → Events. Find your purchase event. Toggle "Mark as key event." Data will start appearing within 24–48 hours. Previous conversions won't be backfilled.
02
Duplicate purchase tags causing inflated then suppressed counts

The most destructive scenario: a previous developer left an old purchase tag in GTM alongside your new one. Both fire on checkout — GA4 deduplicates by transaction_id, so it looks like half your orders vanished. In reality they're there, just cancelled out. I've seen this in 30%+ of audits I run.

The fix
Open GTM Preview mode and complete a test purchase. If you see two GA4 purchase events firing, you have duplicate tags. Remove the older one and verify only one fires per transaction.
03
The GTM container was saved but never published

GTM changes only go live when you click Submit and publish a new version. A saved draft does nothing. If your tracking broke after someone "updated" GTM, check the Versions tab — there's almost certainly a draft sitting there with changes that never went live.

The fix
Go to GTM → Versions. If there are unpublished changes, review them in Preview mode first, then click Submit to publish.
04
Ad blockers and iOS stripping browser events

This isn't a configuration error — it's structural. Browser-based GA4 tracking gets blocked by uBlock Origin, Brave, Firefox ETP, and Safari's ITP before the event ever reaches Google's servers. In markets like the Netherlands, Germany, or with a tech-savvy audience, ad blocker rates can exceed 40%. These visitors are invisible to client-side GA4.

The fix
This requires server-side GTM (sGTM) via Stape.io with a custom first-party subdomain. Events are sent from your server, bypassing browser-level blocking entirely. This typically recovers 20–40% of lost conversions.
05
Wrong Measurement ID on the production environment

It's common to have separate GA4 properties for dev/staging and production. If the GTM container on your live site is pointing to the staging Measurement ID, all production purchase data is being sent to a property nobody is looking at.

The fix
Check your GA4 Configuration tag in GTM. Verify the Measurement ID (G-XXXXXXXX) matches your production GA4 property. Use GA4 DebugView to confirm events are landing in the right property.
06
Shopify checkout extensibility broke your dataLayer

Shopify's 2024 checkout extensibility migration removed access to the order confirmation page for many themes, breaking custom purchase event implementations that relied on the thank_you page trigger. If your GA4 purchase tracking stopped working around mid-2024, this is almost certainly why.

The fix
Migrate to Shopify's Web Pixels API or implement purchase tracking via the Shopify checkout.liquid extension points. Requires rebuilding the dataLayer push for the purchase event.
07
Internal traffic inflating session counts and diluting conversion rate

Your team visits your own site constantly — product checks, QA, link testing. Without an internal traffic filter, every visit from your office IP or VPN is counted in GA4. This doesn't reduce conversion count but inflates session numbers, making conversion rate look worse than it is and skewing funnel data.

The fix
GA4 Admin → Data Streams → Configure Tag → Define Internal Traffic. Add your office IP ranges. Then activate the filter under Admin → Data Filters.
Still not sure which one you have?

Most setups have more than one issue running simultaneously — which is why diagnosing from the outside is hard. A proper audit goes through your actual GTM container, GA4 property, and dataLayer to identify every problem, not just the obvious one.

I'll tell you exactly
what's broken in yours.

Send me your website URL and what you're seeing. Free written summary within 24 hours.

Request free audit
Instagram Facebook X LinkedIn
Free Tracking Audit