18 GA4 Ecommerce Events You Need Tracked in 2025 (Setup Checklist Included)
by Trivas.ai
|
9 min read
Sep 27, 2026
Most GA4 setups look complete on the surface. Page views fire, sessions get counted, the real-time report shows people on the site right now. Then you pull a purchase funnel report and half your ecommerce data is just... gone. That's the trap. GA4 doesn't track ecommerce activity the way Universal Analytics did, and if nobody manually wired up your google analytics ecommerce events, you're likely missing 30-50% of your actual purchase funnel.
This isn't a rare misconfiguration. It's the default state for a huge share of Shopify and Amazon-adjacent DTC stores that migrated to GA4 under deadline pressure back in 2023 and never went back to finish the job.
Why Most Shopify and Amazon Brands Are Missing GA4 Ecommerce Events
GA4 auto-collects a handful of events out of the box: page_view, session_start, first_visit, scroll. Useful, but none of them tell you anything about whether someone added a product to cart or completed checkout.
Ecommerce events, the ones that actually matter for revenue reporting, are a different category entirely. view_item, add_to_cart, begin_checkout, purchase, these require explicit implementation, either through Google Tag Manager's data layer or direct gtag.js calls. Nothing fires automatically. If your dev team (or agency, or app that promised "GA4 integration") skipped this step, GA4 will happily report clean session counts while your entire purchase funnel sits empty.
This matters more than it sounds. Without these events, you can't see cart abandonment, you can't build audiences off purchase behavior, you can't feed accurate conversion data back to Google Ads or Meta for bidding. The funnel just isn't there.
This post lists all 18 recommended google analytics ecommerce events, what each one is supposed to capture, and a practical checklist for getting them firing correctly whether you're on GTM or gtag.js. If you want a shortcut instead of the manual audit, Trivas's GA4 solution maps these events automatically once you connect the property.
The 18 GA4 Ecommerce Events (What Each One Tracks)
Google groups these by funnel stage. Here's the breakdown, along with the parameters GA4 actually needs to fire the event correctly (miss these and the event either won't populate reports or won't dedupe properly).
[@portabletext/react] Unknown block type "table", specify a component for it in the `components.types` prop
The two events that trip up almost everyone: purchase and add_to_cart. purchase needs a unique transaction_id on every fire, and value plus currency need to be present or GA4 can't calculate revenue correctly. add_to_cart needs the full items array with item_id, item_name, price, and quantity, not just a product ID.
The single most common mistake we see: firing purchase on every page load of the thank-you page instead of gating it to a unique transaction_id. Customers refresh confirmation pages, hit back and forward, or return to the URL from an email link, and each load fires another purchase event with the same order. Revenue gets double or triple counted, and nobody notices until finance asks why GA4 revenue doesn't match Shopify's. Check the data dictionary if you're unsure which parameters map to which report metric before you start debugging.
Recommended Events vs Custom Events: When to Build Your Own
The 18 events above are what Google calls "recommended" ecommerce events. They plug directly into GA4's standard ecommerce reports, and they're what DebugView expects to see when you're validating a new setup. Stick to the recommended set whenever the behavior fits, because standard reports, benchmarking, and even Google Ads conversion imports are all built around these exact event names and parameters.
Custom events exist for behavior that genuinely doesn't fit the ecommerce funnel. A few places where they make sense for DTC brands:
Subscription upgrades. If a customer moves from a monthly to quarterly plan, that's not a purchase in the traditional sense, it's a plan change with its own value delta worth tracking separately.
Loyalty point redemption. Points redeemed for a discount or free item isn't a standard transaction, and forcing it into purchase muddies your real revenue numbers.
Quiz completions feeding product recommendations. Useful for understanding which quiz paths lead to conversions, but it's a discovery-adjacent behavior, not a checkout step.
The mistake to avoid: renaming a standard event to something that feels more "on brand." Calling purchase "order_complete" or add_to_cart "bag_add" breaks GA4's built-in ecommerce reports entirely, because those reports are hardcoded to look for the standard event names. You'll end up building custom explorations to replicate reports that already existed, for free, under the standard names.
Setting Up Ecommerce Events with GTM or gtag.js
Two paths here, and most stores pick one based on who's maintaining the site.
Google Tag Manager is the more common route, especially for teams without a dedicated developer. GTM reads from a data layer that your site pushes events into, and GA4 tags in GTM listen for those pushes. A sample add_to_cart push looks like this:
[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop
And purchase follows the same shape, with transaction_id added at the top level of the ecommerce object:
[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop
gtag.js is the direct route for teams skipping GTM entirely, calling gtag('event', 'purchase', {...}) straight from the page. Fewer moving parts, but every event lives in code, so changes need a developer and a deploy instead of a tag update.
Here's the Shopify-specific wrinkle: on most Shopify plans, checkout pages aren't fully customizable. You can't just drop a GTM container on the checkout step and expect add_payment_info or purchase to fire cleanly, because Shopify controls that markup. Manual GTM tags on checkout usually break, fire late, or fire inconsistently across Shopify Plus vs standard plans. A native integration that reads order data directly from Shopify's backend is the more reliable path for these specific events. Our Shopify integration guide covers what that setup looks like in practice, and if you're running your storefront on Shopify already, the Shopify solutions page has the platform-specific detail.
Whichever path you choose, validate everything in GA4's DebugView before trusting it in reports. DebugView shows events firing in real time with their full parameter payload, so you can catch a missing currency or malformed items array before it pollutes weeks of reporting.
Common GA4 Ecommerce Tracking Errors That Skew Your Numbers
Even with events technically "firing," a few errors quietly wreck the data:
Duplicate purchase events. Client-side GTM tags and a server-side container both firing on the same order is one of the most common causes of inflated revenue in GA4. Check for this specifically if your GA4 revenue is consistently higher than Shopify's order total.
Missing currency parameter. If currency isn't passed, GA4 defaults to whatever currency is set at the property level. For a US-based property selling to international customers, that means a €150 order from Germany gets reported as $150. Revenue from every non-default-currency order gets silently misreported, and it's rarely caught until someone reconciles against Stripe or Shopify directly.
Consent-gated events not firing (or firing when they shouldn't). Under GDPR and CCPA banners, ecommerce events tied to consent management need to fire only after consent is granted, but a lot of implementations either block everything indefinitely or fire everything regardless of the banner state. Either way, you get silent gaps in EU or CA traffic that make those regions look artificially quiet.
Cart events not resetting between sessions. If add_to_cart fires again every time a returning visitor's cart reloads from a stored cookie, instead of only firing on a genuine new add, your cart-add counts get inflated and your add-to-cart-to-purchase rate looks worse than it actually is.
From Raw GA4 Events to a Funnel You Can Actually Act On
Once the events are actually firing correctly, the next problem is just as real: GA4's native exploration reports are slow to build and painful to hand off. A founder or CMO asking "what's our add-to-cart rate this week" doesn't want an exploration report with six dimensions stacked on top of each other. They want one number, or one chart, not a funnel diagram they have to interpret.
This is the gap between "tracking is set up" and "tracking is useful." Raw GA4 data sitting in its own silo, disconnected from Shopify order data or ad spend, means you're still doing manual joins in a spreadsheet to answer basic questions like whether last week's cart abandonment spike correlates with a paid traffic surge.
This is the point where a dashboard layer earns its keep. Trivas pulls GA4 ecommerce events alongside Shopify orders and ad platform spend into one Redshift-backed reporting layer, so add-to-cart drop-off, checkout abandonment, and cost-per-acquisition all sit on the same screen instead of three different tools. The BI reporting product is built specifically to take these already-firing events and turn them into something you can glance at once a day, not something you have to rebuild in GA4 every time a stakeholder asks a new question.
Get Your GA4 Ecommerce Funnel Reviewed
The 18 events again, quickly: view_item_list, select_item, view_item, view_promotion, select_promotion, add_to_cart, remove_from_cart, view_cart, add_to_wishlist, begin_checkout, add_shipping_info, add_payment_info, purchase, refund, plus the retention and engagement variants covering repeat views, repeat cart adds, content selection, and lead generation. Get these firing with the right parameters, and GA4 finally becomes a funnel you can trust instead of a report full of blank rows.
If auditing tags by hand across GTM, gtag.js, and a checkout you don't fully control sounds like a weekend you'd rather not spend, connect your GA4 property in a free trial and see your funnel events mapped out automatically instead of hunting through DebugView line by line.
Content author and contributor at Trivas.ai, sharing insights on e-commerce analytics, business intelligence, and data-driven strategies to help businesses grow.
Continue Reading
explore more insights
Triple Whale Missing Features That Trivas Has (2025 Breakdown)
3 min read
Top 8 ROAS Tracking Tools Compared
3 min read
How to Measure Attribution Across Cookieless Browsers