A lot of ecommerce stores that use GA4 fall into one of two camps. The first opens the platform every week, scrolls through a dozen reports, and ends up no clearer on what's actually happening. The second checks total revenue, closes the tab, and considers it done. Neither approach shows you where shoppers are dropping off, which products are moving, or why last month looked the way it did.
GA4 gives you more measurement depth than Universal Analytics ever did. The problem is that most of that depth sits behind default reports designed for general web analytics rather than for retail. Getting something useful out of it means knowing which handful of things actually matter, and dropping the habit of watching the ones that don't.
What GA4 ecommerce events are doing
GA4's ecommerce tracking is built on six core events: view_item, add_to_cart, begin_checkout, add_shipping_info, add_payment_info, and purchase. These are the events that power the built-in Monetisation reports and make the purchase journey visible. Without them firing correctly, the funnel data is incomplete regardless of how much other tracking you have in place.
Each of these events needs to include a populated items array. That's the structural element that makes product-level reporting possible. Each item in the array carries item_id, item_name, price, and quantity as required fields, with item_brand, item_category, and item_variant optional but worth including. If the items array is missing or empty when an event fires, the event gets logged but the product reports come back blank. That's the most common reason teams see events firing in DebugView but nothing showing in product-level reports: the event worked, the items array didn't.
Also, GA4 deduplicates purchases sharing the same transaction_id within a 24-hour window. This prevents a shopper reloading the order confirmation page from triggering a second purchase event. The deduplication is automatic, but only if transaction_id is populated and consistent. If it isn't, you'll see inflated revenue figures that don't reconcile with your actual store numbers.
GA4 ecommerce metrics worth checking weekly
Sessions are the base unit most other GA4 metrics are built from. A session begins with session_start and times out after 30 minutes of inactivity. Revenue per session, engagement rate, and most of your funnel data all reference sessions as the denominator, so it's worth understanding what you're measuring before drawing conclusions from anything built on top of it.
New users are counted from the first_visit event: anyone without an existing identifier on the property. One thing that might catch teams out is a user appearing as both “new” and a returning user in the same reporting window, depending on when their first and most recent visits fall relative to the date range selected. That's why new users and returning users won't always add up to total users. This doesn’t mean that the tracking is broken, it’s just how the metric is defined. Read them alongside each other to understand the split between acquisition traffic and repeat visits, not as numbers that should sum cleanly.
Engaged sessions and engagement rate tell you more than a session count alone. An engaged session is one that lasts at least 10 seconds, includes a key event, or includes two or more pageviews. Engagement rate is the share of all sessions that meet that bar. This replaced bounce rate as GA4's primary engagement signal, and the two are not measuring the same thing.
Regarding revenue, GA4's revenue figure is broader than purchase revenue specifically, and neither should be treated as equivalent to what's in your payment processor. Ad blockers, privacy restrictions, and consent gaps mean GA4 revenue commonly runs below actual store revenue. If your payment processor shows £40,000 for a given period and GA4 shows £33,500, that isn't a tracking fault. That's the platform working as expected within the consent landscape your store operates in. Use GA4 revenue as a directional signal and a channel comparison tool. Use your payment processor or Shopify as the source of truth for actual figures.

Why GA4 and Shopify revenue don't match
The reasons go beyond ad blockers, though those are part of it. Shopify and GA4 are built for different purposes and record transactions in fundamentally different ways.
Shopify writes every completed order directly to its own database at the moment of purchase. GA4 relies on a JavaScript event firing in the customer's browser and that data successfully reaching Google's servers. If a shopper's browser blocks the tracking script, their connection drops, or they close the tab before the confirmation page fully loads, Shopify records the sale and GA4 doesn't. That's the structural reason the two figures will never perfectly align.
Session counting adds to the difference. Shopify counts every page load, including refreshes, and doesn't filter bot traffic the same way GA4 does. A session that crosses midnight UTC counts as one session in GA4 and two in Shopify, since Shopify splits at the day boundary. Neither platform is wrong. They're designed to answer different questions.
Revenue figures can also diverge based on how tax and shipping are handled. Shopify's total sales figure includes both by default. GA4 revenue excludes them unless the implementation is specifically configured otherwise. If you're comparing the two without accounting for that, you're not comparing the same thing.
A gap of 5 to 15% between GA4 and Shopify revenue is standard for most ecommerce stores and largely explained by the browser-based nature of GA4's tracking, ad blockers, and consent restrictions. A gap consistently above 20% is worth investigating. Common causes at that level are a misconfigured payment provider referral exclusion, a broken tracking script in the checkout flow, or a consent management setup blocking more than it needs to. Those are fixable. A 10% gap on a well-configured store is not.
What to stop tracking in GA4 for ecommerce
Bounce rate is where many teams carrying Universal Analytics habits come unstuck. GA4 defines it as the inverse of engagement rate: the share of sessions that were not engaged. That's a fundamentally different definition from Universal Analytics, where any session with a single pageview counted as a bounce regardless of time on site or actions taken. Placing a GA4 bounce rate figure next to a historical Universal Analytics bounce rate and treating them as a continuous trend is a common mistake. They are not the same number.
GA4 revenue as a finance figure belongs in the same category. If the number in GA4 doesn't match what actually reached the bank account, that doesn't necessarily mean the tracking is wrong. It means GA4 revenue shouldn't be treated as an accounting figure in the first place.
Reading the GA4 ecommerce funnel properly
The standard sequence runs: view_item, add_to_cart, begin_checkout, purchase. You can follow this in Funnel Exploration or through the built-in Purchase journey report in GA4's Monetisation section. Most stores see the sharpest drop-off between add_to_cart and begin_checkout, though this varies by category, price point, and the amount of friction sitting at the cart stage.
The Checkout journey report narrows the view to the post-cart stages: begin_checkout through to purchase. To see it properly, add_shipping_info and add_payment_info both need to be implemented. Without those two events, the checkout stages collapse and you lose the ability to tell whether shoppers are leaving at the shipping step or the payment step. Knowing which of those two stages is losing the most traffic is worth the implementation effort to find out.
GA4 ecommerce reports that answer real questions
Four reports cover most weekly questions without needing to build a custom exploration.
Monetisation overview gives you the headline ecommerce numbers: revenue, purchase events, average order value, and a product breakdown. Start here before digging anywhere else.
Purchase journey and Checkout journey cover where shoppers leave before completing a transaction. Open both together and you get a clear picture of the drop-off points from browse through to purchase.
Traffic acquisition tells you which channels are driving sessions and which are contributing to actual purchases. If a channel is sending traffic but not converting, this is where the pattern shows up.
Beyond the standard reports, Funnel Exploration is useful for comparing how new and returning users move through the purchase journey. Set up a funnel using the core ecommerce events and break it down by user type to see whether the drop-off points are the same for both groups, or whether one segment is losing disproportionately at a particular stage. Cohort Exploration tracks groups of users acquired in a given period and shows how their behaviour develops over time. For any store where retention is a meaningful part of the growth model, it's the report that makes the connection between acquisition cohort and long-term value visible.
Using the item filter to see what's really selling
This capability gets overlooked because it wasn't always available in GA4's standard reports. Item-level dimensions, including item_name, item_id, and item_category, can now be used as filters and secondary dimensions directly in standard reports rather than being restricted to Explorations. That means filtering the Monetisation overview or any standard ecommerce report down to a specific product or category without building a separate exploration.
In practice: rather than checking product performance across an entire catalogue every week, you can filter to a category, check how it's converting, and compare it against the site average. For stores with a large product range, this is the difference between useful reporting and a spreadsheet of numbers with no clear next step attached.
What to do about it
Here's a practical version of this that doesn't require a full analytics overhaul.
- Settle on a short list of metrics to check each week. Sessions, the new and returning user split, engagement rate, and revenue trend covers the essential picture. Add Checkout journey if it's set up. That's your weekly view.
- If the Checkout journey report is showing blank stages, check that add_shipping_info and add_payment_info are firing with a populated items array. That's usually the fix.
- Reconcile GA4 revenue against your payment processor once. Note the gap, record it, and use it as a reference point going forward.
- Use item-scoped filters to check category-level performance monthly, rather than reviewing every product individually.
-
If you want to understand how new and returning users move differently through the purchase journey, set up a Funnel Exploration with your core ecommerce events and apply user type as a breakdown.
The straightforward version of GA4 ecommerce reporting is a short list of metrics you check every week and a longer list of things you've decided not to watch.
If your GA4 setup is generating data without generating decisions, our growth consultancy is a good place to start.