Dear Missing Sales Sam,
Great question! A mismatch between Shopify orders and GA4 purchases is a common headache, but don’t worry—it’s usually down to a few key differences in how each platform tracks transactions. Let’s break it down and get those numbers closer together.
1. Tracking Issues: Is GA4 Receiving All Purchase Events?
GA4 relies on events to track purchases, so first, check that the purchase event is firing correctly:
Head to Admin > DebugView in GA4 and place a test order to see if GA4 is receiving the purchase event.
If it’s missing, review your Shopify GA4 setup. If you use Google Tag Manager, ensure the purchase event trigger is set up properly.
2. Duplication Prevention: GA4 Might Be Missing Some Purchases
Shopify confirms an order at checkout, but GA4 only counts a purchase if the event fires correctly. Common issues include:
Thank You Page Tracking Errors: If customers don’t land on the confirmation page due to browser settings, ad blockers, or fast checkouts (e.g., Apple Pay skipping the page), GA4 might not record the purchase.
Event Deduplication: GA4 prevents duplicate purchase events using transaction IDs. If a user refreshes the confirmation page or reopens their email receipt, GA4 won’t count it again, but Shopify might.
3. Attribution Differences: When & How Sales Are Counted
Shopify reports sales immediately, while GA4 follows session-based attribution rules. This means:
GA4 may attribute sales differently, especially if users complete their purchase later (e.g., they browse on mobile but buy on desktop).
Shopify counts all completed orders, while GA4 excludes any blocked by cookies, ad blockers, or privacy settings.
4. Currency & Filter Differences
If your store operates in multiple currencies, Shopify may convert amounts differently from GA4. Additionally, GA4 might be filtering out internal traffic or bot activity, lowering purchase counts.
How to Fix the Gap?
Compare order numbers, not revenue. Ensure you’re looking at the same data in both platforms.
Check DebugView to confirm GA4 is capturing all purchase events.
Review GA4 filters to ensure you’re not excluding valid transactions.
Use BigQuery (if available) to get raw data and reconcile discrepancies.
It’s unlikely the numbers will ever match exactly, but a small difference is normal. If the gap is large, these checks should help you close it.
Best of luck!