BlogAnalytics

E-Commerce Analytics: Track Revenue, Not Just Traffic

M
Mousa H.
|10 min readOct 12, 2025
E-commerce analyst tracking product-level revenue and purchase funnel performance

Product-level ROAS, purchase funnels, and the custom reports that connect marketing spend to actual revenue.

Traffic Is Not the Business — Revenue Is

Most e-commerce analytics setups answer questions nobody is asking. Sessions are up, bounce rate is down, time on site looks healthy — and the owner still can’t say which channel paid for itself last month, which products carry the ad account, or whether the customers acquired in the spring sale ever came back. The dashboard is full and the decisions are empty.

The gap is almost never a missing tool. GA4, for all its interface sins, can answer every one of those questions out of the box — if the e-commerce events underneath it are implemented correctly, validated against the store’s own numbers, and read through reports built around revenue instead of traffic. That’s a smaller project than most store owners expect, and it changes what marketing conversations sound like. “Organic is up 30%” becomes “organic drove $42K last month at a blended cost of almost nothing, and paid search drove $61K at a 4.1 ROAS, two thirds of it from twelve SKUs.” One of those sentences leads to a budget decision. The other leads to a shrug.

This guide walks the full stack in order: the GA4 e-commerce event chain and where implementations actually break, how to validate revenue before trusting a single report, the purchase funnel, channel-level revenue attribution, product and merchandising reports, and the customer-lifetime layer that traffic-era analytics never touches. Nothing here requires an enterprise data warehouse. It requires the discipline to track money instead of motion.

The GA4 E-Commerce Event Chain: Get the Spine Right

GA4’s e-commerce model is a chain of standard events that mirror the shopping journey: view_item_list and select_item on category and search grids, view_item on the product page, add_to_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, and finally purchase. Every revenue report GA4 can build — funnels, product performance, channel revenue — is assembled from these events, so the implementation goal is simple to state: every link in the chain fires once, at the right moment, with a complete items array.

The items array is where most setups quietly fail. Each event in the chain should carry the products involved — item_id, item_name, price, quantity, and ideally item_category and item_brand — and the purchase event must additionally carry transaction_id, value, currency, and tax and shipping where relevant. Miss the items array on view_item and add_to_cart, and the purchase totals will still look fine while every product-level report upstream of checkout reads zero. That’s the classic half-broken setup: revenue is “tracked,” merchandising insight isn’t.

How the events get there depends on the platform. Shopify’s native Google & YouTube channel app emits the standard chain for standard storefronts; the moment you run a heavily customized theme, a headless build, or third-party checkout apps, assume gaps until proven otherwise. WooCommerce setups typically rely on a plugin or a Google Tag Manager dataLayer, and the failure mode there is partial coverage — purchase wired up carefully, the upper-funnel events forgotten. Whichever route you take, the standard event names and parameters are non-negotiable. GA4 only builds its e-commerce reports from its own vocabulary; a custom “addedToBasket” event might as well not exist.

Validate Revenue Against the Back Office Before You Trust Anything

An analytics number nobody has reconciled is a rumor. Before any report drives a decision, line GA4’s purchase revenue up against the store platform’s own order reports for the same date range and ask how far apart they are. They will never match exactly — GA4 loses orders to ad blockers, consent banners, browsers that suppress third-party scripts, and payment flows that never return the customer to a thank-you page. A single-digit percentage gap is typical and livable. A gap of a quarter or more means something structural is broken, and every channel and product report inherits that distortion.

The usual suspects are worth checking in order. Duplicate purchases first: if the purchase event fires on every page load of the confirmation page, customers who refresh or revisit it inflate revenue — GA4 deduplicates repeated transaction_ids within a session, but only if a stable transaction_id is actually being sent, and not across the cases where it isn’t. Then missing purchases: off-site payment redirects (some PayPal flows, financing providers, certain checkout apps) where the buyer never lands back on a tracked page. Then value mismatches: tax and shipping included in one system and excluded in the other, or multi-currency stores reporting a mix of currencies into one property. And refunds — GA4 has a refund event almost nobody implements, which means GA4 revenue is gross while the back office thinks in net.

Write down the expected gap once you’ve explained it, and recheck it monthly. The point isn’t perfection; it’s knowing the size and direction of the error, so when ROAS moves you can tell strategy from instrumentation.

The Purchase Funnel: Find Out Where Carts Actually Die

With the event chain in place, GA4’s funnel exploration turns it into the single most actionable report an online store owns: a step-by-step view from view_item through add_to_cart, begin_checkout, add_payment_info, and purchase, showing exactly what fraction of shoppers survive each step. Most stores have never seen their own funnel, and the first look usually relocates the problem. The team that spent a quarter rewriting product pages discovers product-to-cart conversion is fine and the collapse happens between begin_checkout and payment — which is a shipping-cost surprise, a forced account creation, or a payment-method gap, not a copywriting problem.

The absolute drop-off numbers matter less than the comparisons. Open the funnel mode where later steps don’t require strict ordering, then break the same funnel out by device and the picture sharpens fast: a checkout that converts respectably on desktop and dies on mobile is a UX defect with a dollar value attached. Break it out by channel and you’ll often find paid social traffic loading product pages and vanishing — an audience or creative problem upstream, not a site problem. Break it out by new versus returning users to separate “strangers don’t trust us yet” from “the checkout is broken for everyone.”

Treat the funnel as a quarterly diagnosis, not a daily scoreboard. Its job is to point the next sprint of conversion work at the step that’s actually leaking, and then to confirm — same funnel, same segments, before and after — that the fix moved the number it was supposed to move.

Channel Attribution: Whose Revenue Is It, Anyway?

The channel report is where analytics gets political, because every platform grades its own homework. Google Ads, Meta, and Klaviyo will each happily claim the same order, and the sum of platform-reported revenue routinely exceeds what the store actually banked. GA4’s job in the stack is to be the referee: one property, one attribution model, every channel measured by the same ruler.

GA4 attributes purchases using data-driven attribution by default, distributing credit across the touchpoints it observed rather than handing everything to the last click. You don’t need to relitigate attribution theory to use it well; you need three habits. First, fix your labeling: GA4’s default channel grouping is only as good as your UTMs, and untagged email campaigns, link-in-bio tools, and SMS sends silently pile into direct and referral. A consistent UTM convention is the cheapest attribution upgrade available. Second, read channels with the model comparison tool occasionally — comparing data-driven against last-click shows which channels are introducers (paid social, display) and which are closers (branded search, email), which is exactly the context budget conversations need. Third, accept the discrepancy with ad platforms instead of chasing it to zero. Meta sees view-through conversions GA4 can’t; GA4 sees the whole journey Meta can’t. Typical practice is to use the platform numbers for in-platform optimization and GA4 for cross-channel budget decisions, and never to mix the two in one spreadsheet.

For the business-level sanity check, keep one blended number alongside the attributed view: total marketing spend against total revenue, sometimes called MER. Attribution explains the mix; the blended ratio tells you whether the whole machine is profitable.

Product-Level Reports: Your Catalog Is Not One Thing

Store-level ROAS is an average, and averages hide the actual business. In nearly every catalog we audit, a small slice of SKUs generates the bulk of revenue, another slice quietly eats ad spend without converting, and the long tail does nothing measurable at all. You can’t see any of that from the channel report — you see it from the item dimension, which is exactly what a complete items array buys you.

Start with GA4’s e-commerce purchases report and the item-scoped metrics around it: items viewed, items added to cart, items purchased, and item revenue, by item name or ID. Two ratios do most of the diagnostic work. The view-to-cart rate per product flags listings where interest dies on the page — usually price, photography, or missing size and compatibility answers. The cart-to-purchase rate per product flags items that get abandoned downstream, where shipping cost relative to item price is the usual culprit. A product with strong traffic and a weak view-to-cart rate is a page problem; a product with a strong view-to-cart rate and weak traffic is a marketing opportunity wearing a disguise.

The merchandising payoff comes from joining this with spend. Pull item-level revenue alongside Shopping campaign spend by product (in Google Ads or a blended sheet) and product-level ROAS falls out — and with it, decisions: which products deserve their own campaigns and bigger feeds presence, which need a margin-aware bid cap, and which should be excluded from paid distribution entirely until their page converts. Promote your closers, fix or demote your leakers, and stop letting the average decide for you. This is also where item_category earns its keep: category-level rollups reveal whole product lines that over- or under-perform, which informs buying and inventory, not just ads.

LTV and Cohorts: The Numbers That Change What You Can Afford

Everything so far measures orders. The customer layer measures relationships, and it answers the question that actually caps your growth: what is a new customer worth over time, and therefore what can you afford to pay to acquire one? A store judging acquisition spend purely against first-order value will systematically underspend if customers come back — and over-spend if they don’t. Either error compounds monthly.

The practical starting point is cohort thinking: group customers by the month of their first purchase, then watch each cohort’s repeat behavior over the following months. GA4’s cohort exploration approximates this with user retention and lifetime value by acquisition cohort, and it’s good enough to expose the shape of the business — whether a cohort’s cumulative value meaningfully grows after month one, and how fast. For exact dollar figures, the store platform or a spreadsheet export of order history is the better source of truth, because it’s tied to real customers and net revenue rather than tracked sessions. Use GA4 to compare acquisition sources — do customers from paid social repeat at the same rate as customers from organic search? — and the back office to size the dollars.

What falls out is a payback rule you can run the business on: if a typical customer returns enough that their value at, say, twelve months is meaningfully above their first order, you can deliberately accept thin or negative margin on acquisition and let retention pay for it — provided email and SMS are actually doing the retention work. If cohorts go quiet after the first purchase, your real ceiling is first-order economics, and the growth lever is repeat rate, not more spend. Most stores have never made this choice consciously. The cohort table forces it.

The One-Page Weekly Report That Replaces the Dashboard Graveyard

The failure mode after a good analytics build isn’t bad data — it’s a sprawling dashboard nobody opens after week three. The fix is ruthless scope: one page, reviewed weekly at the same time, built entirely from numbers that lead to actions. In practice that page (a Looker Studio report on the GA4 and Ads connectors, or even a disciplined spreadsheet) needs about a dozen numbers.

Top row, the business: total revenue, orders, average order value, and blended MER — each against the prior period and the same period last year, because e-commerce without year-over-year context is just seasonality wearing a costume. Second row, the mix: revenue by channel from GA4, with spend and ROAS beside the paid lines. Third row, the catalog: the five top products by revenue and any product whose week-over-week movement is large enough to mean something — a stockout, a creative win, a price test landing. Last, one funnel number you’re actively working on, such as checkout completion rate, so the current optimization project stays visible until it’s done.

What’s deliberately absent matters as much: no sessions, no bounce rate, no engagement time on the front page. Those are diagnostic metrics — they earn a look when a revenue number moves and you need to know why, not a permanent seat at the table. The weekly ritual is the actual product here. Fifteen minutes, same questions every week: what moved, do we believe it (remember your known tracking gap), and what are we doing about it. A modest report read every week beats a beautiful one read never.

From Measurement Project to Operating Habit

Sequence matters, so here is the order that works: implement and verify the full event chain with complete items arrays; reconcile GA4 revenue against the back office and write down the expected gap; standardize UTMs so the channel report means something; build the one-page weekly report; then schedule the deeper looks — funnel exploration quarterly, product-level ROAS monthly when planning spend, cohorts quarterly when setting acquisition targets. The first two steps are a one-time build measured in days, not months; everything after is cadence.

Budget real attention for decay, because tracking rots silently. Theme updates and new checkout apps break dataLayers, an unlabeled campaign pollutes a month of channel data, a currency setting changes and revenue drifts. The monthly reconciliation against the back office is your smoke alarm — it catches almost everything within one cycle, which is why it’s the one habit on this list that should never be skipped.

The payoff is a different relationship with marketing spend. Channels get funded because they produce revenue at an acceptable cost, not because their platform dashboard says so. Products get promoted because their unit economics earn it. Acquisition targets come from cohort math instead of gut feel. Whether you run this in-house or with an agency — at SearchPod this measurement layer is the first thing we build for every e-commerce client, because nothing else we do can be judged without it — the standard is the same: every report on the page should be able to finish the sentence “…and therefore we will.” Traffic can’t finish that sentence. Revenue can.

Want help implementing this?

Get a free proposal for your analytics setup. We’ll show you exactly where the opportunities are.

Get Free Proposal

No upfront fees. No long contracts. If you’re not satisfied after the first 30 days, you don’t pay.

Get Free Proposal
Get Free ProposalCall