Sign inBook a Call
Insights

How to Reduce RTO for D2C Brands Running Meta Ads in India

RTO is not only a courier problem. It starts with which orders your ads bring in and what Meta learns from them. Here is how to fix it end to end.

By the Monastic Media teamUpdated 30 Oct 20267 min read

Why Meta ads and RTO are tied together

On a COD-heavy store, the Meta pixel fires a Purchase the moment an order is placed. Meta does not know if that parcel is later refused, returned or never picked up. So it counts the order as a win and goes looking for more people like that buyer.

A COD order costs the buyer nothing to place. Impulse buyers, people who order the same thing from three stores, and fake orders all look like good purchases to the algorithm. If those people convert cheaply, Meta finds more of them. Your dashboard ROAS goes up while delivered revenue goes down.

Each RTO also costs you twice: forward shipping, return shipping, packaging, and stock that sits in transit for days. That is why the number to manage is cost per delivered order, not cost per purchase in Ads Manager.

Step 1: Measure RTO by ad, not just for the whole store

Most brands know their overall RTO. Very few know which campaign, ad or audience is causing it. Put UTM tags on every ad (campaign, ad set and ad name), make sure they are saved on each store order, then join orders with the final courier status every week.

Once you have that, cut the data like this:

  • Wait for final status before judging an ad. COD orders take days to settle.
  • Look at delivered ROAS per ad next to Ads Manager ROAS. The gap tells you which ads to cut.
CutWhat it usually shows
Campaign and adSome hooks and offers pull curious clickers, not buyers
Pincode, city and stateA small set of areas causes a large share of returns
Payment methodCOD orders return far more often than prepaid
Order valueVery low and very high COD baskets behave differently
New vs repeat buyerRepeat buyers rarely refuse a parcel
Time of orderLate night impulse orders get refused more often

Step 2: Stop bad orders before they ship

Every order you stop before dispatch is an RTO you never pay for. The window that matters is the first hour after the order is placed, while the buyer still remembers it.

  • WhatsApp confirmation for every COD order. A button message with Confirm and Cancel. Hold unconfirmed orders, then follow up with a call.
  • OTP on COD at checkout. It filters out wrong numbers and fake orders without adding much friction for genuine buyers.
  • Address checks. Validate the pincode, ask for a landmark, and flag addresses that are too short or obviously incomplete.
  • Duplicate and fraud flags. Same phone with many open orders, or a phone number with past refusals, goes to manual review.
  • Cancel honestly. A cancelled order is cheaper than a returned one. Do not ship orders just to keep the order count high.

Step 3: Move buyers from COD to prepaid

Prepaid buyers have already committed, so they almost never refuse a parcel. You do not have to remove COD to get there. You only have to make prepaid the easier choice.

  • Partial COD. Take a small token amount over UPI to book the order, and collect the rest on delivery. Serious buyers pay it. Fake orders drop off.
  • A prepaid reason that is not only a discount. Faster dispatch, priority packing or a small free add-on works well and protects margin.
  • A COD-to-prepaid nudge after the order. Send a UPI payment link on WhatsApp with the confirmation message.
  • Limit COD where it hurts. Turn off full COD for your worst pincodes and for high basket values, and offer partial COD there instead.
  • Show the payment options clearly on the product page so prepaid does not feel like a surprise at checkout.

Step 4: Save parcels that fail on the first attempt

A large share of RTO is not refusal. It is the buyer not being home, a phone that was switched off, or a courier who marked 'customer not available' without calling. This is NDR (non-delivery report) territory, and most of it can be saved.

  • Message the buyer on WhatsApp the same day a delivery attempt fails, and ask for a new date or a corrected address.
  • Push reattempts through your shipping aggregator quickly. Every extra day lowers the chance of delivery.
  • Dispatch fast. The longer a COD parcel takes, the more time the buyer has to change their mind.
  • Send tracking updates with an expected delivery date so the buyer keeps cash ready.
  • Compare couriers by pincode. Route areas to the courier that actually delivers there.

Step 5: Teach Meta which orders are real

This is where RTO work pays back into your ad account. If Meta only learns from orders that are likely to be delivered, it starts finding more buyers like them.

Set up the Conversions API first, and keep Event Match Quality high so Meta can match these events to real people. Then choose one of these options:

  • Meta's own guidance is around 50 optimisation events a week per ad set. If confirmed orders alone are too few, keep optimising for Purchase and use confirmed orders for reporting until volume grows.
  • Do not change the optimisation event on a live winning ad set. Build a new campaign so you do not reset learning on what already works.
OptionHow it worksTrade-off
Purchase for prepaid and confirmed COD onlyFire Purchase from the server after payment or confirmation, not on the thank you pageShort delay, slightly fewer events
Separate confirmed order eventKeep Purchase as is, add a custom event for confirmed orders and optimise for it once volume allowsNeeds enough weekly events to leave the learning phase
Lower value for COD ordersSend full value for prepaid and a reduced value for CODWorks best with value-based bidding

Step 6: Run ads that attract buyers, not browsers

Creative decides who clicks. An ad that hides the price, promises a deal that is not on the page, or uses a shock hook with no product brings in people who order on impulse and refuse at the door.

  • Show the price or the offer clearly in the ad and on the landing page.
  • Demo the product honestly: size, colour, material, what is in the box. Surprises at delivery become refusals.
  • Do not judge ads only on cost per purchase. The cheapest ad is often the one with the worst delivery rate.
  • Exclude the states or cities your data shows are worst, where it does not cut too much scale.
  • Retarget past prepaid buyers and exclude known refusers from your custom audiences.

A weekly RTO routine

RTO drops when someone owns it every week, not when an app is installed once. A simple routine:

DayCheck
MondayDelivered ROAS and RTO by campaign and ad for orders that settled last week
TuesdayPincodes and cities to add to COD limits or ad exclusions
WednesdayConfirmation rate on WhatsApp and calls, and unconfirmed orders still on hold
ThursdayNDR list: what was saved, what was lost, and which courier caused it
FridayPause ads with high RTO, brief new creative that shows the product more honestly

How Monastic Media helps

One in-house team in Surat scripts, shoots and edits the ads videos and runs the Meta and Google campaigns they go into, so the people who see the numbers make the next ad. See our performance marketing

Read next

Questions

What is RTO in ecommerce?

RTO means return to origin. The parcel goes back to your warehouse because the buyer refused it, was not reachable, or gave a wrong address. You pay shipping both ways and earn nothing.

Should I stop offering COD to reduce RTO?

Usually no. Many Indian buyers will not order without COD, so removing it can cut sales more than it saves. Use partial COD, prepaid nudges and COD limits on risky pincodes instead.

Why does my Meta ROAS look good but my bank account does not?

Meta counts every placed order as a purchase, including COD orders that are later returned. Check delivered ROAS per ad by joining your store orders with courier status.

Can Meta learn to avoid customers who return orders?

Yes, partly. If you send Purchase only for prepaid and confirmed COD orders through the Conversions API, Meta optimises toward buyers who are more likely to take delivery.

How soon will RTO come down after these changes?

Order confirmation and prepaid nudges show results within a few weeks because they act before dispatch. Changes to Meta signals take longer, since the campaign needs time to learn from the new events.

Naaptol
“MM helped us scale from 0 to ₹2.6 CR/month in just 6 months with clear communication and industry expertise!”
Rakesh Naidu GM @ Naaptol

Ready to work with one team?

Book a call. If we can help you hit your goals, we will tell you how; if we cannot, we will tell you that too.