In Egypt and many Arab markets, cash on delivery (COD) is the most common way to pay online. That means an "order" in Ads Manager isn't a sale yet: it may never be confirmed, the customer may refuse it at the door, or it may come back as a return. The result: a campaign that looks profitable in Ads Manager and loses money in the bank account.
Cash on delivery Facebook ads: the real order funnel
| Stage | What happens | Illustrative example |
|---|---|---|
| Order placed | Shows in Ads Manager as a purchase | 100 orders |
| Order confirmed | The customer answered the confirmation call or message | 80 orders (80% confirmation) |
| Order delivered | The customer received it and paid | 64 orders (80% of confirmed) |
| After returns | Orders not sent back | 60 orders |
In this example, out of every 100 "purchases" in Ads Manager, only 60 became real sales. If Ads Manager shows $6 per order, the real cost per kept order is $10.
The formulas to rely on
Real cost per order = spend ÷ orders actually delivered and kept
Real ROAS = value of delivered orders ÷ spend
Compare these with a break-even point calculated on delivered orders — and add shipping costs for refused orders, since you often pay delivery (and sometimes the return trip) even when the customer doesn't accept: How to Calculate ROAS and Break-Even ROAS: When Is a Facebook Campaign Really Profitable?.
What raises confirmation and delivery rates
- Fast confirmation: a call or message within hours of the order, not two days later.
- A clear ad: final price, shipping fees and delivery time spelled out, so there's no surprise at the door.
- Fast delivery: the longer it takes, the more likely the customer changes their mind.
- Real product photos: a gap between the ad and the actual product is one of the biggest causes of refusals and returns.
- A pre-delivery reminder: a message on delivery day reminds the customer and reduces refusals.
Calculate break-even with real numbers
For cash-on-delivery stores, work out profit per delivered order after all costs, including the cost of orders that didn't complete:
| Item | Illustrative example |
|---|---|
| Selling price | $45 |
| Product and packaging | $20 |
| Shipping for the delivered order | $5 |
| Share of return shipping for refused orders | $1.50 |
| Profit before ads per delivered order | $18.50 |
So the maximum ad cost per delivered order is $18.50. If 60% of placed orders are actually delivered, the maximum acceptable cost per "purchase" in Ads Manager is $18.50 × 0.6 ≈ $11.10. That's the number to watch in your campaigns.
Questions to ask the client every month
- How many orders were confirmed out of all orders placed?
- How many were actually delivered, and how many were refused at the door?
- How many were returned after delivery, and why?
- Did the courier or delivery time change?
Any shift in these rates changes the verdict on every campaign, even if Ads Manager numbers stay exactly the same.
When the delivery rate suddenly drops
If the delivery rate drops suddenly, the cause usually isn't the ads: slower shipping, a quality problem with a batch, a price change, or slow confirmation. Review these with the client before touching campaigns — cutting spend won't fix a problem that happens after the order.
Keeping these monthly numbers alongside your ad reports also protects you: when profitability dips, you can show whether the cause sits in the ads or further down the funnel.
Campaigns differ in order quality
Not all campaigns confirm equally. Sometimes one campaign brings cheap orders with a poor confirmation rate, while another, slightly pricier, brings serious orders. So:
- Ask the client to record each order's source (campaign or ad) where possible.
- Calculate confirmation and delivery rates per campaign each month.
- Compare campaigns on cost per delivered order, not Ads Manager cost per purchase.
- If a campaign, audience or placement consistently brings weak orders, cut its budget even if it looks cheap.
Sending confirmed orders back to Meta
Some stores send a custom event when an order is confirmed or delivered via Conversions API, and optimize campaigns for it instead of the initial purchase. That teaches the algorithm to find people who actually accept deliveries, not just people who tap "order". It takes technical setup, but it can noticeably improve order quality: Meta Pixel and Conversions API: How to Make Sure Your Sales Are Tracked Correctly.
Day-to-day monitoring
In Raqeeb Ads you follow cost per purchase and ROAS as Meta records them for each campaign every day, and see which campaigns are slipping versus the previous period. Alongside it, keep a simple sheet of the client's confirmation and delivery rates to turn Ads Manager figures into real ones. You can add a "Delivered orders" column to the Free Facebook Ads Report Template (Excel Download) so the real cost appears in client reports.
A free tool that helps here: The profit margin calculator calculates net profit per order after ads, shipping and fees, and the right price for your target margin.