Home/Blog/E-commerce
E-commerce11 min read

GA4 E-commerce Tracking: The Definitive Checklist

Complete checklist for GA4 enhanced ecommerce tracking. Covers every event from product impression to purchase, with dataLayer examples.

ecommerce, GA4, tracking, dataLayer, purchase

If you run an online store, GA4's enhanced ecommerce tracking is the most important analytics feature you'll configure. Get it wrong, and your revenue data, product performance, and funnel analysis will all be unreliable.

The Complete Event Funnel

Here's every ecommerce event GA4 expects, in order:

1. view_item_list (Category/Search Pages)

dataLayer.push({
  event: 'view_item_list',
  ecommerce: {
    item_list_id: 'category_mens_shoes',
    item_list_name: "Men's Shoes",
    items: [{
      item_id: 'SKU_123',
      item_name: 'Running Shoe Pro',
      price: 129.99,
      item_brand: 'BrandName',
      item_category: 'Shoes',
      index: 0
    }]
  }
});
javascript

2. select_item (Product Click)

Fire when a user clicks a product from a list.

3. view_item (Product Detail Page)

Every product page view must push this event with full item details including price, brand, category, and variant.

4. add_to_cart / remove_from_cart

Track every cart modification. Include the value and currency parameters.

5. begin_checkout

Fires when the user initiates checkout. Include the full cart contents.

6. add_shipping_info / add_payment_info

Track each checkout step separately for funnel analysis.

7. purchase (The Critical One)

dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'T_12345',
    value: 259.98,
    tax: 23.40,
    shipping: 5.99,
    currency: 'USD',
    coupon: 'SUMMER10',
    items: [/* full items array */]
  }
});
javascript

Critical checks for the purchase event:

- `transaction_id` must be unique (prevents duplicate counting)

- `value` should include tax and shipping (or not — be consistent)

- `currency` must be a valid ISO 4217 code

- `items` array must match what was actually purchased

8. refund

Don't forget refund tracking — without it, your revenue reports will be overstated.

Common Ecommerce Tracking Mistakes

  1. Missing currency parameter — Revenue shows as 0 in reports
  2. Duplicate purchase events — Fire purchase only once per order
  3. Inconsistent item IDs — Use the same `item_id` across all events
  4. No clear ecommerce object — Always push `{ecommerce: null}` before a new ecommerce push to clear stale data

Validate Your Setup

Use GA4 DebugView to watch events fire in real-time. Check that: - Every item has item_id, item_name, and price - Purchase value matches the actual order total - No duplicate transaction_id values

Or let us check for you — run an ecommerce tracking audit →

Check your GA4 implementation

Run a free AI-powered audit to see how your tracking stacks up.

Start Free Audit