Return on ad spend is revenue divided by media cost. Notice what is missing. Cost of goods, shipping, payment fees, returns, and the cost of servicing the customer. A campaign can post a magnificent ROAS and lose money on every order.
The trap
Assume a five times ROAS target. On a product with a seventy percent gross margin, that is comfortably profitable. On a product with a twenty five percent margin, the same five times ROAS is a loss once shipping and returns are counted. Yet most accounts apply one blended ROAS target across an entire catalogue, which quietly pushes budget toward the lowest margin products because they convert most easily on price.
Bid on contribution profit
The fix is to feed the platforms a value that already has cost removed. Instead of passing order revenue as the conversion value, pass contribution profit: revenue minus cost of goods, minus fulfilment, minus expected returns. The algorithms then optimise toward the orders you actually want.
This requires product-level margin data flowing into your feed and your conversion tags. It is genuinely more work to set up than a revenue tag, and it is the single highest leverage change most D2C accounts can make.
Then judge on blended numbers
Platform-reported ROAS is self-assessed and double counts across channels. Judge the business on blended figures instead: total revenue against total marketing cost, and new customer acquisition cost against contribution profit per customer. Those two numbers are difficult to game and they move with the bank balance.
None of this means ROAS is useless. It is a fine diagnostic for comparing two campaigns selling the same product at the same margin. It is a poor objective for a business.