Why Paid Social Reports More Conversions Than You Had

View-through counting, a cross-device identity graph you do not have, and an attribution window the platform chose. How to reconcile against billing once, produce a discount factor, and stop relitigating it monthly.

KISSmetrics Editorial

|11 min read

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
SystemCountsIdentityTypical direction
Ad platformClicks and views in its windowIts own cross-device graphHighest
Web analyticsLast non-direct click, session-scopedCookie, per browserMiddle
BillingPaymentsAccountLowest, and correct
The order is almost always this. Billing is the only one of the three that is not attributing anything, which is exactly why it is the anchor.

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 view
Ad platform reported
340 conversions
Analytics, last non-direct
90 conversions
Paid orders in billing
61 conversions
Illustrative, not measured. The shape is what recurs: the platform high, analytics low, billing lower and unarguable. The useful output is the ratio between the first and the third.

C.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

paid socialfacebook ads attributionlinkedin adsview-through conversionsad platform reportingattribution gapincrementality
KISSmetrics

Build your business intelligence layer for free.

KISSmetrics keeps the acquisition source and the eventual payment on one person record across months and devices, so a paid channel is valued on what its customers were worth rather than on what the platform claimed.