Your GA4 and Meta Numbers Will Never Match. Stop Trying to Reconcile Them.

How many hours have you lost this quarter trying to work out why GA4 says one thing, Meta says another, your Shopify dashboard says a third, and your post-purchase survey says a fourth?
If the honest answer is "more than I'd like to admit", I want to take that whole job off your plate. Not by handing you a better tool. By telling you to stop doing it entirely.
Those numbers will never match. They're not supposed to. And the chase to reconcile them is costing you the one thing that actually matters: the speed to make a confident decision while it still counts.
Here's the take I'll defend all day. The goal of measurement was never to find the truth with a capital T. It's to agree on one number you all hold yourselves accountable to, and calibrate everything else against it. Pick that number, and the noise stops being a problem you have to solve and starts being noise you can ignore.
There is no true number, and that's fine
Let me borrow an old idea that finally made this click for me.
The pyramids were built using a unit called the royal cubit, defined as the length of the pharaoh's forearm plus the width of his hand. Was that the true length of anything in the universe? Of course not. If the pharaoh had been shorter, the cubit would have been shorter. But the pyramids still stand, because everyone on site calibrated their measuring stick against one master cubit. The architect and the stonemason used the same unit. The stones fit.
That's the whole lesson for ad measurement. It doesn't matter that Meta over-claims, or that GA4 under-counts, or that your attribution window is a bit generous. What matters is that everyone in your business is building off the same master stick. The architect and the carpenter just have to agree, or the house falls down.
So stop asking "which number is correct". None of them are correct in any absolute sense. Ask instead: "which one number are we all going to hold the business accountable to". That's a decision, not a discovery.
Pick MER, tie it to contribution margin
My answer, and the one we run with clients, is MER calibrated against contribution margin.
MER is your total revenue divided by your total ad spend across every platform. It doesn't care whether Meta or Google claimed the sale. It doesn't care about your attribution window. It's just the money in over the money out, blended, and it's almost impossible to fool because it sits above all the platform reporting.
But MER on its own is a vanity number if you don't anchor it to profit. So the chain we build runs top to bottom like this:
- At the top sits contribution margin, what's actually left after cost of goods, shipping, fees and the variable cost of getting an order out the door. This is the only number the business genuinely lives or dies on.
- From your contribution margin you work out your break-even MER, the blended return where the business makes zero profit but acquires as many customers as it can.
- That break-even, plus the profit you actually want to take, gives you your target MER for the month.
- Then, and only then, do the individual platform numbers come into play, calibrated back to that target.
The point of the chain is that every decision a media buyer makes in a Meta campaign at nine in the morning ladders all the way up to contribution margin. Push or pull, scale or cut, it all traces back to one number you trust. That's a shared reality. Everyone's holding the same cubit.
How you calibrate the platform numbers without believing them
Here's the practical bit, because "just use MER" on its own leaves you blind inside the ad account, where the actual decisions get made.
You don't throw the platform data away. You discount it by a known factor and get on with your day.
Meta's seven-day-click reporting, across a very large pool of tested brands, tends to over-state its real incremental contribution by a fairly consistent amount. A reasonable rule of thumb a lot of serious operators land on is that your true incremental return sits at roughly 80% of what Meta's seven-day-click claims. So if Meta tells you a campaign is doing a 4.0, you mentally run it as closer to 3.2 and make your call on that. You're not trying to make Meta "accurate". You're applying a calibration factor, exactly like the workers filing their wooden sticks against the granite master.
The beautiful thing is you set that factor once, sanity-check it occasionally, and the daily reconciliation panic just stops. You're no longer asking "is this number real". You already know it isn't, you know roughly how much it isn't by, and you've adjusted. Decision made, day continues.
This is what I mean by the chase being the real cost. Most teams burn their energy trying to make four systems agree. Calibrated operators spend that same energy acting, because they decided up front that good-enough-and-consistent beats perfect-and-paralysed.
The weekly scorecard we actually run
None of this needs to be fancy. The scorecard we run with clients fits on one screen and gets looked at once a week.
- Total ad spend, every platform combined.
- Total revenue, straight from the commerce platform, not the ad platforms.
- Actual MER for the week, revenue over spend.
- Target MER, the one tied to contribution margin.
- New customers acquired, because MER alone can flatter you if returning buyers are carrying it.
That's basically it. If actual MER is sitting above target and new-customer volume is healthy, you're leaving growth on the table and should spend more. If actual MER is under target, you pull back and fix efficiency. One number, one comparison, one weekly decision. No reconciling four dashboards, no arguing about whose pixel is right.
The whole job of the scorecard is to turn a thousand confusing data points into a single "push or pull" call you can make in a minute and defend to anyone.
Why a ROAS bake-off between agencies will wreck your account
This is the part I feel strongest about, because I've seen it do real damage.
A founder, fed up with attribution confusion, decides to be clever. Two agencies, head to head, same account or two halves of it, and whoever posts the better ROAS wins the business. Sounds rigorous. It's the opposite.
The moment you make platform ROAS the scoreboard, you've handed both agencies a strong incentive to do the thing that's worst for you. They'll chase the cheapest, easiest-to-claim conversions. They'll lean into retargeting and branded traffic, the customers who were going to buy anyway, because Meta will happily credit those at a flattering ROAS. And they'll quietly starve the genuine prospecting that grows the brand, because new-customer acquisition always looks worse on a raw ROAS line.
You crown a winner who looks brilliant on the platform number and has been steadily shrinking your future. Worse, the two campaigns contaminate each other. A customer might see one agency's ad, then click the other's, and both will claim the sale. The data you're judging them on is poisoned from the start.
If you genuinely want to compare operators, the only fair scoreboard is the blended one. Same MER target, same contribution-margin maths, and you watch total revenue and new customers move at the business level over a real window. Judge the house, not whose individual brick looks shiniest in isolation.
Try this before your next reporting meeting
Here's the small thing I'd ask you to actually do, rather than just nod along to.
Before your next reporting call, pick your one number. I'd push for MER tied to contribution margin, but the discipline matters more than my preference. Write down your break-even, write down your target, and agree out loud with your team that this is the master cubit. Everything else, GA4, Meta, the survey, becomes a calibrated input, not a competing source of truth.
Then notice how much calmer the next month feels. The numbers still won't match. You'll just have stopped needing them to.
I'm curious whether you land on MER or something else as your master number, because the right answer genuinely varies by business. If you run the exercise, I'd love to hear what you picked and why.
.webp)





