· 6 min read

Why Your Ad Numbers, GA4, and Shopify Never Agree (And What to Do About It)

You pull your numbers at the end of the month. GA4 says you had 43 purchase transactions. Shopify’s dashboard says 61. Meta Ads says it was responsible for 89 conversions. Google Ads claims another 34.

Thank you for reading this post, don't forget to subscribe!

None of them match. And you have no idea which one to believe.

So you make your decisions based on the one that feels the most optimistic — or you ignore the data entirely and go with your gut.

This is one of the most common and most damaging problems I find in online stores. Not because the discrepancy itself is the problem — some discrepancy is always normal — but because most store owners don’t know why the numbers differ, so they can’t decide which source to trust. And when you can’t trust your data, every decision you make is a guess.


Why the Numbers Never Match (And Which Ones Are “Right”)

The short answer: every platform counts conversions differently. On purpose.

Here’s what’s actually happening:

Your Ad Platforms (Meta, Google) Are Overcounting

Meta Ads and Google Ads use attribution models that credit them for a sale even when they weren’t the last thing a customer interacted with before buying. Meta’s default attribution window is 7-day click and 1-day view — meaning if someone saw your ad, didn’t click, but bought within 24 hours, Meta takes credit for that sale.

Google has similar logic. Both platforms also count view-through conversions by default — impressions that led to a purchase, even with no click involved.

This inflates ad platform numbers significantly. It’s not fraud — it’s just how their attribution is designed. But it means you should never trust a platform to objectively measure its own performance.

GA4 Is Undercounting

GA4 counts sessions and events, not orders. If a customer’s session times out mid-checkout (common on mobile), or if a browser extension blocks the GA4 pixel, or if the purchase event fires incorrectly — that transaction may not be counted.

GA4 also has a known issue with iOS privacy changes and cookie restrictions reducing the accuracy of its data. For stores with a high percentage of iPhone users, GA4 can miss 20–30% of real conversions.

Your Store Platform (Shopify, WooCommerce) Is the Most Accurate

Your platform records a sale when a payment is processed. It doesn’t rely on pixels, cookies, or attribution windows. It just counts money received.

This is your source of truth for revenue. Not perfect — it can include test orders, fraud, and refunds if you’re not filtering — but it’s the closest you’ll get to the real number.


The Three Scenarios That Cause the Biggest Problems

Scenario 1: You’re Optimizing Ad Spend Based on Ad Platform Data

If you’re scaling ad spend based on Meta’s reported ROAS, and Meta is overcounting by 40%, you’re spending more than you should. The campaigns you’re scaling might not be as profitable as they appear.

The fix: compare ad platform revenue to your store platform revenue. Calculate the ratio. Apply that ratio when evaluating ad performance. Never take ad platform ROAS at face value.

Scenario 2: Your GA4 Funnel Shows Drop-Off That Doesn’t Match Reality

If GA4 shows a 60% drop-off at checkout but your actual purchase rate is higher than that implies, your tracking is missing events — not your customers missing the purchase button.

This matters because if you try to fix a “checkout abandonment problem” that doesn’t actually exist, you’re wasting time and money on the wrong thing.

Scenario 3: You’re Running Both Meta and Google Ads and They Both Claim Credit for the Same Sale

This is called double-counting, and it’s extremely common. A customer clicks a Google Shopping ad, then sees a Meta retargeting ad, then buys. Both platforms claim 100% credit for that sale. Your actual revenue is counted once in Shopify. So your combined ad platform revenue claims might be 150–200% of actual revenue.

When you add these numbers up in a report, your “blended ROAS” calculation is completely wrong.


Not sure which numbers to trust?

Start with the free diagnostic tool — 10 questions, 3 minutes, a clear read on where your tracking is most likely broken.

Run the Free Diagnostic →

How to Create a Single Source of Truth

You can’t eliminate discrepancy between platforms — that’s not realistic. But you can create a clear framework for what you trust and why.

Step 1: Designate your source of truth by category

  • Revenue and order count: Your store platform (Shopify, WooCommerce, etc.) — always
  • Ad-specific performance (CTR, CPM, spend): The ad platform — it measures its own metrics correctly
  • ROAS: Calculate it yourself using store revenue ÷ ad spend — don’t use the platform’s reported ROAS
  • Funnel behavior (where people drop off): GA4 — with the caveat that numbers are directional, not exact
  • Email performance: Your email platform (Klaviyo, Omnisend, etc.)

Step 2: Verify your GA4 tracking is firing correctly

Use Google Tag Assistant or the GA4 DebugView to confirm that purchase events are firing once per transaction, with the correct order value and currency. This is almost always wrong in stores that haven’t had a proper tracking setup done.

Common issues:

  • Purchase event fires twice (causes inflated session count, wrong conversion rate)
  • Purchase event fires with $0 revenue (transaction recorded but revenue not captured)
  • Purchase event isn’t firing at all (GA4 shows zero e-commerce data)
  • Currency mismatch (store is in AUD, GA4 is set to USD)

Step 3: Set consistent attribution windows in your ad platforms

In Meta Ads, change the attribution setting to 7-day click, 1-day view for cleaner data. In Google Ads, consider using data-driven attribution if you have enough conversion volume, or last-click for simpler analysis.

Most importantly — use the same attribution window consistently. Don’t compare last week (when you used 7-day click) to this week (when you switched to 1-day click). The numbers will be incomparable.

Step 4: Build a simple weekly reporting template

You don’t need a complex dashboard. You need six numbers, tracked weekly in a simple spreadsheet:

  • Total orders (from your store platform)
  • Total revenue (from your store platform)
  • Total ad spend (sum across all platforms)
  • Calculated ROAS (revenue ÷ ad spend)
  • Conversion rate (orders ÷ sessions from GA4)
  • Average order value (revenue ÷ orders)

Six numbers. Track them every week. That’s it. Everything else is noise until you’ve got these stable and trustworthy.


When the Discrepancy Is a Sign of a Bigger Problem

Sometimes the numbers don’t just disagree because of attribution differences. Sometimes they disagree because something is genuinely broken.

Signs that your tracking has a real problem:

  • GA4 shows zero purchase events but Shopify shows normal revenue
  • GA4 shows 5x more sessions than your store admin reports
  • Your ad platform reports ROAS of 8x but you know your margins make that impossible
  • Your conversion rate changes dramatically from week to week without a corresponding change in traffic quality or marketing
  • Shopify and GA4 revenue are more than 30–40% apart

In these cases, the discrepancy isn’t just normal attribution variance — it’s a signal that something in your setup is broken. And until you fix it, you can’t trust any of the data you’re using to make decisions.


What a Tracking Sprint Looks Like

The Tracking & Analytics Sprint is a 14-day engagement focused on exactly this: building a trustworthy analytics foundation for your store.

Here’s what gets done:

  • Full audit of your current GA4 setup — events, conversions, data streams
  • Fix all misfiring or missing purchase events
  • Verify ad pixel implementation across all active platforms
  • Set up or clean up your e-commerce funnel reporting in GA4
  • Build a simple weekly reporting template calibrated to your store
  • Document your tracking setup so you know what you have and why

At the end, you have a clear single source of truth, a weekly reporting structure that actually makes sense, and confidence that the decisions you’re making are based on real data.

Stop making decisions on broken data.

The Tracking & Analytics Sprint gives you a clean, trustworthy analytics setup in 14 days.

Start with the Audit if you want a full diagnostic first. Tracking is included in the audit scope.

Book Your Audit → Ask a Question

The Bottom Line

Data discrepancy between platforms is normal. Some gap will always exist.

But flying blind because you can’t trust any of your numbers — that’s not normal, and it’s not something you have to accept.

Use your store platform as your revenue source of truth. Verify your GA4 tracking is actually working. Calculate your own ROAS instead of taking platforms’ word for it. And track six simple numbers every week.

That’s the foundation. Everything else — optimization, scaling, channel decisions — is built on top of it.

Build the foundation first.

Jenn Velez — Ecomm Decoded

I fix what’s broken in e-commerce operations. I work with DTC brands across Shopify, WooCommerce, Wix, and any platform. Based remotely. Available worldwide — in English and Spanish.

About Jenn →

Get ecommerce insights worth opening

Useful strategies, quick audits, and real fixes to help you grow without wasting time or budget.

Ready to fix what's broken?

Stop guessing and get a real diagnosis. Book a Growth Audit or jump straight into a Sprint.