Your ad platform reports more conversions than your analytics, and more than your billing system, and it is not lying. It is counting view-through conversions inside its own attribution window, on its own identity graph, and marking itself as the cause. Both numbers are internally correct. Only one of them can be used to set a budget.
Every performance team has had the meeting where the platform says 340 conversions, analytics says 90, and finance says 61. The instinct is to decide which system is broken. None of them is. They are answering three different questions, and knowing which question you need is the entire skill.
The newsletter
Join our KISS newsletter
One short read a week on what actually moves revenue, in a free email. Read by 10,000+ operators and founders.
No spam. Unsubscribe in one click.
I.Why the ad platform always reports more than you had
Three structural reasons, none of which is dishonesty, and all of which inflate in the same direction.
A.It is marking its own homework, and it can see things you cannot
An ad platform knows something your analytics never will: who saw the ad. Impressions are invisible to you and central to it. That asymmetry is the origin of most of the gap.
It also has an identity graph you do not have. A logged-in user on a phone and the same person on a laptop are one profile to the platform, and two anonymous visitors to your site. When that person converts on the laptop, the platform can connect it to the phone impression. Your analytics cannot connect it to anything.
B.View-through, and the window
The default attribution settings do most of the remaining work. A one-day view-through window means anyone who saw the ad and converted within 24 hours counts, whether or not the ad had anything to do with it.
For a brand with meaningful organic demand this is close to a tax on your own customers. People who were going to buy anyway pass through a feed, register an impression, and get counted. The platform is not inventing conversions; it is claiming ones it may not have caused, which is a different and more subtle problem because it is unfalsifiable from inside the platform's own reporting.
What each system is counting
Reconciliation view| System | Counts | Identity | Typical direction |
|---|---|---|---|
| Ad platform | Clicks and views in its window | Its own cross-device graph | Highest |
| Web analytics | Last non-direct click, session-scoped | Cookie, per browser | Middle |
| Billing | Payments | Account | Lowest, and correct |
C.And why analytics undercounts the same campaign
The gap has two sides. While the platform over-claims, your analytics under-credits, and it does so systematically rather than randomly.
Default channel grouping uses last non-direct click. Somebody clicks a LinkedIn ad on Tuesday, comes back through a brand search on Friday, and buys. LinkedIn gets nothing. Session expiry compounds it: if acquisition source is stored on the session, the ad that started the relationship has expired long before the purchase. See first-touch versus last-touch attribution for how much budget that quietly moves.
So the true figure is not the platform's and not your analytics'. It is somewhere between two numbers that are each wrong in a known direction.
II.Reconciling it without pretending either number is fake
Do the exercise once, produce a ratio per platform, and stop arguing.
A.Anchor on billing, always
Pick a month. Count actual paid orders or new paid accounts from the billing system. That is the denominator, and it is not up for discussion.
Now sum the reported conversions from every paid channel. If the total exceeds real orders by 3.5×, you have quantified the over-claim, and you have done it without needing to agree on whose model is right.
B.Turn the disagreement into a ratio
Rather than trying to make the platforms agree, calculate a discount factor for each and apply it consistently. If Meta reports 340 and the reconciliation suggests it genuinely produced 95, your factor is 0.28. Recalculate quarterly.
This sounds crude and it is far better than the alternative, which is either believing the platform outright or discarding its data. The factor makes platforms comparable to each other, which is the actual decision you need to make, and it is stable enough to survive a quarter as long as the campaign mix does not change radically.
One month, three systems, same campaign
Reconciliation viewC.Two tests worth more than the reconciliation
Both are unpopular because they cost money to run, and both answer the question the reconciliation only approximates.
Geo holdout. Turn the campaign off in a set of comparable regions and leave it running elsewhere. The difference in orders is incrementality, measured rather than modelled. It costs you the revenue in the holdout regions for the duration, which is the price of finding out.
Turn it off entirely for two weeks. Blunt, and remarkably informative. Teams who do this are frequently surprised in both directions.
III.The number to actually run the budget on
Cost per reported conversion is not a decision input. Revenue per person acquired is.
A.Why conversion counts are the wrong currency
Even a perfectly reconciled conversion count tells you how many, not how good. Two channels delivering identical volumes at identical costs can differ by a factor of three in what those customers go on to be worth, and that difference is invisible in every report the ad platform will ever show you.
Paid social in particular tends to produce high volumes of low-intent signups. The cost per conversion looks excellent. The cost per customer who is still paying in month six can be the worst in the account. Our guide to channel mix covers allocating on that basis.
B.What has to be true to measure it
To compare channels on revenue you need one thing: the acquisition source and the eventual payment attached to the same person, months apart, across devices. That is the whole requirement, and it is why the exercise is normally impossible.
Kissmetrics stores the acquisition source as a property on the person the first time it sees them and keeps it. When that person pays, eleven weeks and two devices later, the revenue lands on the record that already carries the campaign. Channel comparison becomes a report you open rather than a data project you commission.
That does not resolve incrementality. Nothing except a holdout resolves incrementality, and any vendor claiming otherwise is selling a model. What it resolves is the more common and more expensive question: of the people this channel definitely brought us, what were they actually worth.
C.A working position
Use the platform's numbers for optimising inside the platform, where relative performance between two creatives is measured consistently and the absolute number does not matter.
Use billing-anchored, person-resolved revenue for deciding how much each channel gets. Never mix them in one report, and never let a cost per conversion from an ad account appear in a board deck without the discount factor next to it.
Verdict
The gap between what an ad platform reports and what you actually sold is structural. It comes from view-through counting, a cross-device graph you do not have, and an attribution window the platform chose. It will not close, and treating it as a bug wastes the quarter.
Anchor on billing, produce a discount factor per platform, and make budget decisions on revenue per person rather than on conversion counts. The platform's number is useful for steering creative. It was never designed to tell you what a channel is worth, because the platform is not a neutral party to that question.
Continue Reading
Multi-Touch Attribution: How to Give Credit Where It Is Due
Customer journeys involve multiple touchpoints across channels and devices. Multi-touch attribution distributes credit across the entire journey so you can invest in what actually works.
Read articleChannel Mix Optimization: How to Allocate Budget Using Analytics
Most marketing teams allocate budget based on last year plus a percentage. Data-driven channel mix optimization identifies where the next dollar produces the highest return.
Read articleMarketing ROI: How to Measure What Matters and Prove Your Impact
Marketing teams that cannot prove ROI eventually lose budget. This guide shows you how to connect every campaign, channel, and touchpoint to actual revenue using proper attribution and tracking.
Read article