Guide
Meta says 40 sales. Stripe says 12. Who is right?
Why ad platforms and your payment processor disagree about the same month, which number to trust for which decision, and how to stop guessing.
You open Ads Manager and it says forty. You open Stripe and count twelve. Nothing is broken, nobody is lying, and the two numbers will never agree — because they are answering different questions and only one of them is about money.
What the platform is actually counting
An ad platform reports a conversion when somebody who interacted with an ad went on to trigger a configured event, within a window that platform decided. Every part of that sentence is a place the number diverges from your bank.
The event may not be a sale. This is the single most common cause and the least suspected. Accounts routinely optimise for an event named something reassuring that fires on a page view, an add-to-cart, or a click on a phone number. The platform then reports two hundred conversions with complete accuracy, and none of them is money.
The window is theirs. A seven-day click and one-day view window is common. A sale twelve days after the click is invisible to it; a sale that would have happened anyway, two days after somebody scrolled past your ad, is credited to it.
Both platforms claim the same buyer. Someone who saw a Meta ad on Tuesday and clicked a Google ad on Thursday appears as a conversion in both accounts. Neither is wrong by its own rules, and adding the two totals produces a number that never happened.
What Stripe is counting
Money that arrived, minus refunds. It has no attribution model, no window, and no interest in making a channel look good. Its weakness is the mirror of the platform's strength: it cannot tell you which ad caused anything, because it never saw an ad.
That makes it useless for choosing between two campaigns and authoritative for one question — how much a period actually produced. Which is why it is the right ceiling and the wrong scoreboard.
The number you should not compute
The tempting move, when forty and twelve disagree, is to build a blended figure: multiply claimed conversions by an average order value and call the result revenue. Do not. You would be taking a count of mixed events, inside somebody else's window, possibly double-counted, and multiplying it by an average that hides its own distribution. The output looks like a business metric and is closer to a rumour, and it is the number most likely to end up in a decision about budget.
How to use both numbers honestly
Compare campaigns to each other, never to reality.Within one ad account, the bias is roughly consistent — same window, same event, same rules. So “campaign A reports twice what campaign B does” is a usable signal even when neither figure is a sale.
Let revenue set the ceiling. If the platforms collectively claim more purchases than your processor recorded, you now know something specific: somewhere there is double-counting, or an event that is not a purchase. That gap is the most useful finding available from this data, and it only appears when both numbers sit on the same page.
Record what you actually saw. For anything sold by phone, by invoice, or over weeks, no tracking will ever capture it. Writing down the customers you know arrived — and where they said they came from — beats any attribution model available to a business of this size, and it is the only source that survives a platform changing its rules.
When the gap means the tracking is wrong
Open the conversion action in the platform and read its definition. If it fires on a purchase and the counts still disagree by an order of magnitude, look at the window and at whether a second platform is claiming the same buyers. If it fires on a page view, nothing is broken and there is nothing to fix — the number is simply not what it was being read as, and the fix is to stop reading it that way.
The related question of how credit should be split when several channels touched one sale is covered in what attribution can and cannot tell you, including the cases where the honest answer is that it cannot be split at all.
What this looks like in practice
Rallik shows the three figures side by side rather than reconciling them: what each platform claimed, what site analytics saw, and what actually arrived in Stripe — labelled with which is which, kept in their own currencies, and never summed into one confident total. When the claims exceed the payments, it says so in a sentence and leaves the judgement where it belongs.
None of that requires this product. It requires refusing to average two numbers that are counting different things, which is harder than it sounds when a spreadsheet will happily do it for you.
Common questions
- Why does Facebook report more conversions than I have sales?
- Three reasons, usually at once. The platform counts a conversion for anyone who saw or clicked an ad within its attribution window and then converted, so two platforms can both claim the same sale. It counts whatever event was configured as a conversion, which is often a link click or a page view rather than a purchase. And it counts within a window it chose — commonly seven days after a click and one day after a view — so a sale outside that window is missing while an unrelated sale inside it is credited.
- Which number should I trust, the ad platform or Stripe?
- Stripe for how much money arrived, always — it is the only figure nobody is incentivised to inflate. The platform for comparing its own campaigns against each other, because the bias is at least consistent within one account. The mistake is using either for the other's job: judging a channel by Stripe alone tells you nothing about which ad worked, and judging revenue by the platform tells you nothing about your business.
- How do I reconcile ad conversions with actual revenue?
- You do not reconcile them to a single number, because they are counting different things and no arithmetic makes them agree honestly. What works is holding both: platform-claimed results per channel for relative comparison, and account-wide revenue as the ceiling on what any of it produced. When the claims exceed the revenue, that gap is the finding — it usually means double-counting across platforms or an event configured as a conversion that is not a sale.
- Is my conversion tracking broken?
- Check what the event is before assuming it is broken. Open the conversion action in the ad platform and read what it fires on. A large fraction of accounts optimising for 'conversions' are optimising for link clicks, page views or add-to-carts, in which case the tracking is working perfectly and the number simply is not sales. That is a different problem from a broken tag, and a much more common one.