NEW CUSTOMER ACQUISITION

How to stop Meta and Google from sending your RTO prone customers

Your campaigns are optimized for “Purchase”. But Meta or Google doesn’t know if that order was delivered or sent back. So it keeps finding customers who click, checkout, and return every time

25-30%

COD orders end up as RTO in Indian D2C

60-65%

Indian ecommerce orders are COD; the single biggest profit leak

THE CORE PROBLEM

RTO isn’t a logistics problem. It’s a targeting problem

Algorithm optimized for exactly what you asked: a purchase event. Whether the order was delivered or returned? It has no idea. So it keeps sending you the same RTO-prone customers, campaign after campaign.

“Your ROAS is a lie. Your CAC is a lie. Your CPP is a lie. Not because the platform is broken because you never told it what a real conversion looks like.”

Why do your current RTO fixes fail miserably?

Exclusions don't train the algorithm

You're only blocking known RTO customers. Meta still keeps finding new RTO-prone users because the model hasn't learned who not to optimize for.

Lookalikes inherit the same problem

If your seed audience includes RTO buyers, your lookalikes will find more people like them. Bad signal in, bad audience out.

Platform CAPI stops at purchase

Shopify, WooCommerce, BigCommerce, etc. send "Purchase" as the final signal. They don't tell Meta whether the order was delivered or returned.

Repeat RTO users slip through without ID resolution

The same customer can return multiple times using different emails, phones, or devices. Without ID resolution, they keep looking like new buyers.

THE SOLUTION

Train Algorithm on delivered orders. Ads will find more delivered orders.

Training the algorithm means telling it to find customers who actually pay and receive their orders, not someone who clicks, COD’s, and cancels at the door.

Use Signal Engineering for RTO reduction:

  1. Send prepaid purchase events, return order, COD purchase, and order delivered by splitting the conversion events.

    Pixel project Overview tab showing seven Conversions API events: existing_customer, ci_purchase, prepaid_order, return_order, ci_new_customer_purchase, cod_order, and ci_repeat_purchase — all Active with match quality scores between 8.7 and 9.3 out of 10.
  2. Don't just rely on the generic purchase event. Start measuring the campaigns on which are giving high returns and COD.

    Google Ads Conversion action table listing prepaid_order, return_order, and cod_order as Primary conversion sources with Server event source type and all-conversions values.
  3. Start optimizing the campaign for prepaid purchase or any relevant business goal to train the ad algorithm.

    Google Ads conversion event picker showing custom events prepaid_order, return_order, cod_order alongside default Purchase, Removed from cart, Search, and View content events — all tagged as Conversions API.

How clean RTO signals help measure and optimize for real conversions

Once signals are engineered server-side, every connected platform reports on them natively. No separate dashboard. No manual reconciliation. The split you’ve been trying to reverse-engineer in spreadsheets is now a column in every tool your team opens.

Campaign performance table with cl_new_customer_purchase, cl_repeat_purchase, cl_purchase_high_aov, cl_purchase_low_aov, and cl_purchase_mid_aov columns across 11 campaign rows. Total results: 346 / 273 / 72 / 29 / 173 / 126.
Google Ads-style campaign list showing per-campaign avg. cost, cost, CL new-customer purchases, and ROAS by Conv Time. Total row 'All but removed campaigns in your customer list' highlighted with +24.02% lift in avg cost, +117.78% lift on CL new-customer purchases.

CLIENT RESULTS

Real Results. Real Signals.

Real results from brands using the same signal infrastructure you can deploy for your clients.

86% Smars — Case Study

Smars ditched Shopify CAPI, 86% of their purchases are now first-time buyers — at 14% lower CPP

Read full story
19% Bartos Nutrition — Case Study

How Bartos Nutrition Cut New Customer Acquisition Cost by 19% Using First-Party Data Signals

Read full story
CustomerLabs 1PD Ops Platform made server-side tracking, offline conversions, and CAPI integration seamless, significantly improving our data quality and ad performance. Setup was incredibly fast15 minutes to get started, integrations within an hour, and just a day for data layer implementation. With strong customer support and wide integrations across CRM and ad platforms, it’s an easy 10/10 recommendation.
Zain M.
Zain M. Head of Performance & SEO

FAQ

Common questions about RTO signal engineering

The questions revenue teams ask before switching from Shopify CAPI to a delivered-orders signal.

How does CustomerLabs know an order was actually delivered?

CustomerLabs ingests delivery confirmation events from your ecommerce platform (Shopify, WooCommerce, BigCommerce, Magento, custom storefront), one-click checkout tools (Shopflo, GoKwik, Razorpay Magic Checkout, Simpl), your shipping and logistics layer (Shiprocket, Delhivery, BlueDart), your CRM, or a direct webhook. Once the courier confirms delivery and your platform updates the order status, CustomerLabs fires order_delivered to Meta and Google with the original ad attribution attached. The feedback loop closes at delivery, not checkout.

How does CustomerLabs know an order was actually delivered?

CustomerLabs ingests delivery confirmation events from your ecommerce platform (Shopify, WooCommerce, BigCommerce, Magento, custom storefront), one-click checkout tools (Shopflo, GoKwik, Razorpay Magic Checkout, Simpl), your shipping and logistics layer (Shiprocket, Delhivery, BlueDart), your CRM, or a direct webhook. Once the courier confirms delivery and your platform updates the order status, CustomerLabs fires order_delivered to Meta and Google with the original ad attribution attached. The feedback loop closes at delivery, not checkout.

READY TO MOVE?

See which signals your ad platforms are missing

In 30 minutes, we'll map which signals apply to your business, show you what your campaigns are currently training on, and identify the gaps. No commitment required.