Complete Guide to GA4 Tracking Issues
Why GA4 shows zero conversions, missing events, and wrong data—and exactly how to fix every problem.
Common GA4 Problems
- GA4 showing zero purchase conversions while you have orders in Shopify
- Events firing in DebugView but not appearing in reports
- Conversion counts way lower than actual sales
- Revenue showing as £0 or completely wrong amounts
- Purchase events missing transaction_id or value parameters
- Wrong currency (USD instead of GBP)
Why GA4 Shows Zero Conversions
The most common reason GA4 shows zero conversions is because the purchase event isn't firing on your order confirmation page. This happens when:
- Your data layer isn't configured: GA4 relies on the ecommerce data layer to capture transaction details. If your Shopify or WooCommerce site doesn't push purchase data to the data layer, GTM can't send it to GA4.
- GTM triggers are wrong: Your GA4 purchase tag might be set to fire on the wrong page, or the trigger conditions don't match your checkout flow.
- Purchase event parameters are missing: GA4 requires specific parameters like transaction_id, value, and currency. If these aren't included, conversions won't be recorded properly.
- Enhanced ecommerce wasn't migrated: If you moved from Universal Analytics to GA4 and never rebuilt your ecommerce tracking, you're likely missing all conversion data.
How to Fix GA4 Purchase Tracking
Step 1: Check Your Data Layer
Open your order confirmation page (or complete a test order) and open your browser console. Type dataLayer and press Enter. You should see an object that includes purchase event data with transaction_id, value, currency, and items array.
If you see nothing or the purchase object is empty, your data layer isn't configured. For Shopify stores, this usually means you need to add a data layer script to your checkout page or use a GTM app. For WooCommerce, you may need to install a plugin or add custom code to your thank-you page.
Step 2: Validate GTM Triggers
Open GTM and find your GA4 purchase event tag. Check which trigger fires it. The trigger should activate on your order confirmation page—typically when the URL contains /thank-you, /order-received, or when a dataLayer event like "purchase" is pushed.
Use GTM Preview Mode to test: complete a test transaction and watch the trigger fire in real-time. If the trigger doesn't activate, adjust the conditions to match your actual checkout flow.
Step 3: Use GA4 DebugView
Open GA4 and go to Admin → DebugView. With GTM Preview Mode active, complete another test order. DebugView shows you exactly which events GA4 receives in real-time. Look for the purchase event and verify it includes:
- transaction_id (unique order ID)
- value (order total)
- currency (GBP, USD, etc.)
- items (product details)
If you see the purchase event in DebugView with correct parameters, your tracking is working—it just takes 24-48 hours for data to appear in standard GA4 reports.
Step 4: Fix Missing Parameters
If the purchase event fires but parameters are missing or wrong, you need to adjust your GTM tag configuration. In your GA4 Event tag, manually add event parameters using GTM variables pulled from the data layer. This ensures GA4 gets complete transaction data.
Other GA4 Problems & Fixes
Wrong Currency
If GA4 shows revenue in USD but your store uses GBP, your data layer is sending the wrong currency code. Check your ecommerce data layer script and ensure it outputs currency: "GBP" instead of defaulting to USD. Update your GTM GA4 Configuration tag to set the correct default currency.
Duplicate Purchase Events
Seeing 2x or 3x the number of conversions you actually have? Your GA4 purchase event is firing multiple times. This happens when you have multiple GTM tags or triggers set to fire on the same page, or when customers refresh the thank-you page. Add deduplication logic to your trigger (e.g., only fire once per unique transaction_id).
Events Fire But Don't Appear in Reports
If DebugView shows events but they never appear in your GA4 reports, check: (1) Are you looking at the right date range? GA4 has 24-48 hour delay. (2) Are you in the correct GA4 property? (3) Is the event marked as a conversion in your GA4 settings?