Why is my GA4 Ecommerce Data Missing or Showing $0?
The Short Answer
Missing ecommerce data usually means your dataLayer does not perfectly match GA4's strict ecommerce schema, specifically lacking the 'items' array, 'value', or 'currency' parameters.
The Context
It's a nightmare scenario: traffic is flowing, "purchase" events are showing up in your real-time reports, but your total revenue is sitting solidly at $0.00 and the "E-commerce purchases" report is completely blank.
Unlike Universal Analytics, which was somewhat forgiving, GA4 demands absolute structural perfection for e-commerce data. If a single required parameter is missing or formatted as a string instead of a number, GA4 drops the entire monetization payload.
The 3 Most Common Root Causes
1. Using the old Universal Analytics Schema
If you recently migrated from UA to GA4 but kept your old dataLayer intact, GA4 cannot read it. UA looked for ecommerce.purchase.products. GA4 strictly requires ecommerce.items. If you are pushing older structure, the revenue is ignored.
2. Missing Currency or Value Parameters
GA4 requires both the value and the currency parameters at the root of the ecommerce object for every monetary event (view_item, add_to_cart, purchase). If you send a value of 50.00 but forget to declare currency: "USD", the value is rejected outright.
3. Values Passed as Strings Instead of Numbers
If your backend outputs the purchase value wrapped in quotes (e.g. "value": "25.50" instead of "value": 25.50), GA4's schema validation fails. The event is recorded, but the revenue defaults to zero.
How to fix it:
- 1
Audit your DataLayer Schema: Open a test checkout and view the GTM dataLayer object. Cross-reference it directly against Google's official GA4 E-commerce documentation. Check for 'items' vs 'products'.
- 2
Check the Parameter Types: Ensure your
valueandpriceparameters are integers or floats, not strings. Ensure youritem_idoritem_nameare passed as strings inside the items array. - 3
Wait for 24-48 Hours: Unlike standard events, monetization reports in GA4 often take up to 48 hours to fully process and populate the standard UI. Verify the data using Explorations or BigQuery first.
- 4
Scan your Funnel: Use our GTM Auditor to automatically scan your dataLayer on the 'add_to_cart' and 'purchase' steps. It will flag strict schema violations instantly.
Want to check this automatically?
Instead of clicking through settings yourself, let our engine audit your GTM Container for this exact issue (and 30 others) in 60 seconds.
Scan your setup with our GTM Audit Tool