Enhanced ecommerce audited end-to-end.
Catch the revenue-doubling, currency-missing, item-array-empty bugs that quietly corrupt every ROAS report. The audit walks the full GA4 ecommerce schema and reports what your tags actually shipped.
GA4 enhanced ecommerce is the most expensive measurement surface to get wrong, and the failure modes are not visible from any default report. Duplicate purchase events double your reported revenue and break ROAS for every paid channel — Smart Bidding then optimizes against inflated conversion values for weeks. Missing currency parameters silently demote your purchase event so revenue stops aggregating in multi-currency stores. Missing item arrays leave the entire product-level analysis empty: no view_item, no add_to_cart, no item-level conversion. Funnel math impossibilities (purchases > add_to_carts) show that the begin_checkout or add_to_cart events never fired, but the GA4 funnel report still renders happily. None of these break the property — they just make every revenue number wrong, and a CFO trusts the wrong number for two quarters before someone reconciles against Stripe.
- Detects duplicate purchase transactions by walking 30 days of `transactionId` dimension values and flagging IDs counted more than once — the single most expensive ecommerce bug, almost always caused by a thank-you-page refresh firing the purchase event twice.
- Catches purchase events shipping without the `currency` parameter, which silently breaks revenue aggregation across multi-currency stores and demotes the event in standard reports.
- Finds purchases that arrived with an empty `items` array — the symptom of a Shopify Liquid snippet that fired before the cart object was populated, or a Custom Event GTM tag missing the items mapping.
- Surfaces funnel math impossibilities (purchases > checkouts, or purchases > add_to_carts) that prove an upstream funnel event never fired. GA4 funnels render even when the math is broken, so nobody catches this in the UI.
- Spot-checks item-level revenue variance — a single item showing $98,000 of revenue while every other item shows $20–200 is almost always a unit-price-vs-line-total bug worth catching before the next merchandising review.
14 transaction IDs counted more than once in the last 30 days
Reported revenue is inflated approximately 1.8× on those orders. Google Ads Smart Bidding has been optimizing against the inflated value since the duplicate started — expect target ROAS to drift downward as bids overshoot real conversion value. Reconcile GA4 revenue against Stripe before the next monthly performance review.
The pattern fits a thank-you-page refresh firing the purchase event a second time. Three options: (1) gate the purchase tag behind a one-shot trigger that uses `transactionId` as the dedup key in browser storage; (2) move the purchase event to a server-side container where the dedup key is the receipt-page render not the browser hit; (3) on Shopify, switch from Customer Events to the Order Status page snippet which Shopify itself dedupes. Detailed GTM menu path in the audit.
Hire a web analyst. Or install one.
GA4 enhanced ecommerce is one of 10 high-stakes chores the agent covers end-to-end. Your first audit is free — and the agent keeps watching every night, so the next time ga4 enhanced ecommerce drifts, you hear it from us before it costs you.