Guide

Why GA4 shows less revenue than your store

Google Analytics 4 (GA4) often shows fewer sales than your store's own orders. Your orders are the true count. GA4 misses sales for four common reasons, and how big the gap is depends on your shoppers.

Last updated:

1. Cookie banners and ad blockers

GA4 runs in the shopper's browser, and browsers often block tracking.

  • Cookie banners: when a shopper says no to analytics, or ignores the banner, GA4 sends less or nothing. Sales in those visits don't reach your reports.
  • Ad blockers and privacy browsers: some shoppers block Google Analytics completely, so GA4 never sees their visit.
  • Browser limits on cookies: some browsers clear cookies sooner, which breaks the link between a visit and a later sale.

2. Scripts that never finish

Even when a shopper allows tracking, the data can be lost before it is sent.

  • On a slow connection, the shopper may leave before the GA4 tag loads.
  • An error in another script on the page can stop GA4's events.
  • Checkout redirects can send the purchase to a page where the tag doesn't run.

3. Visits with no source

When a shopper arrives with no sign of where they came from, GA4 files the visit under "Direct". This changes which channel gets the sale, not how many sales GA4 counts. Common causes:

  • Links shared in messaging apps, DMs and group chats.
  • Clicks from email apps and PDFs.
  • Links in answers from AI assistants such as ChatGPT.
  • Private windows that hide where the shopper came from.

The sale is real, but the source is lost. Channels that work can then look weaker than they are.

Estimate your Direct traffic gap

4. GA4's estimates

To fill some gaps, GA4 estimates what it could not see. This is called modelling. It can help, but it is a guess on top of missing data. It does not bring back the lost sales.

Estimate your gap

The loss rate below is an example, not a measure of your store. For your real number, compare GA4's revenue with your store's orders for the same month.

Revenue GA4 may miss$10,000

What you can do

Count sales from your store, not the browser. Your store's orders are the true count. On Shopify, Zyro reads each paid order from Shopify's own server, so a blocked script never loses a sale.

Send your sales to GA4 from a server. Zyro can send your sales and pop-up sign-ups to GA4 from its own server, every 10 minutes, for shoppers who allowed it. You connect GA4 on Zyro's Connections page.

Check the total. Zyro's Revenue by channel checks its total against your real orders. Sales Zyro did not see a visit for sit in a "Not tracked" row, not guessed. Zyro's visit tracking runs in the browser too, so blockers can hide some visits from it.

Keep reading

Start from your real orders

Zyro counts your sales from your store's orders, then shows which ads and emails brought them.

Free plan. No card. Billed through Shopify. Uninstall and billing stops.