Every performance marketer knows the scene. The ad platform — Google Ads, Microsoft Ads, Meta, TikTok — reports 5x ROAS. You do not believe it, so you pull the backend number and get 2x. The backend must be the truth, so you mark the campaign mediocre and move on. Benjamin Wenner, writing at Search Engine Land, stops there: the platform's 5x is inflated, but the backend's 2x is not the truth either.
The same flaw, pointing opposite ways
Platforms count generously by design. View-through conversions, modeled conversions where consent was never granted, and a conversion window that credits a click from three weeks ago all flow into the reported number, and they all push the same direction — up. Platforms grade their own homework and your spend follows the grade.
The backend does the opposite, quietly. Most backend revenue reporting is last-click or close to it. The order gets attributed to whatever the customer touched last, often a brand search or a direct visit, and the paid click that started the journey three weeks earlier gets nothing. Your CRM is not lying. It is answering a narrower question than you thought you asked.
Both errors come from the same moment: pinning a conversion to a single touch. The platform resolves that ambiguity in its own favor and books the assist as a win. The backend resolves it in favor of the last click and books the assist as nothing. Same ambiguity, opposite defaults. The gap between 5x and 2x is mostly the size of that disagreement, not the size of any fraud.
Wenner's analogy lands. Two thermometers on the same patient: one runs five degrees hot, one runs five degrees cold. Averaging them does not give you the fever. It gives you a number belonging to neither instrument and describing nobody.
The backend cannot see ads nobody clicks
The under-crediting is not evenly spread. It scales with distance from the click, which determines which channels get robbed.
For impression-based formats, the backend is nearly blind. Social, display, video, and connected TV work by influence, not clicks. Someone scrolls past your Meta ad, does not click, searches your brand three days later, and buys. The backend credits that last clickable touch. The impression that created the demand gets nothing, because there was no click for a last-click system to record. To your CRM, a Meta campaign that drove a week of branded search looks like it did nothing at all. Not undervalued — invisible.
It got worse after iOS 14. Even the social clicks that did happen lost their match back to the purchase, thinning the one signal the backend might have caught.
Wenner names his own position here. Search is the exception: it lives on a click, the click usually sits close to the purchase, and a last-click backend captures a fair share of what search did. It still shorts upper-funnel generic and research queries, but the gap is narrower and far less invisible than social's. And he sells search. The format the backend robs blind is not his — it is social, the channel he has the least commercial reason to defend.
The damage is concrete. Judge impression-based campaigns by last-click backend revenue and you switch off the demand generation quietly feeding every clickable touch downstream, branded search included. "Cut what doesn't convert" becomes "cut what you can't measure."
Two platforms, one sale, both claiming it
All of that assumed a single channel. Add a second and the over-reporting stops being arguable and becomes arithmetic that cannot be true.
Run Google and Meta together, add up each platform's reported conversion revenue for the same period, and set the total against actual backend revenue. For most accounts at scale, the sum comes out higher. Sometimes much higher. That is not two platforms each being slightly generous — it is the same sale booked twice. A customer sees a Meta ad, searches your brand later, clicks the Google ad, and buys. Google logs the conversion. Meta logs it too, on a view-through, because it served an impression inside its window. Neither can see the other, so neither discounts a cent. You paid once, sold once, and two dashboards recorded the revenue.
Meta's view-through is the single largest source of the overage, and it is worth naming who benefits from it existing. But Google runs its own version with engaged-view and modeled conversions that lean the number up. This is not a social-versus-search point, and adding a third channel compounds it further.
Reconciling gives you a third wrong number
The standard fix is reconciliation: blend the sources, or move everyone onto data-driven attribution and let the model split the credit. But DDA still comes from the platform whose top-line number you already learned not to trust. Reallocating credit among paid touches cannot show you the conversions that would have happened without ads. It reconciles. It does not measure.
Attribution answers "which touch gets the credit," never "would this have happened anyway." Those are different questions, and the reconciled figure is a more expensive guess at the first one.
Automated bidding is where this turns from wrong to expensive. Point Smart Bidding, or an agent layered on top of it, at the reconciled ROAS, and it optimizes toward it with total confidence, pouring budget into whatever the flawed number rates highly. The mistake a junior analyst makes reading the wrong column, an agent makes faster, at scale, with more conviction. Wrong inputs do not get more correct because the optimizer is sophisticated. On the spread of automated bidding, see ChatGPT Ads Adds Automated Bidding.
In the EU the platform-side gap is structurally wider, not narrower. Consent mode means a real share of conversions are modeled rather than observed, and modeled conversions inflate exactly the top-line figure you are reconciling against.
Build it or buy it — it is still attribution
The honest reaction is to go looking for a better attribution setup. Two doors.
Build your own. Collect every touch server-side, resolve identity across sessions and devices, run your own multi-touch model. On a slide it looks clean. In practice it is a standing data-engineering commitment, not a project with an end date: deduplicating conversions across platforms that each count differently, matching users who clear cookies and hop devices, rebuilding the pipeline every time a platform changes an API or a window. Most teams underestimate this by an order of magnitude. The ones who pull it off have a data engineer whose actual job it is, not a paid search lead doing it on Fridays.
The backend you are stitching to is not a fixed quantity either. Shopify can show you the sequence of touches leading to a sale — real raw material. Plenty of CRMs stamp the last touch and call it revenue. "Check your backend" is not uniform advice.
Buy the suite. Triple Whale, Northbeam, Rockerbox and the cottage industry that grew up after iOS 14 to rebuild the signal the pixel lost. The better ones now bolt marketing mix modeling and incrementality testing onto the attribution, which is the part actually worth paying for. Wenner's take: these suites earn their complexity only at seven to eight figures of revenue, where a dedicated analyst runs them and a single budget call moves enough money to justify the overhead. Below that you are buying a laboratory to settle a question a whiteboard could handle, and a small account would learn more from one clean holdout than from an annual subscription it half configures and never quite trusts.
Built or bought, cheap or dear, the category does not change. Multi-touch attribution answers which touch with better charts. It never answers whether.
Turn it off to get the truth
One number in this discussion answers "would this have happened anyway," and no dashboard has it. You get it by turning the channel off somewhere and watching what backend revenue does without it. That is incrementality: the revenue that exists because the ads ran and would not exist otherwise.
You do not need a vendor to start. Wenner's design rules:
- If you have the volume to split by region, choose a geo holdout over a conversion-lift study. It is cleaner and you own the data.
- Hold the channel out of comparable markets for a full purchase cycle, not a week. Four weeks minimum.
- Measure the delta in backend revenue between held-out and live regions, not the platform's reported conversions. It cannot see its own absence.
- Run the test before you trust any reconciled or data-driven number. The holdout tells you whether the model was even close.
- With more than one platform, hold each out in its own window. You cannot divide a sale among parties that each claimed the whole of it.
One holdout will not settle every budget question. For broader decisions, marketing mix modeling gives a top-down view of channel contribution from aggregate spend and outcomes. Use it alongside holdouts and let attribution handle the day-to-day. None of them is the truth; they check each other. For another case of judging a channel on incrementality rather than attribution, see When Review Content Turns Parasitic.
Three things to do this week
Stop asking which number to trust. That question assumes one of the two instruments on your desk is calibrated, and neither is. Ask the other one: what does backend revenue do when the campaign goes dark?
Concretely: add up Google's and Meta's reported conversion revenue and set the total against actual backend revenue — if the sum exceeds reality, that overage is currently steering your budget. Check whether you are grading impression-based channels on backend revenue, because if so they are being tried in a court that cannot see them. And design one four-week geo holdout before committing next quarter's budget. You will learn more from it than from another dashboard.