RTO by Campaign: Find the Ads That Bring Orders Nobody Accepts
Some ad campaigns bring far more returned COD orders than others. How to measure RTO by campaign, what it does to real ROAS, and how to fix the worst ones.
On this page
RTO by campaign is the share of each ad campaign's orders that come back undelivered. It varies a lot: broad prospecting that attracts impulse cash-on-delivery buyers can return far more than retargeting or search. Ad platforms count those orders as sales, so a campaign with a high RTO rate looks better in Ads Manager than it is. Join your Shopify orders, their campaign tags and their delivery outcomes to see each campaign's real return.
Key takeaways
- Ad platforms count purchases when the order is placed; returned COD orders stay counted.
- RTO differs by campaign, audience, creative and offer, so one account-wide rate hides the worst offenders.
- Measure it by joining UTM-tagged Shopify orders with delivery outcomes from your shipping platform.
- Judge campaigns on revenue from kept orders and profit, not on platform ROAS.
- Fix high-RTO campaigns with confirmation, partial COD, creative and targeting changes before cutting them.
Why RTO differs by campaign
Different campaigns reach different buyers. A broad prospecting ad with a bold discount reaches many people who have never heard of you and orders on impulse with cash on delivery. A retargeting ad reaches people who already browsed your products. A Google search ad reaches people actively looking for what you sell. These buyers accept parcels at very different rates.
Creative and offer matter too. "Pay on delivery, no risk" messaging, aggressive discounts and vague product images tend to bring orders that are easy to place and easy to refuse. Across the industry, COD returns to origin far more often than prepaid: Shipway's FY25 data puts COD at about 26% RTO against under 2% for prepaid (Shipway's FY25 RTO findings). Campaigns that skew toward impulse COD buyers inherit that gap.
What it does to your numbers
| Campaign A (search) | Campaign B (broad prospecting) | |
|---|---|---|
| Ad spend | ₹50,000 | ₹50,000 |
| Revenue in Ads Manager | ₹1,75,000 | ₹1,75,000 |
| Platform ROAS | 3.5x | 3.5x |
| Share of orders COD | 40% | 80% |
| RTO rate | 8% | 30% |
| Revenue kept | ₹1,61,000 | ₹1,22,500 |
| Real ROAS on kept orders | 3.2x | 2.45x |
Both campaigns look identical in Ads Manager. After returns, A is comfortably profitable and B may be losing money, once you add the shipping both ways on 30% of its orders. True ROAS after RTO and COD shows the full calculation.

How to measure RTO by campaign
- Tag every ad. Use UTM parameters on all Meta and Google ad links, so each Shopify order records its campaign. The UTM guide has the setup.
- Export orders with campaign. From Shopify, export orders with order number, payment method and the UTM campaign or landing source.
- Export shipment outcomes. From your shipping platform, such as Shiprocket, export shipments with order number and final status: delivered, RTO or in transit.
- Join on order number. Match each order to its outcome. Keep only orders old enough to have settled, usually at least three weeks.
- Calculate per campaign. RTO orders ÷ (delivered + RTO orders), and revenue kept = revenue from delivered orders.
- Compare with spend. Real ROAS = revenue kept ÷ campaign spend.

What to do with high-RTO campaigns
Don't switch them off straight away. A campaign that brings many orders may still be worth keeping if you can raise its acceptance rate:
- Confirm its COD orders. Call or message buyers before dispatch; COD order confirmation shows how.
- Ask for an advance. Partial COD filters out the least serious buyers.
- Change the creative. Show the product clearly, with real price and delivery time. Remove "no risk" messaging that invites casual orders.
- Tighten the offer. Huge discounts attract bargain hunters who change their mind.
- Adjust targeting. Exclude regions with high RTO, or shift budget toward audiences with better acceptance.
Then re-measure. If a campaign's real ROAS still sits below break-even after these changes, move its budget to campaigns that keep their orders.
Going deeper: ad sets and creatives
The same join works at ad set and ad level if your UTMs carry those names, for example with the ad name in utm_content. Creative is often the real cause: an ad that leads with a huge discount or an exaggerated claim brings curious clicks and impulse COD orders. Audience matters too. Broad prospecting in regions with high RTO, or lookalikes built from all purchasers including those who refused delivery, carry the problem forward.
Small numbers are the risk at this level. An ad with 40 orders and 12 RTOs looks alarming, but a few unlucky deliveries can swing it. Wait for at least 100 settled orders per ad or ad set before acting, or group similar ads together. Act first where the numbers are large and the gap is clear.
Common mistakes
Measuring too early. Orders from the last two weeks are still in transit; including them makes every campaign look better than it is.
Using platform-attributed orders. Meta and Google may both claim the same order. Use Shopify orders with UTM tags so each order belongs to one campaign.
Ignoring prepaid share. A campaign with high RTO may simply have a high COD share. Look at RTO for COD orders separately to see whether the problem is the buyers or the payment mix.
Cutting instead of fixing. Some high-volume campaigns become profitable with confirmation and better creative. Test fixes before cutting.
Make it a weekly habit
RTO by campaign changes as creatives, offers and audiences change. A campaign that was fine last month can start bringing poor orders after a new discount ad. Review it weekly on settled orders, alongside spend and kept revenue, and act on campaigns whose real ROAS falls below your break-even.
Tera Ads shows profit after returns from your Shopify orders, RTO from Shiprocket and ad spend from Meta Ads and Google Ads, with every campaign from both platforms in one table and each RTO counted in the month the order was placed. It is free for one business.
Frequently asked questions
Does Meta know when an order is returned?
Not by default. Meta records the purchase when it happens and doesn't learn that a COD parcel was refused unless you send that information. Its reported ROAS includes returned orders.
Why do some campaigns have higher RTO?
They reach buyers more likely to order on impulse with cash on delivery, often through broad targeting, bold discounts or "no risk" messaging. Search and retargeting buyers usually accept more often.
How long should I wait before measuring a campaign's RTO?
At least three weeks after the orders were placed, so most shipments have been delivered or returned.
Should I turn off a campaign with high RTO?
First try confirmation, partial COD, clearer creative and tighter targeting. If its real ROAS on kept orders stays below break-even, move the budget elsewhere.
Can I measure RTO by ad or creative?
Yes, if you include the ad name in your UTM parameters, such as utm_content. You'll need enough orders per ad for the rate to be meaningful.