ROAS optimisation maximises revenue per rupee of ad spend without accounting for the margin left after cost of goods, shipping, returns, and variable costs. This blog explains the specific mechanism by which ROAS optimisation leads DTC brands to make decisions that reduce profitability, and how to switch to contribution margin ROAS without rebuilding the campaign structure.. Advize is an AI-powered performance marketing agency that builds contribution margin ROAS as the primary campaign optimisation metric for every DTC client, because the ROAS number that Meta and Google report is a revenue metric that can look strong while the underlying business loses money
ROAS optimisation maximises revenue per rupee of ad spend without accounting for the margin left after cost of goods, shipping, returns, and variable costs. A DTC brand optimising for a 4x ROAS at a 20 percent gross margin is maximising revenue efficiency while generating insufficient contribution margin to cover fixed costs. The correct optimisation target is contribution margin ROAS (CM-ROAS), which measures gross profit generated per rupee of ad spend rather than revenue generated per rupee of ad spend. Switching from ROAS to CM-ROAS as the primary optimisation metric changes which products, audiences, and creatives look like winners, often significantly.
What Is The Specific Way ROAS Optimisation Reduces Profitability and Why Does It Matter for Performance?
Consider a DTC brand with two products: Product A at ₹1,200 AOV with a 55 percent gross margin and a product return rate of 8 percent, and Product B at ₹800 AOV with a 35 percent gross margin and a return rate of 22 percent. Both are in the same general category and the brand runs ads for both.
From an ROAS perspective: if both products generate ₹4 in revenue per ₹1 of ad spend, they look equivalent. A ROAS-optimised campaign allocates spend equally or based on whichever is generating higher revenue volume.
From a contribution margin perspective: Product A generates ₹0.55 in contribution margin per ₹1 of revenue, with an 8 percent return rate reducing effective contribution to approximately ₹0.51 per ₹1. At a 4x ROAS, Product A generates ₹2.04 in contribution per ₹1 of ad spend. Product B generates ₹0.35 in contribution margin per ₹1 of revenue, with a 22 percent return rate reducing effective contribution to approximately ₹0.27 per ₹1.
At the same 4x ROAS, Product B generates ₹1.08 in contribution per ₹1 of ad spend.
Same ROAS. Almost double the contribution from Product A. A ROAS-optimised campaign cannot see this difference.
A CM-ROAS optimised campaign allocates almost all spend to Product A and treats Product B as an unprofitable SKU to be repriced or retired.
We Audited 60 DTC Subscription Flows covers the data from Advize's analysis.
How to Calculate CM-ROAS and Use It to Optimise Campaigns?
Step one: build a product-level contribution margin table. For each active SKU: AOV, COGS percentage, average return rate, return processing cost, shipping cost paid by brand (net of any customer-paid shipping), and payment processing fee percentage. Calculate net contribution margin per order for each SKU.
Step two: calculate CM-ROAS for each active campaign. For each campaign, pull the product mix of orders attributed to that campaign from Shopify. Apply the product-level contribution margins to the order mix to calculate total contribution generated.
Divide by the campaign spend. This is the campaign-level CM-ROAS.
Step three: compare campaign CM-ROAS against breakeven CM-ROAS (which is simply 1.0: any CM-ROAS above 1 is generating positive contribution, any below 1 is destroying value). Reallocate budget from campaigns with below-1 CM-ROAS to campaigns with above-1 CM-ROAS, using the CM-ROAS multiple as the allocation weight.
Step four: use CM-ROAS to evaluate creative performance. The creative that generates the highest ROAS may be driving purchases of low-margin products. The creative that generates the highest CM-ROAS is driving profitable purchases.
These are often different creatives.
Related: Scaling Trap Revenue Growth Without.
What Changes When You Switch From ROAS to CM-ROAS Optimisation?
The campaigns that look best under ROAS optimisation and the campaigns that look best under CM-ROAS optimisation differ in several consistent ways. Campaigns targeting broad demographics and cold audiences often generate high revenue volume from price-sensitive buyers who select lower-margin products or return at high rates. Campaigns targeting specific high-intent audiences often generate lower revenue volume from buyers who select higher-margin products and return less frequently.
ROAS favours the first. CM-ROAS favours the second.
Creative themes also differ. Creative that appeals to price sensitivity, such as discount messaging or value comparison, generates ROAS through volume but often drives lower-margin or higher-return product purchases. Creative that appeals to quality or outcome confidence generates fewer but more profitable purchases.
The practical implication is that switching from ROAS to CM-ROAS optimisation typically produces a modest decrease in total revenue (because some volume is deliberately reduced) accompanied by a meaningful increase in contribution margin and profitability. The brand sells less but makes more money from what it sells.
Why Most DTC Brands Misattribute Their Best Customers explains the root cause in detail.
Conclusion
The switch from ROAS to CM-ROAS as the primary DTC optimisation metric is the most financially impactful change most DTC brands can make without changing a single campaign setting, product, or creative. Advize builds CM-ROAS measurement infrastructure as the first step of every DTC engagement because optimising against the wrong metric consistently produces campaigns that look successful while the business loses money.
For every Advize guide on cross-channel diagnosis, performance audits, and full-funnel analysis, see the Cross-Stack Diagnosis hub.