You installed GA4, the tag shows as active, and traffic is flowing β but your purchase numbers in Google Analytics don't match the orders in your store. This is one of the most common and most expensive tracking problems for ecommerce stores, because every missing purchase event distorts your reporting, your audiences, and your ad optimization. Here is why purchase events go missing on Shopify and WooCommerce, and how to make sure every sale is counted.
Why the purchase event is the one that breaks
GA4 fires the purchase event on the order confirmation page β the βthank youβ page a shopper sees after paying. Every other event (page views, add-to-cart, begin checkout) happens on stable pages you control. The confirmation page is different: it sits at the very end of the funnel, often after a redirect, and it is the easiest place for a tag to fail to load.
When that single page doesn't fire the event, the entire sale disappears from GA4 β even though every earlier step in the funnel was tracked perfectly.
Payment gateway redirects are the usual culprit
Gateways like PayPal, Razorpay, Klarna, and Afterpay take the shopper off your site to complete payment, then redirect them back. Two things commonly go wrong on that return trip:
- The shopper lands on a confirmation page that doesn't include your GA4 tag at all.
- The page loads, but the shopper closes the tab before the tag finishes firing.
In both cases the order is safely recorded in your store, but GA4 never receives the purchase event. Multiply that across every gateway transaction and the gap becomes significant.
Platform-specific gotchas
On Shopify, the checkout is hosted on a separate Shopify domain, and standard checkout customization is limited unless you are on the right plan. Tags added to your theme don't automatically apply to the hosted checkout, which is why purchase events are frequently missed.
On WooCommerce, the confirmation page is yours to control, but plugin conflicts, caching, and gateway redirects still cause the GA4 tag to fire inconsistently. A caching layer that serves a stale confirmation page can strip the event entirely.
How to capture every purchase event
The reliable fix is to stop depending solely on a browser tag firing on a fragile confirmation page. Instead, map the purchase event to your store's own order data, so the conversion is recorded the moment the order is created β regardless of whether the shopper's browser cooperated.
On WordPress, TraceSignals Conversion Tracking does exactly this: it sends purchase events to GA4 from your store data, so sales are counted even when the browser-side tag fails after a gateway redirect. That keeps your GA4 revenue in line with your real order count.
Verify before you trust the data
Whatever setup you use, confirm it works. Open GA4 DebugView or the Realtime report, place a real test order through your live gateway, and check that the purchase event appears with the correct value and transaction ID. Then compare GA4's purchase count to your store's order count over the same week. If they match within a small margin, your tracking is healthy. If GA4 is consistently lower, you are still missing events β and now you know where to look.