GA4 ecommerce reporting for agencies

GA4 Ecommerce Reporting for Agencies: What to Track and How to Present It

A practical guide for marketing agencies setting up and reporting GA4 ecommerce tracking for clients — from purchase events to abandoned cart analysis.

You're three days into onboarding a new ecommerce client. They want to know which traffic sources are driving revenue, which products are underperforming, and whether last month's email campaign actually moved the needle on sales. You open GA4 and immediately hit the first problem: enhanced ecommerce isn't configured, half the purchase events are misfiring, and the default reports don't show what anyone actually wants to see.

Ecommerce GA4 reporting is one of the most technically demanding things agencies do for clients. Here's a practical breakdown of what to track, how to set it up, and how to present it in a way clients understand.

The Foundation: Getting Purchase Events Right

GA4's ecommerce tracking depends on a set of standard events — purchase, add_to_cart, begin_checkout, view_item, and a few others. These need to be implemented consistently with the right parameters or your reporting falls apart downstream.

The most important parameters for a purchase event:

  • transaction_id — unique order ID, critical for deduplication
  • value — revenue, in the correct currency
  • currency — always include this explicitly
  • items — array of product objects with item_id, item_name, price, quantity

If transaction_id isn't unique across hits, you'll see duplicate revenue in your reports — one of the most common errors agencies encounter and one that takes real time to diagnose. Always validate this on launch and again after any site updates.

For Shopify clients, the native GA4 integration handles most of this. For WooCommerce or custom builds, you'll typically implement via Google Tag Manager using data layer pushes.

The Funnel: From Product View to Purchase

Once purchase events are firing, set up a funnel exploration in GA4 covering:

  1. view_item — product page view
  2. add_to_cart — cart add
  3. begin_checkout — checkout start
  4. purchase — completed order

The drop-off between each step is where the real insights live. A 60% drop from checkout start to purchase usually points to a UX issue — too many form fields, an unexpected shipping cost, a payment method gap. That's a specific recommendation you can bring to your client.

Segment the funnel by traffic source. Paid social audiences often abandon at checkout at higher rates than organic search traffic. If you're running both channels, that difference has real implications for how you evaluate campaign ROI.

Abandoned Cart: What You Can (and Can't) Track in GA4

GA4 doesn't have a native "abandoned cart" metric. What you can measure is the gap between add_to_cart events and purchase events for the same session or user. It's an approximation, not a precise count.

For a more accurate abandoned cart figure, most ecommerce platforms store this data at the server level — Shopify and WooCommerce both have it. Pull that number directly from the platform and note it separately in your reporting. Present the GA4 funnel data alongside platform-native cart abandonment figures and be clear about the source of each.

Avoid claiming GA4 gives you a precise abandoned cart rate. It doesn't, and clients who later check their platform dashboard will notice the discrepancy.

Revenue Attribution: Which Channels Are Actually Driving Sales?

GA4 defaults to last-click attribution, which means the last traffic source before a purchase gets all the credit. For ecommerce clients running multi-channel campaigns — paid search, email, organic, social — this can seriously distort the picture.

Be upfront with clients about this. A customer who clicked a Facebook ad three times, visited organically twice, and then converted on a Google Shopping click will show as a Google Shopping conversion in last-click attribution. Your organic and paid social work is invisible.

What to do in practice:

  • Use GA4's Advertising section to access the data-driven attribution model when there's enough conversion volume (usually 300+ conversions per month per channel)
  • For clients below that threshold, add a note to your reports explaining the limitation
  • Use platform-native attribution as a cross-check (Meta Ads attribution window vs. GA4 attribution window discrepancies are worth explaining to clients explicitly)

Product Performance Reporting

GA4's ecommerce reports include item-level revenue data when your items array is implemented correctly. The most useful reports for clients:

  • Top products by revenue — straightforward, usually their first question
  • Items added to cart vs. items purchased — surfaces products with high interest but low conversion (a pricing or page quality issue)
  • Products by traffic source — which channels are driving sales of which products (useful for DTC brands with a diverse catalog)

In your client report, surface the two or three product-level insights that are most actionable. A table of 50 products with no context is noise. "Your top-selling product accounts for 40% of revenue but has a 15% lower add-to-cart rate from paid traffic than from organic — worth checking the paid landing page" is useful.

What to Include in Your Monthly Ecommerce Report

Keep it simple. Clients want to know:

  1. Revenue and transactions — this month vs. last month, and vs. the same period last year
  2. Conversion rate — site-wide and by channel
  3. Top traffic sources by revenue — not by sessions
  4. Top-performing products — revenue and units
  5. Funnel drop-off — one key insight from the checkout funnel

Avoid drowning clients in raw GA4 tables. The native interface is built for analysts, not CMOs. A clean, purpose-built dashboard that shows these five things clearly is worth more than a screenshot dump from GA4 Explore.

Frequently Asked Questions

How do I know if purchase events are firing correctly? Use GA4's DebugView in real-time while testing a transaction in your browser with GTM preview mode active. Check that the purchase event fires exactly once, that transaction_id is unique, and that value and items are populated correctly. Don't rely on seeing revenue show up in standard reports — that delay makes debugging slow.

Why does GA4 revenue not match what the Shopify admin shows? Several factors cause this: GA4 excludes returns and refunds by default unless you fire refund events; GA4 uses session start time for attribution while Shopify uses order creation time; and browsers that block analytics tags don't contribute to GA4 data. A 5-10% discrepancy is normal. Document this for clients upfront so they aren't surprised.

Should I use Google Ads conversion tracking or GA4 for ecommerce conversions? Both. GA4 for website reporting and understanding user behavior. Google Ads conversion tracking (imported from GA4 or set up natively) for bid optimization. They serve different purposes, and using GA4 purchase events as your only source of truth for Ads bidding can lead to under-reporting.

Can I track subscription revenue in GA4? Yes, but it requires custom implementation. Each subscription renewal needs to fire a purchase event server-side. Client-side GA4 tracking alone won't capture renewals that happen without a browser session. This is a common gap for SaaS-ecommerce hybrid businesses.


Ecommerce reporting in GA4 is one of the more technically demanding things agencies do — but once the tracking is solid, the client conversations get much more concrete. If you're looking for a faster way to present GA4 ecommerce data to clients without rebuilding reports every month, Helpful Analytics offers pre-built agency dashboards that connect directly to GA4. Start your free trial and get client-ready ecommerce reports set up in under 30 minutes.

Stop wrestling with GA4

Helpful Analytics gives your agency a clean, simple view of all your client analytics — no GA4 headaches, no hours wasted on reports.

Try Helpful Analytics free →