Free audit with a recorded video walkthrough in 3 business days Plans and prices published for every service You own every account, dashboard and line of code Senior-led, with hours that overlap the full US business day

GA4 Ecommerce Tracking: Events, Setup and Shopify Fixes

The short answer

GA4 ecommerce tracking records how shoppers move from product lists to product pages, carts, checkout and purchase, using a set of recommended events that each carry an items array. To make it work, send those events with consistent product IDs, prices, currency and a unique transaction ID, test them in DebugView, and on Shopify make sure only one source sends them.

On this page
  1. How GA4 Ecommerce Tracking Works
  2. The GA4 Ecommerce Events You Need
  3. How to Set Up Ecommerce Tracking in GA4
  4. How to Enable Enhanced Ecommerce in GA4
  5. Shopify GA4 Ecommerce Tracking Options
  6. WooCommerce GA4 Ecommerce Tracking
  7. GA4 Ecommerce Reports and Explorations
  8. Why GA4 Revenue Does Not Match Your Store
  9. GA4 Ecommerce Tracking Checklist

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

EventWhen it firesNotes
view_item_listA collection, category or search results page loadsInclude item_list_name and each product's position
select_itemA shopper clicks a product in a listLets you see which lists drive product views
view_itemA product page loadsInclude the selected variant where possible
add_to_cart / remove_from_cartCart changesFire on success, not on button click
view_cartThe cart page or drawer opensUseful for cart drawer themes
begin_checkoutCheckout startsThe top of the checkout funnel
add_shipping_info / add_payment_infoEach checkout step completesShows where checkout drop-off happens
purchaseThe order is confirmedtransaction_id and items are required; currency is required when value is sent
refundAn order is refundedUsually sent from the server with the original transaction_id
view_promotion / select_promotionA banner or promotion is seen or clickedOptional, 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:

  1. 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.
  2. 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.
  3. Configure Google Tag Manager. Create a GA4 event tag for the ecommerce events with "send ecommerce data" enabled, and triggers for each event name.
  4. 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.
  5. 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.
  6. 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.

GA4 Ecommerce Tracking: your questions

Does Shopify send ecommerce data to GA4 automatically?
Only if you connect GA4 through Shopify's Google and YouTube app or set up your own tracking. Once connected, the app sends standard ecommerce events including purchases. It does not give you much control over parameters or product IDs, so stores that need custom data, consistent IDs across ad platforms or server events usually move to a custom pixel or a tracking app.
Why is my GA4 purchase count higher than my orders?
Duplicate purchase events are the usual cause, typically from two tracking sources such as the Shopify app plus a theme snippet, or a confirmation page that fires again on reload. GA4 deduplicates purchases that share a transaction ID in some cases, but you should not rely on it. Remove duplicate sources and confirm each order sends one event.
Can GA4 track refunds?
Yes, through the refund event with the original transaction_id, and optionally the refunded items. Because refunds usually happen in the store admin rather than on the website, they are normally sent from a server using the Measurement Protocol or a tracking app. Without refund events, GA4 revenue is overstated for stores with high return rates.
Should GA4 revenue include tax and shipping?
There is no single right answer, but be consistent. Most stores send product revenue after discounts and exclude tax, and send shipping and tax as separate parameters. Whatever you choose, use the same definition in Google Ads and Meta so you can compare platforms, and document it for anyone who reads the reports.
How do you track ecommerce in GA4?
You track ecommerce in GA4 by sending the recommended ecommerce events, from view_item to purchase, with an items array on each. The purchase event is the one that matters most: send it with transaction_id, value, currency and items every time an order is confirmed. GA4 treats purchase as a key event by default, so it appears in conversion reporting and can be imported into Google Ads as a secondary action. Mark other steps, such as begin_checkout, as key events only if you genuinely want them counted as conversions, or your conversion totals stop meaning anything.
What is replacing Google Analytics?
Nothing is replacing Google Analytics itself. Google Analytics 4 replaced Universal Analytics, which stopped processing data for standard properties on July 1, 2023. GA4 uses an event-based model, which is why old enhanced ecommerce setups had to be rebuilt as GA4 ecommerce events. Some businesses add a privacy-focused tool such as Matomo or Plausible alongside it, but for ecommerce and Google Ads reporting, GA4 remains the standard.

Muhammad Mustafa, founder of 95 Solutions

11+ years in SEO, paid media and ecommerce growth. Head of Marketing for a US fashion brand since 2016. More about the team.

Next step

Tell us what you want to grow

Send a few details and a senior strategist replies within one business day with honest next steps, even if we are not the right fit.

  • Free audit with a recorded video walkthrough
  • Fixed scope and published pricing
  • No long lock-ins: 3-month minimum on most retainers
  • You own every account, file and line of code

We only use your details to reply. See our privacy policy.