Performance marketing in the GCC has a measurement problem. Your dashboard says one thing. Your bank account says another. A prettier dashboard won't fix it. Reporting two numbers, every single time, does.
Platform-reported ROAS overstates reality, sometimes dramatically. Nowhere is that truer than in cash-on-delivery markets, where an order counted at checkout can still be refused at the door. Most agencies show you the figure that makes them look good: the gross, platform-attributed number. The honest fix is the two-number rule. Report what the platform claims AND the real money you collected. This hub explains why the gap exists, shows it on real client work, and points you to three deep-dives on closing it.
The market is growing, and getting harder to measure honestly
The money is pouring in. Middle East digital ad spend is projected to grow from roughly $10.1B in 2025 to about $18.5B by 2029, nearly doubling in four years. At the same time, GCC organizations are wiring AI into how they operate: McKinsey reports organizational AI adoption across the region rising from about 62% to 84%.
More budget. More automation. And, paradoxically, more ways for reporting to drift from reality. When spend scales and dashboards run on autopilot, the gap between the number on screen and the money in the bank scales right along with it. Growth makes honest measurement harder, not easier, because there's more to misread and more incentive to show the flattering figure.
The two-number rule
Here's the rule, and it's the whole philosophy: every report shows two figures. The platform-reported number (what Meta, Google or TikTok attribute to the campaign) sits next to the real, collected number: revenue that actually landed and stayed after returns, refunds and failed deliveries. You never see the flattering one alone.
In cash-on-delivery markets the gap between gross and delivered can be large. An order is "converted" the moment someone taps buy, but in COD a share of those orders are refused at the door, returned, or never collected. The platform never claws the conversion back. So gross ROAS can look spectacular while collected ROAS tells a soberer story.
I have watched this play out in cash-on-delivery markets. One anonymised COD account showed 4.1x gross ROAS against a 1.9x delivered ROAS, with a 33% COD return rate. That's the kind of gap honest reporting surfaces immediately and a single-number dashboard hides for months. Knowing the gap is what lets you act on it: kill the offers that look great gross and bleed on delivery, and double down on the ones that actually collect.
Start here
This hub is the map; these two posts are the territory. Read them in order: how to read your real ROAS, then the report that ties it together.
- Facebook ads: your real ROAS: how to find the number you can actually spend, behind Meta's reported figure.
- The two-number report: why platform ROAS and banked revenue disagree: the exact reporting format, and why a single number always flatters.
What to ask before you sign with anyone
Whether you hire me or someone else, the questions are the same. What business outcome will the agency optimise, and which source confirms it? How will platform and confirmed results be reported side by side, every time, not just in the pitch deck? Who actually works the account week to week, and what happens when the automation is wrong? How will Arabic and English workflows differ, not just in language but in who reviews each one? And who owns the accounts, data, audiences, creative, and workflows after the engagement ends?
Watch for the same red flags in every proposal: a guaranteed ROAS quoted without access to your margins or fulfilment data, a case study that never defines what "revenue" means, an impressive senior pitch handed off to an unnamed delivery team, a dashboard that cannot connect to your CRM or order status, and "AI" used as the reason nobody can explain a decision. None of that is exotic. It is just what a proposal looks like when it is selling activity instead of a result.
Want this measured properly
If you'd rather have the plumbing built than read about it, that's the day job. Marketing Automation wires the two-number rule into your reporting, tying ad spend through to delivered, collected revenue so gross and net sit side by side automatically, not in a month-end spreadsheet. Need just one channel managed well rather than the full reconciliation build? Google Ads Management and Meta Ads Management cover single-platform execution on their own. Hiring closer to home? I work remotely across the GCC and US. Start from the market page for the UAE, Qatar or Saudi Arabia.
Proof
FIT Institute (Dubai): paid campaigns took 121,330 AED in ad spend to roughly 912,550 AED in collected revenue, about 7.5x clean ROAS. Education has no product to return, so the gross and collected numbers converge here; I report both on every engagement.
That's the standard for every account: the figure the platform claims, and the figure that actually collected. Read the full case study →
Related
Frequently asked questions
Why does my ROAS look great but revenue doesn't match?
Because the platform reports gross, attributed orders. Not money in the bank. Meta and Google count a conversion the moment someone taps buy, before returns, refunds, chargebacks and failed cash-on-delivery deliveries fall out. In COD markets across the GCC the gap between what the dashboard claims and what you actually collect can be large. The reported number is accurate. It simply measures gross orders, not the money your bank statement shows.
What is the two-number rule?
Every report shows two figures side by side: the platform-reported number (what Meta, Google or TikTok attribute to the campaign) and the real, collected number, the revenue that actually landed and stayed after returns, refunds and failed deliveries. You never get the flattering figure alone. If the two are close, the channel is healthy; if they diverge, that gap is the first thing to fix.
How do you measure COD campaigns honestly?
You reconcile ad-platform conversions against delivered-and-collected orders from your fulfillment or courier data, not against the checkout event. Each order is tracked through to delivery status, then reported as cost per delivered order and collected ROAS alongside the platform numbers. It's more plumbing than a dashboard screenshot, but it's the only ROAS you can actually spend.
Want the two numbers, not just the flattering one?
Bring a campaign that looks great on the dashboard but you're not sure you trust. One call and I'll tell you where gross and collected are likely to diverge, and how to report it honestly from here on.
Request a diagnostic →
