Put contribution margin first
Most dashboards open with ROAS. It is easy to read, and it is the number ad platforms report. But ROAS looks only at sales and ad spend. It leaves out what the product cost, what you paid to ship it, and what came back.
Here is a quick way to turn margin into a target. Your break-even ROAS is 1 divided by your contribution margin before marketing, written as a fraction. At that ROAS, ads pay for themselves and leave nothing.
Example with round numbers, not a real brand. Say a brand has a 50% contribution margin before marketing, which is 0.5. Break-even ROAS is 1 divided by 0.5, which is 2. At a ROAS of 2, every ₹100 of sales brings ₹50 of margin, and the ads cost ₹50. Profit after marketing is nil. A ROAS of 3 leaves a margin after ads of about ₹17 on each ₹100 of sales. A ROAS of 1.5 loses money.
A brand with a 25% margin has a break-even ROAS of 4. Two brands can both report a ROAS of 3 and one is making money while the other is losing it. That is why we ask for the margin before we talk about targets.
Repeat buyers change the picture. If a customer buys again, the first order does not have to cover CAC alone. That is what payback period shows. Our page on performance marketing for D2C looks at how brands plan the first order against later orders.
What D2C marketing costs, and what moves it
We found no public page we could open that states a rupee range for D2C marketing in India. A range needs a date and a method. So this page gives none. A figure from a blog with no named method is a guess, and it would not fit your brand anyway. Here is what moves the cost, in plain words.
- Ad prices. Google Ads and Meta sell ads in an auction. What you pay depends on that auction, covered below.
- Creative. Photos, videos and creator work cost money before a single rupee goes on ads. Weak creative raises what each sale costs.
- Your site and tools. The store platform, email and WhatsApp tools, and tracking tools each have their own plan and price. See each platform's page for its charges.
- Shipping, returns and payment charges. These sit inside contribution margin, not in the marketing line, but they decide how much you can afford to spend on marketing.
- Discounts. A discount used to win a first order lowers the margin of that order.
- People and agency time. A team in-house or an agency adds a monthly cost, whatever the size of the ad budget.
- Your repeat rate. A brand whose customers return can pay more to win a first order than one whose customers buy once.
How Google sets what you pay
According to Google Ads Help, read in October 2026, your bid is the most you are willing to pay for a click. The amount you actually pay is often lower. Ads are ranked in an auction by Ad Rank, and ads must meet minimum quality levels to show. The page says that even if a rival bids higher, a relevant ad can still win a higher position at a lower price. So better ads and better pages can lower what you pay for the same position.
How Meta sets what you pay
According to Meta, read in October 2026, its auction does not pick the winner on the highest bid alone. It looks at several factors, including estimated action rates and ad quality, which together measure how relevant an ad is. The page names five parts of a set-up: objective, targeting, budget, duration and creative. It does not publish a price per result. Read the page, and read your own results.
Our reading of both pages: you cannot buy a fixed price. You can only improve the things that you control, such as the offer, the creative, the page and the tracking. More brands bidding in the same weeks can also change the price, so check your cost per order daily in a sale season.
Returns, RTO and cash on delivery change your margin
In India, three things eat margin before ads do. They are returns, RTO and cash on delivery (COD).
- Returns: the buyer receives the order and sends it back. You pay for the trip back and may not be able to resell the item.
- RTO: short for return to origin. The order fails to reach the buyer and comes back to you. Amazon Shipping India's blog uses that definition. You pay the forward trip and the return trip, and you earn nothing.
- COD: the buyer pays when the parcel arrives. The buyer can refuse, and then it becomes an RTO.
According to Amazon Shipping India, 12 June 2026, about 26% of cash on delivery or non-prepaid orders come back as RTO, against under 2% of prepaid orders. Some cohorts or cities run as high as about 35%. The page credits these figures to the Shipway ShipNotes report for FY25 (the 2024-25 financial year). We did not open the Shipway report, so treat the numbers as a pointer, not as a rule for your brand.
Whatever your own rate is, put it in the sheet. Count returns and RTO as a share of orders, and put their cost in the contribution margin. Then compare COD orders and prepaid orders, each with its own margin. A COD order that comes back has cost you shipping both ways, and its ad cost is gone.
Example with round numbers, not a real brand. Say a brand ships 1,000 orders. 600 are COD and 400 are prepaid. If 150 of the COD orders come back, that is 25% of COD orders. If 10 of the prepaid orders come back, that is 2.5% of prepaid orders. The brand then sees that its blended ROAS hides a big gap between the two groups, and it tests a small prepaid offer.
Our guide on dropshipping in India shows the same margin squeeze when you do not hold stock. It affects any brand that ships to homes.
Measure it once: tracking set-up
Numbers you cannot trust are worse than no numbers. Set up these basics before you raise spend.
- GA4 events. Google Analytics 4 (GA4) lists recommended events for online sales, including view_item, add_to_cart, begin_checkout, purchase and refund (see Google Analytics Help). Send at least these five.
- Purchase details. Google's developer page shows the purchase event carrying a transaction ID, value, currency, tax, shipping and the items. It uses a new transaction ID for each purchase so that Analytics does not treat two orders as one (see Google for Developers).
- Refunds. Send the refund event when money goes back. Without it, sales look higher than they are.
- UTM tags. UTM tags are labels you add to a link so Analytics can tell where a visit came from. Google says to always set utm_source, utm_medium and utm_campaign, and that values are case sensitive, so "Google" and "google" count as two sources (see Google Analytics Help).
- One naming sheet. Write the allowed names for each source and medium in one sheet, and use only those.
- Your own order record. Check Analytics against your store's orders each week. If they differ, trust the store and fix the tracking.
If you want help setting this up, see our analytics and tracking service.
Own site, marketplace or both
A sale on your own site and a sale on a marketplace have different costs. A marketplace brings its own buyers, charges its own fees and sets its own return rules. Your own site gives you the buyer's details and more control, but you pay to bring every visitor. Read each marketplace's seller page for its current fees. They change, and we quote none here.
Keep a separate sheet for each channel, with its own contribution margin. A ₹1,000 sale on a marketplace and a ₹1,000 sale on your site do not leave the same money. Our page on D2C brands and marketplaces goes deeper.
Festive season and quick commerce
Festive sales and quick commerce apps change the picture in two ways. Many brands push at once, and orders arrive faster than you can check them. We found no official page with dated festive figures that we could open, so we state none. These steps are ours, and they work on any dates.
- Lock tracking and the naming sheet at least two weeks before the sale, then change nothing during it.
- Set a daily floor for MER and a daily ceiling for CAC from your margin sheet, and decide in advance who can pause ads.
- Check stock and delivery promises first. An ad that sells what you cannot ship adds returns and bad reviews.
- Look at contribution margin again after the return window closes. Festive orders that come back arrive after the sale ends.
- Treat each quick commerce app as its own channel with its own margin. Read the app's seller page for fees and rules.
Common mistakes, and the fix
- Judging by ROAS alone. Fix: find break-even ROAS from your own margin.
- Leaving returns and RTO out of margin. Fix: add them as a share of orders, by payment type.
- Counting only ad spend in CAC. Fix: add creators, tools and agency time to the cost of winning a customer.
- Trusting each platform's own report. Fix: compare their sales with your store's orders, and watch MER.
- Buying reach before fixing the page. Fix: improve the product page and the conversion rate, the share of visitors who buy.
- Chasing a first order at a loss with no plan for the second. Fix: track repeat rate and payback, and plan the follow-up message.
- Changing everything every week. Fix: change one thing at a time and give it enough orders to read.
When to ask for help
Ask for help when you spend on ads every month but cannot say what an order leaves you. Ask also when your platforms and your store disagree on sales, or when returns and RTO are high and you cannot tell which orders cause them. An outside team can build the margin sheet, set up tracking and plan spend against it. You still need to share your costs, because no outside team can guess them.









































