You are running paid on more than one platform, and each dashboard tells you it is the one that is working. Add up the conversions all of them claim and the total is larger than the number of sales you actually had. Somewhere in that gap is the real answer, and no single ad manager will give it to you, because each one is reporting on its own contribution using its own rules.
This guide is how to measure paid across channels without being fooled by any of them. It covers the one funnel that sits above all the platforms, why the attribution numbers over-count in a consistent direction, the specific traps of last-click and self-reported return, and a simple scorecard you can build in a spreadsheet to compare channels on the same terms. It is the cross-platform companion to reading ad results without fooling yourself, which covers the single-platform version of the same problem in more depth.
One funnel, not four dashboards
The mistake that makes cross-platform measurement impossible is treating each platform's reporting as the source of truth for that platform. It is not. Your own system is.
Whatever records your actual outcomes (your order system, your CRM, your analytics) is the one denominator that every channel has to answer to. That number is what really happened. Everything a platform reports is a claim about its share of what really happened, and because every platform makes that claim independently, the claims sum to more than the total. This is the same measured-versus-reported distinction that underlies all paid measurement, set out in measured vs reported: spend is measured, platform-attributed outcomes are claimed under a model.
So the frame is one funnel with several inputs. At the top, the spend and delivery each platform actually charged you for, which is first-party and accurate. At the bottom, the outcomes your own system recorded, which is the only honest total. The whole discipline of cross-platform measurement is connecting those two ends without letting any platform's self-report stand in for the truth in the middle.
Why the numbers over-count, in the same direction
Three forces push every platform's reported performance up relative to reality, and knowing them turns the dashboards from a verdict into evidence.
Post-ATT signal loss. Since Apple's App Tracking Transparency framework required apps to ask permission before tracking users across other companies' apps and sites, a large share of users decline, and the platforms lost much of the deterministic signal they once used to tie an ad to a sale. What filled the gap is modelling: platforms now estimate conversions they can no longer observe directly. Modelled conversions are a reasonable engineering response, but they are estimates presented in the same font as counts, and they tend to be generous to the platform doing the modelling. Apple's own documentation is the primary reference for what changed; the practical consequence is that reported conversions since then carry more inference and less observation than the interface suggests.
Each platform over-reports its own return. A platform reports on its own contribution using its own attribution model, and every methodological choice in that model was made by the company selling the advertising. None of it is fabricated, but the choices point the same way, which is why the returns each channel claims cannot simply be added together. The seven specific mechanisms (view-through credit, attribution windows, learning-phase noise and the rest) are laid out in reading ad results without fooling yourself. The cross-platform symptom is the one you already noticed: the claims overlap because each platform counts any interaction it touched.
The last-click trap. The opposite error, and just as misleading. If you judge everything by the final click before a sale, you systematically over-credit the channels that sit closest to the purchase (search on your own brand name, retargeting) and starve the channels that created the demand in the first place. Last-click is not measurement; it is a rule for assigning all the credit to the end of the journey. It makes discovery channels look like failures and closing channels look like heroes, and scaling on it quietly defunds the top of your own funnel.
Put together, these mean the reported ROAS on each platform is best read as an upper bound, not a measurement. The useful question is never "which dashboard shows the highest return" but "which channel moved my own recorded total, and at what cost".
Comparing like with like: cost per outcome
The only fair comparison across platforms is the one built on numbers that mean the same thing everywhere, and platform-reported conversions are not that, because they are counted under different rules on each channel.
Two numbers travel honestly across platforms. Spend is measured and unarguable. Your own recorded outcomes (orders, qualified leads, sign-ups, whatever the real result is) come from one system with one definition. Divide the first by the second and you get cost per outcome, expressed in your own truth rather than the platform's. That is the metric to compare, because both of its inputs mean the same thing on every channel.
Contrast that with comparing platform-reported ROAS across channels, which compares four different counting methods and calls the difference performance. A channel can show a higher reported return purely because it credits view-through conversions or uses a longer attribution window, neither of which made you a penny more. Cost per your-own-outcome strips that out. It will look worse than the platform's own figures, because it refuses to count the conversions the platform is claiming but you cannot verify. That is the point.
One honesty note that this metric cannot fix on its own: cost per outcome still does not tell you whether those outcomes would have happened anyway. That is the incrementality question, and the only clean answer is a holdout (withholding ads from part of an audience and comparing), covered in reading ad results without fooling yourself. Absent a holdout, treat cost per outcome as a fair comparison between channels, not as proof that any channel caused the outcomes it is near.
A cross-platform scorecard you can build
You do not need a measurement platform to do this. A spreadsheet with one row per channel and these columns will already put you ahead of most advertisers, because it forces every channel onto your own numbers.
Build the columns in this order:
- Channel: one row each, never blended. A blended average across channels moves when your mix moves and gets misread as a performance change.
- Spend: from the platform, measured and accurate.
- Platform-claimed conversions: recorded, but labelled as a claim, not a result.
- Your recorded outcomes: from your own system, for the same period and the same definition on every row. This is the column that matters.
- Cost per outcome: spend divided by your recorded outcomes. The comparison metric.
- Attribution window and model: one note per channel, because a comparison across different windows is meaningless, as reading ad results without fooling yourself explains.
- Deflator: the ratio of your recorded outcomes to platform-claimed conversions. Applying it to future platform numbers keeps you roughly right instead of confidently wrong.
Refresh it monthly, keep the definitions identical across rows and across months, and resist the urge to add channels faster than you can measure them. The scorecard is only honest if every row is counted the same way.
Where Acumin fits
Acumin's measurement is deliberately narrow, and narrow is the point. Ad Lab derives only over real recorded numbers (nothing projected, nothing modelled) and compares campaigns on actual cost per result, ranking them and suggesting a reallocation only when the gap between leader and laggard is large enough to be meaningful rather than noise. Organic and paid are shown as two real numbers side by side and described as descriptive, never as a causal claim, because the data does not support the causal claim. The Content Strategy cockpit holds the plan those numbers are meant to inform, so the scorecard feeds a decision rather than sitting in a report.
What Acumin will not do is attribute revenue to a channel through a model. A number produced that way would be an invention dressed as a measurement, which is exactly what this guide is arguing against. And one stated limit: reading Meta ad results back automatically is pending Meta's app review, so today those figures come from Meta's own reporting entered against the campaign rather than pulled in for you. A spreadsheet built the way this guide describes is a perfectly good place to start, and for some brands it is the whole answer.
Do this today
Take last month's numbers from every paid channel you ran. In one spreadsheet, put spend and platform-claimed conversions next to the outcomes your own system recorded for the same period. Work out cost per your-own-outcome for each channel, and the deflator between claimed and recorded. You will almost certainly find that the channel the dashboards crowned is not the one your own numbers reward. Fund the one your denominator points to, and you have started measuring paid instead of being marketed to by it.