Available for projects & agency overflow · Quick reply, from the person who does the work

GA4 ecommerce tracking: the events that actually matter

GA4 recommends around fifteen ecommerce events, from view_item_list through to refund. A sales funnel only needs five or six of them to be measured properly: the rest refines an already reliable base, it doesn’t replace it.

Describe my issue Send a message

What I see most often

  • A GTM container with twelve to fifteen ecommerce tags, half of which never fire
  • A purchase event firing twice when the customer refreshes the confirmation page
  • Empty GA4 ecommerce reports despite tags firing correctly in preview mode
  • A project that wants to track everything from day one and, six months later, has neither a reliable dataLayer nor anyone maintaining it
  • An average order value or product conversion rate that can’t be calculated because value or currency aren’t passed correctly

How I prioritise the setup

  1. purchase, the only event required from day one

    Without it, no revenue is measurable and no ROAS can be calculated on Google Ads or Meta. I check it fires once per order only, with a stable transaction_id and value/currency matching the amount actually charged.

  2. add_to_cart and begin_checkout, to measure drop-off

    These two events are enough to see where the funnel loses visitors between adding to cart and starting checkout. Second priority, once purchase is solid.

  3. view_item and view_item_list, when the catalogue is the weak spot

    Useful for calculating a conversion rate per product page or category page. Third priority, especially with a large catalogue or several ranges to compare.

  4. view_cart, add_shipping_info, add_payment_info, to refine

    These intermediate steps pinpoint where in the checkout a visitor drops off. Worth adding once the base is stable, rarely a first priority.

  5. refund, last, unless returns carry real weight

    Only relevant if the volume of refunds or cancellations matters for steering the business; otherwise, not a launch priority.

Names and parameters that aren’t up for debate

The main ecommerce events GA4 recommends — view_item_list, view_item, add_to_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase, refund — have names and parameters set by Google. The full list holds others too, notably select_item, remove_from_cart, add_to_wishlist, view_promotion and select_promotion. Renaming an event or changing the structure of its items parameter breaks nothing visibly, but leaves GA4’s standard ecommerce reports unable to recognise it.

Two parameters deserve particular care. transaction_id must be unique per order: it’s what lets GA4 deduplicate a purchase replayed when the confirmation page reloads. value and currency must match the amount actually charged, in the right currency: a value passed incorrectly (excluding tax instead of including it, a fixed currency on a multi-currency site) throws off every revenue figure measured, with no error showing up anywhere.

Related pages

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

outil
api
sens
frequence (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Should I set up every ecommerce event from launch?
No. purchase is the only one required from day one. The others get added progressively, in the order they provide usable information, not all at once.
What happens if I rename an event my own way?
GA4’s standard ecommerce reports won’t recognise it. The event can fire perfectly well and still appear nowhere in the tables built for it.
Why does my GA4 revenue never exactly match my real orders?
That’s a known structural gap (consent refusal, blockers, multi-device journeys...), not necessarily a bug. I check value and transaction_id are passed correctly before looking further.
Google Tag Manager or gtag.js hard-coded in the theme?
Both work technically. GTM centralises tags and avoids a deployment for every change; that’s what I recommend once there are more than two or three events to manage.
How long does it take to set up the priority events?
Setting up purchase, add_to_cart and begin_checkout with reliable parameters usually takes a few hours, once the dataLayer or integration point on the platform is identified.