How to Track Ecommerce Events Guide
Ecommerce event tracking is the data layer your marketing spend optimises against: get the events right and every downstream system (GA4, Google Ads, Meta) improves; get them wrong and you’re optimising toward noise. This guide covers implementing the event set properly on any store.
Related services: GTM ecommerce tracking, GA4 events implementation, and the audit if you suspect your current setup.
What it takes in practice
- Build on a dataLayer, always. Events read from a structured dataLayer your templates populate, never scraped from page HTML. This single decision determines whether tracking survives theme changes.
- Implement the funnel event set. view_item, add_to_cart, begin_checkout, add_shipping_info, add_payment_info, purchase: the sequence that makes funnel analysis real. Each with complete item arrays (id, name, price, quantity, variant).
- Make purchase server-truthful. The purchase event carries backend-confirmed values: transaction ID, revenue, tax, shipping. This ends the eternal ‘analytics vs ERP numbers’ argument at its source.
- Kill duplicates with transaction IDs. Duplicate purchase events are the most common tracking disease, inflating revenue and corrupting ROAS. Deduplicate on transaction ID and verify with backend reconciliation on a sample.
- Wire consent mode properly. UK/EU compliance means tags respect consent state. Consent mode preserves modelling capability where lawful; ignoring consent is a legal problem wearing a data hat.
- Track refunds too. Refund events keep reported revenue trending toward net truth. Stores that skip refunds permanently overstate performance and slowly mistrust their own dashboards.
Where a specialist earns the fee
This is real engineering, not configuration, and the design decisions matter more than the code. We’ve built these systems at production scale, from real-time WIP accounting carried live across Odoo v15 to v19 to a platform running 150-plus tenants, and the value we add is the judgement to avoid the expensive wrong turns rather than just the hours to type. If the scope here matches something you need built properly, we scope it with a fixed quote and an hours breakdown before anyone commits.
Common questions
Which platforms does this feed beyond GA4?
How do we verify events are actually correct?
Our numbers were wrong for a year. Is history fixable?
Who should own the tag container, us or an agency?
Not sure where to start? Book a free discovery call and we’ll map your current setup, or request a free Odoo health check if you’re already running Odoo.