:root { --font-from: 18; --font-to: 18; --vw-from: calc(1920 / 100); --vw-to: calc(2400 / 100); --coefficient: calc((var(--font-to) - var(--font-from)) / (var(--vw-to) - var(--vw-from))); --base: calc((var(--font-from) - var(--vw-from) * var(--coefficient)) / 16); } html { font-size: calc(var(--base) * 1rem + var(--coefficient) * 1vw); } @media screen and (max-width: 1920px) { :root { --font-from: 16; --font-to: 18; --vw-from: calc(1440 / 100); --vw-to: calc(1920 / 100); } } @media screen and (max-width: 1440px) { :root { --font-from: 15; --font-to: 16; --vw-from: calc(1279 / 100); --vw-to: calc(1440 / 100); } } @media screen and (max-width: 1279px) { :root { --font-from: 14; --font-to: 16; --vw-from: calc(992 / 100); --vw-to: calc(1279 / 100); } } @media screen and (max-width: 992px) { :root { --font-from: 13; --font-to: 16; --vw-from: calc(479 / 100); --vw-to: calc(992 / 100); } } /* @media screen and (max-width: 479px) { :root { --font-from: 12; --font-to: 16; --vw-from: calc(1 / 100); --vw-to: calc(479 / 100); } }

Why Shopify Revenue Doesn’t Match GA4 (and How To Fix It)

If you’ve ever compared Shopify revenue with GA4 and felt something was seriously off, you’re not alone. This is a common problem, especially for ecommerce teams relying on GA4 for weekly performance reporting while finance trusts Shopify as the source of truth.

In one real-world case, the gap between Shopify and GA4 revenue was consistently 20–30%. Some difference is expected, but a variance that high usually signals tracking blind spots rather than bad math.

Let’s break down what causes this mismatch and how to diagnose it properly

Step 1: Compare Daily Data, Not Weekly Totals

Weekly aggregates hide patterns. The first move is to compare day-by-day revenue for the same date range in both platforms.

Here’s an example from a single week:

The key insight here isn't the average gap, it’s which day shows the largest discrepancy. In this case, Day 3 was underreported by GA4 by nearly 30%.

That’s where the investigation should start.

Step 2: Match Order IDs Between Shopify and GA4

Next, pull Order IDs from Shopify and Transaction IDs from GA4

Compare the two lists. Any Shopify order missing from GA4 is a tracking failure, not a reporting delay.

Step 3: Identify Where Missing Orders Come From

For each missing order:

  1. Check the order source inside Shopify
  2. Confirm whether it came from:
    • The online store
    • A third-party platform
    • A custom or published Shopify app
    • Manual creation via the Shopify admin panel

Yes, orders created directly in the Shopify admin do count as revenue but will never appear in GA4 because no user session exists.

Step 4: Watch for Third-Party Sales Channels

A common culprit is third-party sellers or partner stores.

In these setups: - A customer purchases on an external website - The order is pushed into Shopify via an app - Shopify records revenue - GA4 receives no event, no session, no transaction

From GA4’s perspective, that purchase never happened.

If an app is responsible, audit whether it sends any ecommerce events to GA4. In most cases, it doesn’t.

Step 5: Factor in Cookie Consent Loss

Once external orders were accounted for, the remaining revenue gap dropped to around 12%. The final piece was cookie consent.

In this case: - ~13% of visitors declined tracking cookies - Those users completed purchases - GA4 legally did not track them

That explains the remaining difference. At this point, the GA4 setup was confirmed to be technically correct.

What This Really Means

GA4 underreporting usually comes down to two realities:

  • Purchases completed outside the tracked website journey
  • Purchases made by users who decline cookies

Neither is a bug. Both are limitations.

Final Recommendation

If your Shopify revenue is higher than GA4:

  • Treat Shopify as your financial source of truth
  • Use GA4 for behavioral trends and channel performance
  • Separately track third-party and offline-origin orders
  • Align stakeholders early so marketing and finance aren’t arguing over the same numbers

Once you understand why the data doesn’t match, the mismatch stops being a problem and starts being context.

Eager to leran more about performance marketing? please feel free to Contact Us

**Source material adapted from internal ecommerce analytics investigation.

January 15, 2026