GA4 setup for ecommerce stores: events, key events and the mistakes that distort your numbers
In this article 10 sections
- How GA4 measures a store
- The ecommerce events every store needs
- Mark the right events as key events
- A setup checklist you can follow
- Mistakes that quietly distort your numbers
- Why GA4 and your ad platforms will never match exactly
- Consent and privacy
- What to do once GA4 is clean
- How Growloom can help
- Frequently asked questions
Most online stores have Google Analytics 4 installed, and far fewer trust what it tells them. The usual causes are not mysterious: missing purchase events, duplicate orders, payment gateways stealing credit for sales and a property that was set up once and never checked. This guide walks through a clean GA4 setup for an ecommerce store, the events you need, how to check it works and the mistakes we see most often.
How GA4 measures a store
Older Google Analytics versions were built around sessions and pageviews. GA4 is built around events: a page view is an event, so is a click, an add to cart and a purchase. Each event can carry parameters such as value, currency and the products involved. This is flexible, but it also means GA4 only knows what you tell it. If your store does not send a purchase event with the right details, GA4 cannot report revenue correctly, however good the dashboards look.
The ecommerce events every store needs
Google publishes a list of recommended events. For a store, these are the ones that matter first:
| Event | When it fires | Key details to send |
|---|---|---|
| view_item | A visitor views a product page | items (name, ID, price), currency |
| add_to_cart | A visitor adds a product to the cart | items, value, currency |
| begin_checkout | A visitor starts checkout | items, value, currency |
| add_payment_info | A visitor enters payment details | items, value, currency, payment type |
| purchase | An order is completed | transaction_id, value, currency, tax, shipping, items |
| refund | An order is refunded | transaction_id, value, items |
Many store platforms such as Shopify, WooCommerce and Magento can send these automatically through a plugin or built-in integration. If yours does, you still need to check what it actually sends.
Mark the right events as key events
In GA4, an event you want to treat as a business goal is marked as a key event, the term that replaced "conversion" inside GA4. For most stores the purchase event is the main key event. A lead form submission can be one too, if you also generate enquiries. Be selective: if everything is a key event, nothing stands out, and Google Ads may optimise towards weak signals.
A setup checklist you can follow
- Create the property and a web data stream for your store's domain, and note the measurement ID.
- Install GA4 once. Use Google Tag Manager or your platform's integration, not both, or every event will be counted twice.
- Switch on enhanced measurement for scrolls, outbound clicks, site search and file downloads, and review which ones you actually want.
- Send the ecommerce events in the table above, with value, currency and an items list on each.
- Add a unique transaction_id to every purchase so GA4 can ignore repeats if the confirmation page is reloaded.
- Mark purchase (and any real lead event) as a key event.
- Link Google Ads and Search Console so you can see campaign and search data next to behaviour.
- Extend data retention. The default for event-level data is short, and you can raise it. See Google's data retention help for the options.
- Exclude your own traffic using internal traffic rules, so team visits and test orders do not pollute the numbers.
- Handle payment gateways. If customers leave your site to pay and return, make sure the gateway is on your referral exclusion list so the sale is not credited to it.
- Test before trusting. Use DebugView and Realtime reports to watch events arrive, then place a test order and confirm exactly one purchase appears with the right value.
Mistakes that quietly distort your numbers
| Mistake | What you will see | Fix |
|---|---|---|
| Two GA4 tags installed (plugin and Tag Manager) | Page views and purchases roughly doubled | Keep one installation |
| No transaction_id | More purchases than real orders | Send a unique ID on every purchase |
| Missing or wrong currency | Revenue reported as zero or in the wrong unit | Send a valid currency code with every value |
| Payment gateway listed as a referrer | "Direct" or gateway traffic shows most revenue | Add the gateway to the referral exclusion list |
| Tax and shipping handled inconsistently | GA4 revenue never matches your store | Decide once whether value includes tax and shipping, and apply it everywhere |
| Test orders counted | Spikes on launch days | Filter internal traffic and test orders |
| Nobody checks it again | Events silently stop after a theme or plugin update | Review key events monthly |
Why GA4 and your ad platforms will never match exactly
GA4, Google Ads and Meta each use their own attribution rules, windows and ways of counting people, and consent choices remove some visitors from analytics entirely. Treat GA4 as the shared yardstick for behaviour and compare it with your store's own order data. If GA4 and your store differ by a small, stable amount, that is normal. If the gap is large or keeps growing, something in the setup has broken. For judging campaigns on profit rather than revenue, read our guide to ROAS, CAC and payback period.
Consent and privacy
Analytics runs on personal data, so collect consent where the law requires it, respect opt-outs and configure consent signals so tags behave correctly. Rules differ by country, so get legal advice for your own situation. If you serve customers in India, the Digital Personal Data Protection Act, 2023 is a good starting point, and the government's data protection framework page is a place to begin.
What to do once GA4 is clean
- Recover missing conversions. Look at enhanced conversions and consent mode for Google Ads.
- Connect it to your ads. Import key events into Google Ads, and pair browser tracking on Meta with the Conversions API so both platforms see more of your real sales.
- Build audiences such as cart abandoners and past buyers for remarketing and lifecycle campaigns.
- Look at the funnel, not just the total. Where do people drop between product page, cart and checkout? That is usually a cheaper fix than buying more traffic.
- Export raw data to a warehouse if you need deeper analysis. GA4 supports a BigQuery link, so check Google's current terms before you rely on it.
How Growloom can help
Tracking is the first thing we set up, before we scale spend. Our analytics and tracking service covers GA4, Tag Manager, server-side events and dashboards that match your store, so every channel is judged on the same numbers. Read more in our analytics and measurement guides, or book a free audit and we will check what your setup is really sending.
Frequently asked questions
What are the most important GA4 events for an online store?
The core ecommerce events are view_item, add_to_cart, begin_checkout and purchase. Send each with value, currency and an items list, and give every purchase a unique transaction_id.
What is the difference between a conversion and a key event in GA4?
They are the same idea. Google renamed conversions inside GA4 to key events. A key event is an event you mark as important to your business, such as a purchase or a lead.
Why does my GA4 revenue not match my store?
Common causes are duplicate or missing purchase events, a missing transaction_id, tax and shipping counted differently, a payment gateway taking credit, consent choices removing visitors, and refunds not being sent. Compare the two over a few weeks and look for a stable gap.
Should I use Google Tag Manager or install GA4 directly?
Either works, but use only one. Tag Manager gives you more control over events and consent. A platform integration is quicker if your store only needs the standard ecommerce events.
Sources and further reading
Want a second opinion on your marketing?
Get a free audit of where your budget is working and where it is leaking.
Get a free audit