The platform reports a ROAS. You scale the campaigns with the highest one and cut the lowest. It feels like the obvious move. It is also how a lot of accounts quietly optimise themselves into a worse position while the dashboard gets greener.
The problem is what ROAS actually is. It is not a measure of what your spend caused. It is a measure of what the platform decided to credit itself for, inside an attribution window it chose, using rules that favour it. That is a credit metric. Credit and cause are not the same thing, and the gap between them is where the money leaks.
Why the number is inflated.
Two mechanics do most of the damage. The first is the default attribution window, which usually includes 1-day view. That lets the platform claim a conversion when someone was served an ad, did not click it, and bought within a day anyway. No interaction required. On accounts with warm audiences and an existing customer base, that is a large amount of revenue the platform is taking credit for that it did not cause.
The second is double counting across channels. The platform runs awareness and consideration, a customer sees it, later searches your brand on Google, and converts. Google claims it on last click. The original platform also claims it on view-through. The same sale, credited twice, optimised against by both.
ROAS is what the platform wants you to believe. The incremental read is what is actually happening.
The result is a reported number that can sit at three, four, even higher, while the genuinely incremental return, the revenue that only exists because the spend happened, is a fraction of it. Optimise to the inflated number and you reward the campaigns that are best at intercepting demand that was already going to convert.
What to optimise to instead.
You do not need to throw the platform reporting out. You need to stop letting it run the decision on its own, and replace it with a short hierarchy that gets closer to cause.
- Move to 7-day click as the default. Drop 1-day view from the optimisation read. Keep it as a sanity check if you like, but do not let a view-through window decide where budget goes.
- Judge on acquisition MER, not blended. New-customer revenue over spend. The moment returning customers leave the numerator, the number gets honest, and you can hand it to a CFO without them having to unwind it first.
- Validate with incrementality on a cadence. A holdout or geo-lift test is the only thing that tells you what the spend actually caused. It is the upper bound on what the platform can legitimately claim, and it is where backwards budget allocation gets exposed.
Your highest-ROAS campaign can have the lowest incremental return.
A campaign reading a high ROAS on warm retargeting can be close to zero incremental, while a cold campaign reading a modest ROAS with heavy exclusions is doing the real acquiring. Optimise to platform ROAS and you defund the one that matters.
What this changes in practice.
It changes which campaigns you trust and which you scale. Once you are reading 7-day click, judging on acquisition MER, and checking the picture against an incrementality test, the rankings move. The campaign that looked like the hero on platform ROAS often turns out to be harvesting demand. The unglamorous cold campaign turns out to be the one growing the business.
That is the entire point. You are not trying to make the report look good. You are trying to make the next dollar land where it actually produces a new customer. The platform's job is to spend. Your job is to know what the spend caused. Those are different jobs, and only one of them can be outsourced to the dashboard.
So if you take one thing away from this
Platform ROAS is fine as one input and dangerous as the optimisation target. Stop ranking campaigns by a number the platform built to credit itself. Read on 7-day click, judge on acquisition MER, and confirm with incrementality. When all three point the same way, you have integrity. When they do not, the platform was lying to you, politely, in green.