Every optimisation decision (which campaign to scale, which page to test, which product to promote) rests on your analytics. In most stores we audit, GA4 is reporting something, but not quite the truth: revenue that doesn't match the store, conversions credited to the payment provider, or funnels with steps missing. Run this checklist before you make another decision based on the data.
Revenue and Transactions
1. GA4 revenue reconciles with your store
Compare a full month of GA4 purchase revenue with your Shopify or WooCommerce orders. Some gap is normal because of ad blockers and consent choices, but a large or changing gap means something is broken. Note whether both include tax and shipping consistently.
2. No duplicate purchases
Purchase events that fire again when a customer reloads the confirmation page inflate revenue. Every purchase must send a unique transaction_id, and the tag should only fire once per order.
3. Purchase event carries full item data
Check that items includes item ID, name, price, quantity and category. Without it, product performance reports are empty.
4. Currency is set
Missing or wrong currency values break revenue reporting, especially for multi-currency stores.
The Funnel
5. All key ecommerce events fire
view_item_list, view_item, add_to_cart, begin_checkout, add_shipping_info, add_payment_info and purchase. A missing step makes your funnel report meaningless at exactly the point you need it.
6. Events fire once, at the right moment
Use DebugView to walk through a real purchase. add_to_cart firing on page load, or begin_checkout firing twice, are common.
7. Refunds are tracked
If refunds aren't sent back to GA4, revenue by channel overstates channels that bring high-return customers.
Attribution
8. Payment providers are unwanted referrals
If PayPal, Stripe, Razorpay or a buy-now-pay-later provider appears as a referral source for purchases, customers returning from the payment page are being credited to the provider. Add them to the list of unwanted referrals.
9. Cross-domain tracking where checkout lives elsewhere
If checkout or booking happens on a different domain, configure cross-domain measurement so the session isn't broken in two.
10. Campaign tagging is consistent
Use one UTM naming convention across email, paid social and influencer links. "facebook", "Facebook" and "fb" become three sources in your reports.
11. Ads platforms are linked
Link Google Ads and import GA4 key events deliberately, so bidding optimises on the conversions you actually care about.
Consent and Configuration
12. Consent mode is implemented correctly
If you have visitors in regions that require consent, such as the EEA and UK, your consent banner and consent mode setup determine what GA4 can measure. Test that choices are respected and tags behave accordingly.
13. Data retention is extended
GA4's default event data retention is short. Increase it in the property settings so explorations can look back further.
14. Internal and developer traffic is filtered
Staging sites and your own team's test orders should not appear as revenue.
15. Key events are defined
Mark purchase and lead events as key events, and remove noisy ones that inflate conversion counts.
The one-hour version: place a real test order, watch it in DebugView, then check it appears once, with the right value, items and source, in reports the next day. That single test catches most of the serious problems on this list.
After the Audit
Clean data is the foundation for everything else: attribution, budget allocation and conversion rate optimisation. Our A/B testing programmes always start with a tracking audit, because a test measured on broken data is worse than no test at all. If you want a second pair of eyes on your setup, book a tracking audit.
FAQ
Why doesn't GA4 revenue match my Shopify or WooCommerce revenue?
Some difference is normal because ad blockers and consent choices prevent some tracking. Large or changing gaps usually come from duplicate or missing purchase events, missing transaction IDs, inconsistent tax and shipping handling, or refunds not being sent to GA4.
How do I stop duplicate transactions in GA4?
Send a unique transaction_id with every purchase event and make sure the purchase tag only fires once per order, not every time the confirmation page is reloaded or revisited.
Why is PayPal showing as a traffic source in GA4?
Customers who leave your site to pay and return to the confirmation page can start a new session attributed to the payment provider. Add payment providers to GA4's list of unwanted referrals so purchases stay credited to the original source.
Which GA4 events should an ecommerce store track?
At minimum view_item_list, view_item, add_to_cart, begin_checkout, add_shipping_info, add_payment_info and purchase, with full item data, currency and value, plus refunds so revenue reporting stays accurate.
Written by
Divya Singh · CRO & Analytics Lead
Divya runs conversion optimisation and analytics. Her A/B testing programmes have delivered an average 34% conversion uplift across client stores.
Meet the team →