Skip to content
— Attribution & measurement10 min read

Why Meta, Google, GA4, and Shopify report different revenue.

Four systems, four answers, and none of them is broken. The disagreement is the most useful number in your reporting, if you stop trying to make it go away.

SN
Founder, ADSRUNNER

Open four tabs on the first of the month and you will get four answers to the same question. Meta reports one revenue figure. Google Ads reports another. GA4 reports a third that matches neither. Shopify reports a fourth, and it is almost always smaller than the ad platforms added together.

The instinct is to ask which one is right. It is the wrong question, and it leads somewhere expensive, usually to whichever number makes the current plan look best. A better question is what each system is actually counting. Once you know that, the gap stops being an embarrassment in the report and becomes one of the most useful signals you have.

Four ledgers, four jobs

It helps to think of them as four ledgers kept by four accountants who do not talk to each other. Each is honest by its own rules. Each has a different job.

LedgerWhat it countsIts bias
Meta AdsPurchases after a Meta click or view, inside its attribution settingCredits itself for anything it touched
Google AdsConversions after a Google interaction, inside its conversion window, credited by its modelCredits itself for anything it touched
GA4Sessions and conversions across all channels, credited by its own modelOnly sees what consent and browsers allow
ShopifyOrders, refunds, and net revenue that actually settledKnows what was earned, not what caused it

The platforms are advocates. GA4 is a witness with partial vision. The store is the bank statement. None of them is the whole truth, but only one of them is money.

The seven reasons they disagree

1. Every platform claims the same sale

A customer sees a Meta ad on Monday, searches your brand on Google on Wednesday, and buys. Meta counts the purchase because it happened inside its window after an ad exposure. Google counts it because the last click was a Google ad. The store counts one order. Add the platform reports together and you have two orders for one sale. This single mechanism explains most of the gap in most accounts, and nobody made a mistake.

2. Windows and views

Each platform decides how long after an interaction it will still take credit, and whether seeing an ad counts as well as clicking it. Meta commonly counts purchases within seven days of a click and one day of a view. Google’s conversion windows are configurable and can run far longer. A view-through purchase can be real influence or pure coincidence, and the platform cannot tell you which.

3. Different models of credit

Google Ads and GA4 both default to data-driven attribution, which spreads credit across the touches each one can observe. But they observe different touches. GA4 sees your email clicks and organic visits. Google Ads sees its own ads. Two data-driven models, fed different evidence, will assign different credit to the same Google campaign.

4. When the sale is dated

Ad platforms usually report a conversion against the date of the click or impression. The store reports it against the date of the order. A click on the thirtieth that converts on the second lands in different months in different tabs. Around month end and during promotions, this alone can move a monthly comparison noticeably.

5. What counts as revenue

The value a platform receives is whatever your tag sends at checkout, often including tax and shipping, and always before anything is refunded. The store reports net revenue after discounts, refunds, and returns. In categories with high return rates, the platforms are reporting sales that the business later gave back.

6. Consent, browsers, and devices

Not every visitor can be tracked. Consent choices, browser protections, and ad blockers remove a share of journeys from analytics and pixels. Platforms fill some of the gap with modeled conversions, estimates of what they could not see. GA4 settles its own processing over a day or two. Someone who researches on a phone and buys on a laptop may appear as two strangers unless a hashed email or phone links them.

7. Plain breakage

And sometimes the tag is simply broken. A duplicate purchase event can inflate one platform. A missing one can hollow out another. Server-side events without deduplication can count a sale twice. This is the only reason on the list that is a genuine error, and it is the one the other six hide best.

A worked example

Here is a month, as arithmetic, not as any client’s result.

SourceRevenue reported
Meta Ads (7-day click, 1-day view)$168,000
Google Ads (data-driven)$142,000
Sum of platform claims$310,000
GA4, paid channels$176,000
Shopify gross sales$252,000
Shopify net revenue after refunds$231,000

The platforms together claim $310,000. The store kept $231,000, and some of that came from organic search, email, and people who would have bought with no ads at all. The platform claims exceed the entire business by about a third. That does not mean the ads failed. It means both platforms are counting the shared middle of the journey.

If you set next month’s budget from the platform reports, you will fund whichever platform has the more generous rules. If you set it from the store alone, you will know the business grew but not why. You need both, read together.

Walking the example from $310,000 to $231,000

It helps to walk the gap in order, because each step belongs to a different reason from the list above and each one has a different owner.

  1. Start with the $310,000 the platforms claim between them. Some orders appear in both reports, because the buyer clicked a Meta ad on Monday and a Google ad on Thursday. Each platform counts the whole order. No setting removes this, because neither platform can see the other.
  2. Move to GA4’s $176,000 for paid channels. GA4 gives each order to one path through its own model and does not credit views, so the shared orders stop being counted twice and view-through purchases move to whichever channel carried the click. The distance between $310,000 and $176,000 is mostly overlap and view-through, not error.
  3. Step up to Shopify’s $252,000 of gross sales. The store is larger than GA4’s paid figure because it includes every channel: organic search, email, direct, marketplaces, and the people GA4 never observed because they declined analytics cookies.
  4. Finish at $231,000 of net revenue. The $21,000 between gross and net is refunds and returns. The ad platforms recorded those orders on the day they happened and never took them back.

Nothing in that walk is a bug. Every step is a definition doing its job. That is exactly why the walk is worth doing once for your own business: when a future month does not follow the same path, you will know which step changed.

How to read the four together

  1. Anchor on the store. Net revenue is what was earned. MER, total ad spend over net revenue, is the health check that cannot double count.
  2. Track the ratio, not the gap. Divide the sum of platform claims by store revenue each week. In a healthy account that ratio is fairly stable. A step change in it is almost always tracking, not demand.
  3. Compare each channel with itself across ledgers. If Meta claims far more than GA4 credits to paid social, the difference is mostly view-through and window. That is not wrong, but it is the most optimistic reading of Meta’s contribution.
  4. Run several attribution models on data you own. Where last click, first click, and data-driven agree on a channel, the credit is earned. Where they disagree sharply, the allocation is a judgment call.
  5. Test where the money is. For the biggest budget decisions, a holdout or geo test answers what no attribution model can: what would have happened without the spend.

Never average the four numbers. An average of an advocate, a witness, and a bank statement is not a better estimate. It is a number nobody can audit, and it hides the one signal that matters: when the gap between them suddenly changes shape.

Write the definitions down first

Most arguments about revenue are arguments about settings nobody wrote down. Before you compare anything, record how each ledger is configured, and keep the note somewhere the whole team can see it.

  • Meta: the attribution setting on each campaign, such as 7-day click and 1-day view, and whether the purchase event is sent from the browser, the server, or both with deduplication.
  • Google Ads: which conversion actions count as primary, whether they count every conversion or one per click, the attribution model, and the conversion window.
  • GA4: the reporting attribution model, the lookback window, and which events are marked as key events.
  • Shopify: whether you report gross sales or net sales, and how taxes, shipping, and discounts are treated.
  • All four: the reporting timezone and the currency. A store in one timezone and an ad account in another will disagree about which day a late-evening order belongs to.

A fifteen-minute weekly routine

You do not need a data team to read the four ledgers well. You need the same small routine, done every week, so the numbers become familiar enough that a change stands out.

  1. Pull last week’s spend and claimed revenue from each ad platform, GA4 revenue by channel, and Shopify net revenue.
  2. Compute MER on net revenue and write it next to the prior four weeks.
  3. Compute the ratio of summed platform claims to Shopify net revenue, and compare it with the same four weeks.
  4. Note anything that changed in the business that week: a promotion, a price change, a new product, a site release, a tracking change.
  5. If the ratio moved sharply and nothing in the business explains it, check tracking before you touch a budget.

Common mistakes

  • Adding platform revenue together and presenting it as total revenue. The sum describes overlapping claims, not a business.
  • Switching an attribution setting mid-month and comparing the month with the last one as if nothing changed.
  • Judging a campaign on gross sales in a category with heavy returns, such as apparel, before the returns have come in.
  • Treating GA4 as the neutral referee. It is a better witness than any single platform, but it is still a sample shaped by consent and its own model.
  • Concluding the ads stopped working because a platform report fell, when the store kept taking orders at the usual rate.

What a sudden change in the gap tells you

Most of the time, the relationship between the ledgers drifts slowly. A new creative approach shifts Meta’s view-through share. A brand campaign grows Google’s last-click claim. Those are movements you can reason about.

A sudden break is different. If Meta’s claimed purchases halve overnight while GA4 sessions and Shopify orders carry on as normal, the business did not change. The pixel did. If Shopify orders fall while page views hold steady, check the checkout before you check the campaigns. Reading the ledgers side by side every day is how you catch those breaks in a day rather than at month end.

This is the core of what we mean by whole-business measurement. Not one true number, because there is no such thing. Four honest ledgers, one set of definitions, the store as the anchor, and the disagreement treated as the finding. It is also the question most agency reporting quietly avoids, which is why it is on the list of fourteen questions your agency should be able to answer.

— Common questions
Why is Meta revenue higher than Shopify?

Meta credits itself for purchases made within its attribution setting after someone clicked or viewed an ad, including purchases another channel also claims and purchases that were later refunded. Shopify counts each order once, after refunds. Meta revenue exceeding what the store booked from Meta-driven customers is normal. It becomes a concern when the ratio between the two changes suddenly.

Why does GA4 show less revenue than Google Ads?

Google Ads credits its own ads using its conversion windows and model, and it can include modeled conversions. GA4 distributes credit across every channel it observes, including organic, email, and direct, so Google Ads receives a smaller share there. GA4 also loses some journeys to consent choices and settles its processing over a day or two.

Which revenue number should I use to judge my ads?

Use the store for whole-business health, through MER or blended ROAS computed on net revenue. Use platform numbers only to compare campaigns within the same platform. Use attribution models on your own tracking, and incrementality tests where the stakes are high, to decide how budget should move between platforms.

How big should the gap between ad platforms and Shopify be?

There is no universal figure, because it depends on channel mix, attribution settings, return rates, and how much revenue comes from customers who would buy anyway. What matters is your own baseline. Track the ratio of platform claims to store revenue every week, and investigate when it moves sharply.

Should I switch Meta to click-only attribution to match Shopify?

Only if you understand what you lose. Click-only settings reduce the overlap with other platforms, but they also stop crediting purchases where the ad genuinely helped without a click. A better approach is to keep the setting stable, record it, and read Meta alongside the store rather than trying to make the two numbers match.

Does server-side tracking make the numbers agree?

It makes each ledger more complete, because fewer purchases are lost to browsers and ad blockers. It does not remove the reasons the ledgers differ, such as overlapping claims, windows, and refunds. It can also double count if browser and server events are not deduplicated, so check deduplication whenever you add it.

Written by , founder, adsrunner. If this resonated and you want to apply it to your own account, you can book a strategy call or run a free audit.

How we research, source figures, and handle corrections: editorial policy.

— What we learn

Got value from this one?

The next one lands in your inbox. Account-level analysis written the way we brief our own operators. Unsubscribe in one click.

— More to read

Continue with these.

— Attribution

Six attribution models, one set of orders: how to read the disagreement.

Every attribution model is a rule for splitting credit among the touches you observed. Run several on the same orders and the disagreement between them tells you more than any one of them can: which channels open journeys, which close them, and which credit is solid.

Read the post
— Agency craft

Fourteen questions your agency should be able to answer.

Most agency reporting answers the question the platform is built to answer: did the ads get credit? These fourteen questions ask what the business needs to know instead, grouped into money, truth, and growth, with what a real answer requires and what an evasive one sounds like.

Read the post
— Measurement

MER vs ROAS: the argument is a decoy.

Every version of this article tells you to stop trusting ROAS and start trusting MER. That advice is not wrong so much as beside the point: MER and blended ROAS are the same economics inverted, and neither is safer than the revenue figure you feed it. Here is the ladder that ranks your revenue sources by trustworthiness, the arithmetic that turns one week of data into three contradictory decisions, and how to set the floor from your own P&L.

Read the post
— Attribution

Attribution after iOS 14: what actually works.

Pixel attribution is not coming back, and the difficulty has moved on from missing data to something subtler: platforms now fill the gaps with modeled estimates displayed alongside observed conversions. Platform claim, observed correlation, modeled contribution, measured incrementality. Four numbers, four meanings, and most budget mistakes come from confusing them. Here is the stack that separates them.

Read the post
— Attribution

Server-side tracking and the Conversions API: a practical 2026 setup.

Server-side tracking is no longer optional. The browser pixel misses too much, and the gap is widening every year. This is a practical look at how Conversions API and Enhanced Conversions work, what a trustworthy setup looks like, and where implementations go wrong.

Read the post

Want this kind of thinking on your account?

Book a strategy call. We'll review your account and show you specifically what we'd do differently.