Skip to content

Facebook ads for cash on delivery: reading Meta results

· 6 min read

With Facebook ads for cash on delivery, Meta counts a purchase when the order is placed, but you are only paid when it is delivered. Cancelled, unreachable and refused orders all sit inside Meta's ROAS. Read cost per delivered order and delivered ROAS instead, from your store's own order statuses.

Why is Meta's ROAS higher than what I banked?

Cash on delivery (COD) means the customer pays the courier when the parcel arrives, not at checkout. It is the default way to buy online in Morocco and much of MENA. For ads, it moves the moment of the sale: the order is placed today, confirmed by phone tomorrow, shipped, and paid days later, if at all.

Meta sees the first moment only. Your store's pixel fires a purchase event on the thank-you page. YouCan, for example, describes its Meta pixel integration as tracking customer actions such as "page views, products added to the cart, and completed purchases" (YouCan Help Center, checked on 2026-10-04). Meta then credits that purchase to your ad if it happened within your attribution setting, by default up to 7 days after a click or 1 day after a view (Meta Business Help Center, checked on 2026-10-04).

So Meta's ROAS for a COD store is booked revenue divided by spend. It includes every order that is later cancelled on the confirmation call, never answers the phone, gets refused at the door or comes back. That is why it reads well while the bank account doesn't.

What are the stages of a COD order?

A COD funnel is the path an order takes from placed to paid. These are the stages we read from your store's order statuses, with the rate people usually quote for each step.

The cash-on-delivery funnel
StageWhat happenedRate to watch
OrderedThe customer placed the order (Meta's purchase)–
ConfirmedYour team reached the customer and they confirmedConfirmation rate = confirmed ÷ orders
CancelledCancelled at confirmation, or by the sellerCancellation rate = cancelled ÷ orders
ShippedHanded to the courierShipped rate = shipped ÷ confirmed
DeliveredThe customer paid the courierDelivery rate = delivered ÷ shipped
ReturnedRefused at the door or sent backReturn rate = returned ÷ shipped

Sellers add their own statuses, such as "no answer" or "retour". The stage of an order is decided from the store's documented statuses plus common French and English custom words. Any status we can't place is listed, so you can say what it means once and the numbers include it from then on.

What is delivered ROAS?

Delivered ROAS is the revenue of delivered orders divided by ad spend. Cost per delivered order is ad spend divided by the number of delivered orders. Together they answer the only question a COD seller is paid on: what did each order that turned into cash cost me in ads?

Formula

Delivered ROAS = delivered revenue ÷ ad spend

Formula

Cost per delivered order = ad spend ÷ delivered ordersCompare it with your margin per order after product, shipping and confirmation costs.

If your store sells in dirhams and your ads spend in dollars, delivered ROAS needs an exchange rate. Use the rate you actually pay; we never guess one, and the number stays blank until you give it. To try your own figures, put delivered revenue (not booked revenue) into the ROAS calculator.

How big is the gap? A worked example

The numbers below are made up to show the arithmetic, not a benchmark. Your own rates are in your store.

Example: one week, $500 of ad spend, 100 orders at 300 MAD each (10 MAD = $1 in this example)
StageOrdersAd cost per order
Ordered100$5.00
Confirmed70$7.14
Shipped65$7.69
Delivered50$10.00

Meta would report 100 purchases worth 30,000 MAD, a ROAS of 6.00x. Only 50 orders turned into cash: 15,000 MAD, a delivered ROAS of 3.00x. The cost of a sale doubled from $5 to $10 between the dashboard and the bank. Neither number is wrong; they answer different questions.

How do I get Meta closer to delivered orders?

  1. Compare settled weeks. Orders from the last few days are still being confirmed or delivered, so their delivered numbers will rise. Judge a campaign on a week that has finished delivering, not on yesterday.
  2. Read the campaign, then the funnel. Meta still tells you which campaign brought the orders. Your store tells you which orders became cash. A campaign with cheap orders and a weak confirmation rate is often buying the wrong people.
  3. Send better signals. Meta's Conversions API connects "website events, app events, business messaging events and offline conversions" from your systems to Meta (Meta for Developers, checked on 2026-10-04). Some COD sellers use it to report confirmed or delivered orders, so the algorithm learns from them. YouCan's Conversions API app lets you choose whether to track by Purchase or Lead (YouCan Help Center, checked on 2026-10-04).
  4. Avoid double counting. If the pixel and the Conversions API both send the same purchase, Meta deduplicates it only when the event name and event ID match and the events arrive within 48 hours of each other (Meta for Developers, checked on 2026-10-04).
  5. Set the right timezone. Days only line up when your store's days and your ad account's days are the same. For Morocco, that is Africa/Casablanca.

In Tempomat, a connected YouCan store gives you the funnel and the cost per delivered order next to the spend of every ad platform the brand has (Meta, TikTok and Google Ads). For Lightfunnels, it separates booked revenue from collected revenue. Store orders count every channel, organic ones included, so read these as costs per store order, not per ad click. If your ROAS fell and you want to know why, the five-question check works the same way for COD, with delivered orders in place of purchases.

Frequently asked questions

Why does Meta show more purchases than my delivered orders?

Meta counts a purchase when the order is placed, through your pixel on the thank-you page. A cash-on-delivery order can still be cancelled at confirmation, go unanswered, be refused at the door or come back, and none of that reaches Meta's report.

What is a good delivery rate for COD in Morocco?

There is no single right number; it depends on the product, the price, the city and the courier. Track your own confirmation rate and delivery rate week by week and compare campaigns against each other rather than against a benchmark.

How do I calculate delivered ROAS?

Add up the revenue of the orders that were delivered and paid in a period, convert it to your ad currency if needed, and divide it by the ad spend for the same period. Use a period that has finished delivering.

Should I optimize my Meta campaigns for purchase or lead on a COD store?

Purchase is the usual choice because it follows the order. Some sellers send confirmed or delivered orders to Meta with the Conversions API so the algorithm learns from better buyers. Test one change at a time and read cost per delivered order.

Does this work for Lightfunnels stores?

Yes. For Lightfunnels, Tempomat shows booked revenue next to collected revenue and the pending cash-on-delivery amount, with all the brand's ad spend next to them.

See what your delivered orders cost

Connect your Meta ad account and your YouCan or Lightfunnels store, then ask for last week's cost per delivered order. Every integration is on the features page.

Start your 7-day free trial