Every media buyer running a cash-on-delivery brand knows the moment. Ads Manager shows a 3.2x ROAS on the week. The accountant shows a loss. Both are telling the truth about different things.
Meta counts an order when it is placed. A cash-on-delivery brand gets paid when the courier knocks and the door opens — and in Tunisia, Morocco or Egypt, a meaningful share of doors do not open. The gap between "placed" and "paid" is not noise. It is the number your creative strategy should be built on.
Why Meta ROAS lies to a COD brand
Attributed revenue is the sum of orders placed. Between that line and your bank account sit:
- refusals at the door, and orders cancelled by phone before shipping;
- returns after delivery, with the courier fee paid twice;
- delivery and packaging cost, paid on every parcel, including the refused ones;
- cost of goods, which the ROAS ratio never sees.
The uncomfortable part: the creative that "converts" best in Ads Manager can be the one that attracts the most refusers. A hook that oversells, an anchor price that makes the real one feel like a trick, a "free" framing with a delivery fee at the door — all of them push the placed-order rate up and the delivered rate down. Meta rewards the first; your margin pays for the second.
The four numbers to run creative on
| Number | What it is | Why it beats ROAS | |---|---|---| | Delivered revenue | Revenue from orders that were delivered and paid | It is the only revenue you have | | Refusal rate | Refused + cancelled orders ÷ placed orders, per creative or campaign | It tells you which ads attract people who will not open the door | | Real CAC | Ad spend ÷ delivered orders | Spend divided by the customers you actually got | | Contribution after delivery | Delivered revenue − COGS − delivery − packaging − refused-parcel cost | What one creative leaves on the table, per order |
If you track a fifth, make it payback: how many days until a creative's delivered contribution covers its spend. For a COD brand that ships in three days and collects in ten, payback is what decides how hard you can scale.
What changes in your creative decisions
Once you rank creatives by real CAC instead of ROAS, three things happen.
The hook attracts, the offer converts, the promise decides whether the door opens. A high placed-order rate with a high refusal rate is not a targeting problem; it is a promise problem. Look at the price anchor, the delivery time the ad implies, and what "free" meant in the creative. Fix the promise before you kill the hook.
Some winners lose. An ad at the top of the ROAS leaderboard can fall to the middle once refusals and delivery cost are in. Scale on delivered CAC, not on the Ads Manager column.
You test offers, not only hooks. Most COD testing plans iterate hooks and formats. The refusal rate moves when you iterate the offer: the bundle, the price shown, the delivery promise, the proof that the product is real. Give those their own ad families.
A weekly loop for a COD brand
- Monday: pull delivered orders by creative for the last 14 days. This needs order truth from the store, not the pixel.
- Rank creatives by real CAC, then check the refusal rate of the top five.
- Decide per creative: kill, iterate the promise, or scale.
- Write the next three briefs with the refusal reason in the brief — the courier's notes are the best creative research you own.
- Friday: compare delivered contribution to spend for the week. That is the number to tell the founder.
How Creativity computes it — and what it refuses to do
Metrics reads your orders from the store (Converty today) and your spend from Meta, and computes the P&L, the unit economics and the cash-on-delivery funnel — placed, confirmed, delivered, paid — from stored rows. Friday narrates those numbers; it never computes its own.
Two refusals are built in on purpose. Ad spend in US dollars against orders in Tunisian dinar is shown as a currency mismatch, never converted at an implied rate that would make the margin look better or worse than it is. And expenses you have not entered — salaries, tools — stay dark until you enter them. A margin built on invented costs is not a margin.
The checklist
- Report on delivered revenue, not placed.
- Rank creatives by real CAC; read the refusal rate before scaling.
- Treat a high refusal rate as a promise problem and iterate the offer.
- Keep spend and orders in their own currencies until you decide the rate yourself.
- Tell the founder the contribution after delivery, weekly, in one number.
The brands that grow on cash on delivery are not the ones with the best ROAS. They are the ones whose creative team knows which door opens.