GA4 ecommerce tracking is the set of events Google Analytics 4 uses to measure shopping behavior: which products people see, click, add to cart, check out and buy, and how much revenue each product and channel produces. GA4 does not collect any of this automatically. Your site has to send each event with the right parameters, and if one step is missing or malformed, the funnel and product reports quietly break.
This guide lists the Google Analytics 4 ecommerce events you need, explains how to set them up, covers the options for GA4 on Shopify and explains why GA4 revenue rarely matches your store dashboard, with a checklist at the end.
How GA4 Ecommerce Tracking Works
Every ecommerce event has two layers. The event itself, such as add_to_cart, carries event-level parameters like currency and value. Inside it sits an items array, with one entry per product containing item_id, item_name, price, quantity and optional fields such as item_brand, item_category (up to five levels), item_variant, coupon and discount.
GA4 builds its product reports from the items array, so consistency matters. If the product page sends a SKU as item_id and the purchase event sends the platform's internal product ID, GA4 treats them as different products and your view-to-purchase rates make no sense.
The GA4 Ecommerce Events You Need
| Event | When it fires | Notes |
|---|---|---|
| view_item_list | A collection, category or search results page loads | Include item_list_name and each product's position |
| select_item | A shopper clicks a product in a list | Lets you see which lists drive product views |
| view_item | A product page loads | Include the selected variant where possible |
| add_to_cart / remove_from_cart | Cart changes | Fire on success, not on button click |
| view_cart | The cart page or drawer opens | Useful for cart drawer themes |
| begin_checkout | Checkout starts | The top of the checkout funnel |
| add_shipping_info / add_payment_info | Each checkout step completes | Shows where checkout drop-off happens |
| purchase | The order is confirmed | transaction_id and items are required; currency is required when value is sent |
| refund | An order is refunded | Usually sent from the server with the original transaction_id |
| view_promotion / select_promotion | A banner or promotion is seen or clicked | Optional, but shows which internal promotions drive sales |
How to Set Up Ecommerce Tracking in GA4
To set up ecommerce tracking in GA4, plan a data layer, push each recommended ecommerce event with an items array, send those events to GA4 through Google Tag Manager, adjust the property settings and test everything in DebugView. Step by step:
- Plan the GA4 ecommerce data layer. Write down which events fire on which pages, which product ID you will use everywhere, and whether values include tax and shipping. Agree this with whoever runs Google Ads and Meta so every platform uses the same definition of revenue.
- Push events to the data layer. On custom sites, the developer pushes each ecommerce event to
dataLayer, clearing the previous ecommerce object first so items do not carry over between events. - Configure Google Tag Manager. Create a GA4 event tag for the ecommerce events with "send ecommerce data" enabled, and triggers for each event name.
- Adjust property settings. Set the reporting currency and time zone to match your store, extend data retention from the default two months to fourteen, filter internal traffic and add payment providers such as PayPal to the unwanted referrals list so completed purchases are not credited to them.
- Test in DebugView. Use GTM preview to walk through a full journey and confirm each event arrives once, with a populated items array, in GA4's DebugView.
- Link Google Ads and BigQuery. Link your Google Ads account, and turn on the BigQuery export, which is free on standard properties within its limits, so you keep raw event data for deeper analysis later.
How to Enable Enhanced Ecommerce in GA4
You do not enable enhanced ecommerce in GA4 with a switch, because GA4 has no such setting: ecommerce reports fill as soon as your site sends the recommended events with an items array. Enhanced Ecommerce reporting was a Universal Analytics feature, which did need a toggle in the view settings. In GA4, the only box to tick is in Google Tag Manager, where each GA4 event tag carrying ecommerce data should have the option to send ecommerce data from the data layer turned on. Older Google Analytics ecommerce tracking code from Universal Analytics uses different event names and data layer structures, so rebuild it to the GA4 schema rather than hoping it maps across.
Shopify GA4 Ecommerce Tracking Options
For GA4 on Shopify there are three realistic routes:
- Shopify's Google and YouTube app. It connects a GA4 property and sends the standard ecommerce events, including purchases from checkout. It is the fastest option, but you get little control over parameters or product IDs.
- A custom pixel in Customer Events. Shopify's Customer Events area lets you subscribe to standard events such as product viewed, product added to cart, checkout started and checkout completed, and send them to GA4 with your own mapping. This is the most flexible native option and works with Checkout Extensibility.
- A tracking app or server-side setup. Tools such as Elevar or a server-side GTM container add server events, richer data and consistent IDs across GA4, Google Ads and Meta.
The most common Shopify problem we find is duplication: the Google and YouTube app sends a purchase, and a hard-coded gtag snippet in the theme or an old checkout script sends another. Pick one source per event and remove the rest.
WooCommerce GA4 Ecommerce Tracking
On WooCommerce, the usual routes are the official Google Analytics for WooCommerce extension, which sends the standard ecommerce events, or the GTM4WP plugin, which pushes WooCommerce product, cart and order data into the data layer so you control the GA4 tags in Google Tag Manager. GTM4WP gives more control and suits stores that also send the same events to Google Ads and Meta. Whichever you choose, check that caching plugins do not serve a cached order confirmation page, which can fire duplicate or missing purchase events.
GA4 Ecommerce Reports and Explorations
The Monetization section holds the standard reports: Ecommerce purchases for product performance, plus purchase journey and checkout journey views of the funnel. For custom questions, such as drop-off by device or by traffic source, build a funnel exploration in Explore. Because explorations can be affected by thresholding and sampling, BigQuery is the reliable source for detailed product and customer analysis.
Why GA4 Revenue Does Not Match Your Store
A gap between GA4 and your Shopify or WooCommerce revenue is normal. The usual reasons:
- Shoppers who decline cookies or use blockers are not tracked, or are only modeled.
- Your store report includes orders that never touched the website, such as draft orders, POS or marketplace sales.
- Refunds, cancellations and edits appear in the store but not in GA4 unless you send refund events.
- Time zone or currency settings differ between GA4 and the store.
- Tax and shipping are included in one and excluded in the other.
Aim for a consistent, explainable gap, and investigate if it suddenly widens. A sudden change almost always means a tracking break, often after a theme update or app install.
GA4 Ecommerce Tracking Checklist
- All funnel events firing once, from one source.
- Same item_id format on every event.
- Purchase events with transaction_id, value, currency and items.
- Payment providers in the unwanted referrals list.
- Retention set to fourteen months, internal traffic filtered.
- BigQuery export enabled.
- Monthly reconciliation of GA4 revenue against store revenue.
Clean analytics also make SEO measurable. Our Shopify SEO checklist and ecommerce keyword research guide both rely on accurate product-level revenue by landing page, and our Google Ads conversion tracking guide covers the paid side. For a hands-on setup, see our GA4 setup services, or request a free audit of your current tracking. More guides are on the 95 Solutions blog.