Skip to content

Ecommerce analytics and GA4: the complete guide

By cartscaling Reviewed 13 min read
Ecommerce analytics and GA4: person interacts with a digital sales dashboard displaying various performance metrics and analytics.

Chapter 1

Decide the handful of numbers your store will run on

Start by writing down the numbers you will actually make decisions with, before touching any settings. A store needs about ten, and everything else is available when a specific question comes up.

The core set follows the four levers. For traffic: sessions by channel and the cost of the paid ones. For conversion: conversion rate overall, add to cart rate, and checkout completion. For order value: average order value and items per order. For repeat business: repeat customer rate and the second order rate for recent cohorts. Plus two that keep the rest honest: contribution after the cost of goods and marketing, and returns.

For each one, write three things beside it: where the number comes from, who looks at it, and what decision it changes. A number that changes no decision comes off the list. That single rule removes most of what clutters a typical dashboard, including bounce rate, time on page, and anything reported per user that nobody can act on.

Decide the source of truth for each number too, because you will have several candidates. Orders and revenue should come from your store admin or your accounting system, since that is the record that matches the bank. Behaviour on the site should come from your analytics. Ad costs come from the ad platforms. When two sources disagree about the same thing, the rule you wrote in advance settles it instead of a meeting.

Then agree the definitions in writing. Conversion rate divided by sessions or by users gives different answers. Revenue with or without tax and shipping gives different answers. Neither is wrong, but a store that changes definitions quietly will believe things improved when they did not.

This list is what the rest of the guide is built to produce reliably.

Put the list somewhere the whole team can see it. A shared page of ten numbers with their definitions prevents most of the reporting disagreements that otherwise take up a monthly meeting.

  • About ten numbers, grouped by the four levers
  • Beside each: the source, the owner, and the decision it changes
  • Pick one source of truth per number in advance
  • Write the definitions down, including tax and shipping treatment

Chapter 2

Understand how GA4 models a store before you configure it

GA4 records everything as events rather than as pages, and once that clicks the rest of the tool makes sense. A page view is an event, an add to cart is an event, a purchase is an event, and each carries parameters that describe it.

Ecommerce events carry an items array, which is the part that matters for a store. Inside it each product is described with an identifier, a name, a price, a quantity and optional details such as brand, category and variant. Those item details are what make product reporting possible, so an events setup that fires the right event names with an empty or partial items array will produce reports that look complete and tell you nothing.

The standard sequence for a store is a view of a list, a view of an item, an add to cart, a view of the cart, a checkout start, and a purchase. Fire the ones you will use, name them exactly as the documented ecommerce events, and use the same item identifier throughout so a product can be followed from view to purchase.

Understand the difference between users and sessions, because your conversion rate depends on which you divide by. GA4 reports both, and it also distinguishes the source that first brought a user from the source of the session in which they converted. Those are two different reports answering two different questions, and mixing them up is the most common misreading in the tool.

One practical note on hosted checkouts. When the checkout runs on the platform rather than your own theme, the checkout and purchase events usually come from the platform's own integration or customer event system rather than from a tag you place on the page. Find out which mechanism is producing them in your store before adding another, because two sources firing the same event is how duplicate revenue appears.

  • Everything is an event with parameters, not a page
  • The items array carries the product detail that makes reports useful
  • Use documented ecommerce event names and one consistent item id
  • Know whether the checkout events come from your theme or the platform

Chapter 3

Install the ecommerce events in the order they earn their keep

Do not try to implement every event at once. Install them in the order of what they let you answer, verify each one, then move on. A partial setup that is correct is worth far more than a complete one that is wrong.

Start with purchase. It carries the order identifier, the value, the currency and the items, and it is the event every other number is compared against. Get it right and you can already answer most business questions. Verify it by placing a real order and checking that one event arrives, with the right total and the right products.

Add add to cart second, because purchase divided by add to cart gives you the cart and checkout picture immediately. Then the item view, which gives you add to cart rate per product and tells you which pages are failing. Then the checkout start, which splits the loss between the cart and the checkout itself. Those four events answer nearly everything a store owner asks.

After that, the optional ones earn their place case by case. List views and item selections help if you are working on collection pages. Shipping and payment steps help if your checkout has a real problem to diagnose. A refund event helps if returns are material in your category, and it is the only way to stop reported revenue drifting away from real revenue.

Use a tag manager if you have more than a couple of tags to maintain, and keep the naming tidy from the start. A container with clearly named tags and a written note of what fires where can be handed to someone else. One with a dozen unnamed tags cannot, and eventually somebody deletes the wrong one.

Verify with the live debugging view and with a real order rather than a test mode, then check again a week later. Events break silently after theme updates and app installs.

  • Purchase first, then add to cart, item view and checkout start
  • Verify each event with a real order before adding the next
  • Add refunds if returns matter in your category
  • Name tags clearly and re-verify after every theme or app change

Chapter 4

Make reported revenue match your own order records

Analytics revenue will never match your store admin exactly, but it should be close and the gap should be explainable. When it is not, every decision made from that data is suspect, so treat this as the foundation rather than a detail.

Work through the usual causes in order. Duplicate events, where the purchase fires twice because a customer refreshed the confirmation page or because two integrations are both sending it. A unique order identifier on the event lets the tool remove duplicates, so make sure the real order number is being sent. Missing events, where customers who leave the confirmation page quickly, block scripts or decline tracking never fire one. Currency, where multi currency stores report in mixed units unless the currency is sent with every event. And the treatment of tax and shipping, which may be included in one system and excluded in the other.

Refunds and cancellations are the slow drift. If refunds are never sent to analytics, reported revenue keeps rising above the money you actually keep, and the gap grows over time. Either send the refund event or accept that your analytics revenue is gross and label it that way everywhere.

Exclude your own traffic and your test orders. Staff placing test orders, developers browsing the store and a support team checking a product all pollute both behaviour and revenue in a small store.

Then measure the gap deliberately. Once a month, compare orders and revenue in analytics against the store admin for the same period, in the same time zone, and write down the difference. A stable gap you can explain is workable. A gap that moves around means something is broken, and you will notice it in the month it happens rather than a quarter later.

Time zones deserve their own check, since a mismatch between the analytics property and the store shifts every daily comparison you make.

  • Send the real order number so duplicates can be removed
  • Send currency with every event in a multi currency store
  • Decide how tax and shipping are treated, then apply it everywhere
  • Send refunds or label the number as gross revenue
  • Compare against the store admin monthly and record the gap

Chapter 7

Build the four reports you will actually open

Most analytics setups fail because nobody looks at them. Build four reports, put them where the team already works, and delete everything else from the daily routine.

The first is the funnel: sessions, product views, add to carts, checkouts started and purchases, with the drop between each step. This is the report that tells you which of the four levers to work on this month, and it should be the first thing you look at.

The second is landing page to revenue. Which pages people arrive on, how many sessions each gets, and what those sessions are worth. This is how you choose what to fix and what to promote, and it is far more useful than a report of your most visited pages, because a page can be busy and worthless.

The third is channel performance, with cost included for the paid channels. Sessions, orders, revenue and cost per channel, in one table, for a period you choose. Cost has to be pulled in from the ad platforms since analytics only knows about some of it, and a table that shows revenue without cost will make every channel look good.

The fourth is product performance: views, add to carts, purchases and revenue per product. This drives merchandising, feed priorities and what you photograph next.

Build them once, save them, and give them names people can find. Then set the comparison period deliberately, because the same data compared against last week, last month and the same period last year tells three different stories, and seasonal businesses need the year comparison to avoid panicking every January.

Add annotations for anything that moved the numbers: a sale, a site change, a stock out, an ad budget change. A chart nobody can explain a year later is a chart nobody trusts.

Give each report an owner. A saved report nobody is responsible for stops being maintained the first time a field name changes, and then quietly reports the wrong thing for months.

  • Funnel with the drop between each step
  • Landing page to revenue, not most visited pages
  • Channel table with cost included for paid channels
  • Product performance from view to purchase
  • Annotate sales, site changes and stock outs as they happen

Chapter 8

Read attribution as a hint rather than a verdict

Every platform claims the sale, and none of them are lying. Ad platforms count conversions they influenced using their own view and click windows, your analytics counts the last channel it could see, and your store admin only knows an order arrived. Three systems, three questions, three answers.

Decide in advance what you use each for. Ad platform numbers are for managing that platform, comparing one campaign against another inside the same account. Your analytics is for comparing channels against each other on a consistent basis. Your store admin is for the truth about how much money came in. Trouble starts when a platform's own figure is used to judge whether the whole business is profitable.

Understand what changing the attribution model does. Switching between last click and a model that spreads credit across the journey moves credit between channels without changing a single order. Channels that assist, such as social and email, gain under distributed models. Channels that close, such as brand search, lose. Neither view is the truth, and picking whichever flatters this month is how stores fool themselves.

The number that no attribution debate can distort is the blended one: all marketing cost against all revenue for the period. Track it every month. When blended performance improves while a platform reports a decline, the platform is measuring less, not performing worse.

When a decision genuinely depends on whether a channel is adding sales rather than recording them, test it. Pause the channel in one region, or hold back a group, and compare total orders. That is more work than reading a report, and it is the only method that answers the question.

And keep the same window everywhere. Comparing a platform reporting on a long window against analytics reporting on a short one produces an argument rather than an insight.

  • Platform reports manage the platform, analytics compares channels, the admin is the truth
  • Changing the model moves credit without changing orders
  • Track blended cost against blended revenue every month
  • Test with a holdout when a real decision depends on it

Chapter 9

Set a rhythm so the numbers get used, not just collected

Analytics only pays for itself when it is part of a routine. Set the rhythm, name the owner, and keep the meetings short enough that they actually happen.

Weekly, look at a single page: orders, revenue, spend, blended return, conversion rate and anything that changed sharply. Fifteen minutes. The purpose is to catch breakage, not to plan. Most weeks the answer is that nothing needs doing, and that is a useful answer.

Monthly, go through the four reports properly. Where did the traffic come from, where did people leave, which products moved, what did each channel cost and return. Decide the one or two things to work on next and write them down. Also do the data health checks in this session: compare analytics revenue against the store admin, check the direct bucket, and confirm the key events still fire.

Quarterly, look at cohorts and contribution. Are customers acquired recently worth more or less than a year ago. Is repeat rate moving. What is a customer worth over twelve months and what does that allow you to spend to get one. This is the session where budgets and priorities change.

Keep a written log of changes: site releases, campaign launches, price changes, stock outs, supplier problems. Nearly every strange number in a report has a boring explanation, and the log is where you find it.

And revisit the list of numbers from the first chapter once a year. Stores change, and a metric that mattered when you were starting can become noise. Removing a number from the routine is as valuable as adding one, because attention is the scarce resource in a small team.

If a report has not changed a decision in six months, stop producing it.

Keep the meetings to the agenda. Sessions about numbers expand to fill whatever time they are given, and a long one is usually a sign that nobody has decided which numbers matter.

  • Weekly: one page, fifteen minutes, catch breakage
  • Monthly: the four reports plus data health checks
  • Quarterly: cohorts, contribution and what a customer is worth
  • Keep a change log and retire reports nobody acts on

Questions

Some difference is normal. The usual causes are blocked or refused tracking, duplicate purchase events, refunds not being sent, a time zone mismatch, and different treatment of tax and shipping. Measure the gap monthly and worry when it changes, not when it exists.

Four cover most questions: purchase, add to cart, item view and checkout start. Those give you conversion rate, add to cart rate and where the loss sits between cart and payment. Add refunds if returns matter, and add the list and payment steps only when you have a specific question.

It is worth it when the data drives significant spend and you have someone to maintain it. It improves reliability because events come from your server rather than the browser. It does not remove the need for consent, and it adds cost and complexity that a smaller store rarely recovers.

Longer than the default in most tools, since seasonal businesses need to compare against the same period last year. Set retention to the longest option available, and export anything you need beyond that into your own storage before the window closes.

Yes, and for orders and revenue they should be your source of truth, because they match the money. Use web analytics for behaviour on the site, which your store admin cannot see, and keep the two jobs separate rather than expecting either tool to do both.

Compare them on one consistent basis in your analytics, use platform reports only to manage that platform, and keep a blended view of total spend against total revenue. When a real decision depends on whether a channel adds orders, run a holdout rather than reading another report.

Go further

Your plan is free.

A person reads it. You keep the plan. No logins, no call first.

Store, name, email and phone. A person replies from a real inbox. Privacy

Get your free growth plan