AdGrow

Book a call

Saudi Arabia6 min read

How Cash on Delivery, Mada and Tabby Break Your Saudi ROAS Reporting

Cash on delivery inflates your reported ROAS in Saudi Arabia because the purchase event fires when the order is placed, not when the money arrives. Every refused delivery is a conversion the ad platform believes in and your bank does not, and the algorithm then goes looking for more people like that buyer. The fix is to send confirmed deliveries back as a separate conversion event and optimise towards that instead.

The short version

  • COD orders report as sales at checkout. Refused parcels never get corrected.
  • The real damage is not the reporting. It is the algorithm learning from fake conversions.
  • Fix it by sending confirmed delivery back as its own conversion event.
  • BNPL raises average order value, which changes your value-based bidding targets.

This is the most under-discussed problem in Gulf e-commerce advertising, and it is worse in Saudi Arabia than almost anywhere.

Saudi payment behaviour is strongly local. Mada مدى debit dominates card payments, Apple Pay and STC Pay carry a meaningful share, buy-now-pay-later through Tabby and Tamara has been adopted very widely, and cash on delivery الدفع عند الاستلام is still a real part of the market despite years of predictions that it would disappear.

Each of those behaves differently in your ad reporting. One of them actively corrupts it.

What actually happens with a cash on delivery order

Follow the sequence.

  1. Customer clicks your Snapchat ad and places a COD order for SAR 320.
  2. Your store fires a Purchase event with a value of SAR 320. Meta records a conversion.
  3. Two days later the courier arrives. The customer does not answer, or changes their mind, or was never serious.
  4. The parcel comes back. You were never paid.
  5. Nothing corrects the conversion. Meta still believes it produced SAR 320 of revenue.

Now multiply that across a month. Your reported ROAS is a fiction, and the size of the fiction is exactly your refusal rate.

The part that costs real money

Inflated reporting is annoying. It is not the expensive bit.

The expensive bit is that the algorithm is learning from those events. You have told Meta or Snapchat that a certain kind of person, in a certain place, responding to a certain creative, is a buyer. The platform is very good at finding more people exactly like that.

If a disproportionate share of your refused deliveries come from one city, one age group or one discount-heavy creative, the algorithm will patiently go and buy you more of them. You are paying to be optimised towards your worst customers.

We have seen accounts where the campaign with the best reported ROAS had the worst delivery acceptance rate in the account. On paper it was the winner. In the bank it was the loser.

How each payment method reports

Payment method Reports at Reporting accuracy What to watch
Mada, Visa, Mastercard Payment captured Accurate Refunds still reduce your revenue but not the platform’s number
Apple Pay, STC Pay Payment captured Accurate Same as cards
Tabby, Tamara (BNPL) Order placed and approved Close to accurate Raises average order value, so value-based bidding targets shift
Cash on delivery Order placed Inflated by your refusal rate The event never gets corrected when the parcel comes back

The fix

Stop treating order placement as your optimisation event for COD orders. Treat confirmed delivery as the conversion.

Step 1. Measure your refusal rate. Split it by city, by creative, by price point and by first-time versus returning customer. Most stores running COD have never calculated this, and the first time they do is uncomfortable.

Step 2. Create a second conversion event. Something like Purchase_Confirmed, fired when the courier marks the parcel delivered and paid, not when the order is placed.

Step 3. Send it back to the platforms. This is exactly the offline conversion mechanism that retailers use for in-store sales, and the pipeline is the same one we documented step by step in how to track in-store purchases from online ads. Your delivery partner’s status webhook replaces the till.

Step 4. Optimise towards the confirmed event. Once it has enough volume, switch the campaign objective. The algorithm now hunts for people who accept parcels rather than people who click order.

Step 5. Report on both. Keep placed orders visible so you can see the gap. That gap is your refusal rate, and watching it move is how you find out which creative attracts unserious buyers.

Meta Ads Manager purchase report with an offline purchases column showing 95 in-store sales worth AED 33,913.75 matched back to ad clicks
A UAE retail account, not Saudi. The offline purchase columns on the right are conversions matched back from outside the website. A confirmed COD delivery gets sent back to the platform the same way.

Two smaller reporting traps

BNPL and average order value. Tabby and Tamara reliably increase basket size. That is good for the business and it quietly changes your value-based bidding, because the platform now sees higher-value conversions from a subset of buyers. Re-check your target return after BNPL has been live for a month, or you will be optimising against a target set for a different average order value.

VAT in your conversion value. Saudi Arabia charges 15 percent VAT and consumer prices must include it, per ZATCA. Decide whether the value you send to the ad platform includes it and then be consistent everywhere. Sending VAT-inclusive values to the ad platform and comparing them against VAT-exclusive revenue in your accounts produces a permanent unexplained gap, and people spend weeks looking for a tracking bug that does not exist. This is a cousin of the problem in why store and platform numbers never match.

What we would check first on any Saudi COD account

The delivery acceptance rate of your best-performing campaign.

If the campaign with the lowest cost per order also has the highest refusal rate, you have found the problem, and it will not appear in any ad platform report. It only shows up when you join the courier data to the campaign data, which almost nobody does.

Running cash on delivery in Saudi Arabia?

Send us your ad account and your delivery acceptance data. We will tell you what your real return is after refusals, which campaigns are attracting buyers who never pay, and how to wire confirmed deliveries back into the platforms.

Get a free COD and tracking reviewSee how we run e-commerce accounts.

Frequently asked questions

Does cash on delivery break ad tracking?

It breaks the accuracy of it. Your store fires a purchase event when the order is placed, but the money only arrives if the customer accepts the parcel. Every refused delivery is a conversion the ad platform believes in and your bank account does not.

What COD refusal rate should I expect in Saudi Arabia?

It varies enormously by category, price point and city, so measure your own rather than trusting a benchmark. The important step is to measure it at all, because most stores running COD have never calculated it and are optimising against inflated numbers.

How do I fix COD in my ad reporting?

Send the confirmed delivery back to the ad platform as a separate conversion event, and optimise towards that rather than towards order placement. It is the same offline conversion mechanism retailers use for in-store sales.

Do Tabby and Tamara orders report differently?

They usually report at the point of purchase like any card order, so the reporting is closer to reality than COD. The thing to watch is that BNPL often raises average order value, which changes your value-based bidding targets.

Should I stop offering cash on delivery?

Not unless your refusal rate makes it unprofitable. COD is still a meaningful share of Saudi e-commerce and removing it costs you real customers. Measure it, price it in, and report it accurately instead of pretending it behaves like a card payment.

Does Mada affect anything in my ad account?

Not directly, but a checkout that does not accept Mada properly will lose a large share of Saudi buyers at the last step. That shows up in your ad account as a poor conversion rate and gets blamed on the campaigns.

Sijda KhanMarket and platform research, AdGrow.

Sijda covers the parts of Gulf advertising that sit outside the ad platforms: e-commerce infrastructure, payment behaviour, regional regulation and the channels most agencies ignore. She works across the UAE and Saudi markets. More about the agency.

Scroll to Top