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. 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.
The Specific Way ROAS Optimisation Reduces Profitability
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.
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.
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.
The Short Version
ROAS measures revenue per rupee of ad spend. CM-ROAS measures contribution margin per rupee of ad spend. The same ROAS can represent dramatically different profitability depending on the product mix, return rate, and gross margin of the orders generated. Switch to CM-ROAS by building a product-level contribution margin table, attributing campaign orders to their products, and calculating contribution generated divided by spend. Reallocate budget from below-1 CM-ROAS campaigns to above-1 CM-ROAS campaigns. Evaluate creatives on CM-ROAS rather than ROAS to find the creative that drives profitable purchases rather than high-volume purchases.
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.