Migrating E-commerce Tracking from UA to GA4: What Changed
Universal Analytics Enhanced E-commerce and GA4 e commerce look similar on the surface, both track impressions, add to-cart, and purchases. But the underlying event schema, data structure, and validation requirements are completely different. Many teams that migrated assumed parity and are still running with gaps they don't know about.
The schema change: from hits to events
UA Enhanced E-commerce used a hit based model with a dedicated ecommerce object pushed to the dataLayer. GA4 moved to a fully event based model where every interaction, impression, click, add to-cart, checkout, purchase, is a named event with an items array.
The event names changed: detail became view_item, checkout became begin_checkout, and purchase retained its name but gained required parameters. If you migrated by renaming events without restructuring the items array, your data is likely malformed.
The items array: the most common migration failure
GA4 requires product data to be in an items array, not a flat object. Each item needs at minimum item_id and item_name. Recommended fields include price, quantity, item_category, and item_brand.
Many migration scripts converted the old UA product object directly without nesting it in an array. The result: GA4 receives the event but cannot parse product data.
Your purchase events fire, revenue appears in reports, but product level breakdowns show "(not set)" everywhere.
Revenue reporting differences to account for
GA4 calculates revenue from the value parameter on the purchase event, not by summing item prices. If you pass value including tax and shipping, your revenue figures will differ from your actual net revenue. GA4 also introduced separate tax and shipping parameters, use them to ensure your revenue data reflects what you actually want to measure.
Cross-reference your GA4 purchase totals against your backend order database.
A variance above 10% typically indicates a structural issue, duplicate events, missing events on certain page types, or currency handling problems, all of which a GA4 audit will surface with check level specificity.
Ready to audit your GA4 property?
Run a full GA4 audit in under 10 minutes. Free to start.
Start Free Audit