— 6 min read
Your Meta revenue will never match Shopify
Every platform claims the same sale. Here's why the numbers diverge, which one to trust, and how to explain it to a founder who thinks something is broken.
The first time you put a brand's ad platform reporting next to their Shopify revenue, the numbers won't agree. Not off by a rounding error — off by a lot. Add up what Meta, Google, and TikTok each claim they drove, and the total will often exceed what the store actually made.
This is the moment most founders decide something is broken. It isn't. Every platform is answering a slightly different question, and none of them is lying.
Why the gap exists
Every platform counts the same sale. A customer sees an Instagram ad on Tuesday, searches your brand on Wednesday, clicks a Google ad, and buys. Meta claims it. Google claims it. Shopify records one order. Nobody is wrong — they're each reporting their own contribution to a sale that had more than one cause.
Attribution windows differ, and defaults are generous. Meta's default counts a purchase within seven days of a click or one day of a view. A view means the ad appeared on screen. Someone who scrolled past your ad and bought the next day counts as attributed, even though they were going to buy anyway.
Some conversions are modeled, not observed. Since iOS privacy changes, platforms can't track a meaningful share of users directly. What they report is partly statistical estimate. Those estimates are reasonable in aggregate and unreliable for any single campaign.
Timezones and definitions drift. Ad accounts report in whatever timezone they were configured with, which is often not the client's. Shopify's order total may or may not include tax, shipping, and refunds, depending on which field you read.
Which number to trust
Shopify is the only source that knows what actually happened. Money moved, an order exists. That's your denominator, always.
Platform-reported revenue is directional. It's useful for comparing this week's campaign to last week's on the same platform, with the same settings. It is not useful for deciding how to split budget between platforms, because each one is grading its own homework with a different rubric.
The right question isn't "which platform is telling the truth." It's "what will we count, and will we count it the same way next month."
What to do instead
- Reconcile spend first. Spend should match the platform UI almost exactly. If it doesn't, you have a configuration problem — wrong timezone, a missing account, a currency mismatch — and you'll misdiagnose everything downstream until it's fixed.
- Pick one revenue source of truth. Shopify, net of refunds. Write down whether tax and shipping are included. Never change it quietly.
- Report platform metrics as platform metrics. Label them clearly. "Meta-reported purchases" is honest. "Revenue" is not.
- Use holdouts for the questions that matter. If you need to know whether a channel is incremental, turn it off in a region for two weeks and watch total revenue. Imperfect, and still better than any attribution model.
- Write the definitions down. One page, agreed with the client, listing every metric and exactly how it's calculated. This is the single highest-leverage document in the engagement.
The conversation to have early
Tell the client the numbers won't reconcile before they find out on their own. Explain that the gap is expected, show them roughly how big it is, and agree on what you'll treat as authoritative. Ten minutes of this at the start prevents a much worse conversation three months in, when someone in a board meeting asks why two reports disagree.
The goal was never a perfect number. It's a consistent one that everybody understands.
We're Brew Collective — a brother and sister who build the systems behind influencer, affiliate, PR, and partnership programs for DTC and CPG brands. If your numbers don't reconcile and nobody can tell you why, tell us what's breaking.