How to Measure Social Media ROI in Saudi Riyals
- Define one business outcome per campaign (sales, qualified leads, bookings or retention) before reading any platform metric.
- ROI = (attributable gross profit − full cost) ÷ full cost, where cost includes media, team or agency time, content and tools, recorded on a consistent VAT basis.
- Start valuing leads at close rate × net order value × gross-margin rate, adjusted where relevant, and trace them with UTMs, promo codes, a source question and server-side events.
- Platform, GA4 and CRM numbers will differ; use the CRM for riyals and a well-designed holdout test to estimate how much of the result the ads caused.
Social media ROI in Saudi riyals measures the profit attributable to social after its full cost, relative to that cost. Getting a defensible answer takes four things: a clear business outcome, a complete cost figure, a riyal value for each result, and an honest view of what your tracking can and cannot see. This guide walks through each one.
1. Define the business outcome first
Before opening any dashboard, write down what the social activity is supposed to produce. Pick one primary outcome per campaign:
- Sales — completed orders on your site or in-store, net of returns and cancellations.
- Qualified leads — enquiries that meet a written definition (for example: correct city, real budget, reachable phone number). An unqualified form fill is not the outcome.
- Bookings — confirmed appointments, ideally counted as attended rather than just scheduled.
- Retention — repeat purchases or renewals from existing customers reached through social.
Everything else in this guide depends on this choice. If the outcome is vague, the ROI figure will be too.
2. Count every riyal of cost
Counting only media spend can overstate ROI by excluding labour, production and tool costs. A complete cost figure (C) includes:
- Media spend — what the ad platforms actually billed for the period.
- Team or agency time — agency fees, or in-house hours multiplied by a loaded hourly cost.
- Content production — shoots, design, video editing, creator or influencer fees.
- Tools — scheduling, analytics and CRM subscriptions, or the share used for social.
A note on VAT: ZATCA describes VAT as an indirect tax imposed on goods and services bought and sold by businesses, with a few exceptions. Whether you can recover the VAT on your marketing invoices depends on your own registration and circumstances, so confirm the treatment with your accountant. Then record costs and revenue on the same basis — both before VAT or both including it — or the ratio will be skewed.
3. Use a formula built on profit
The core formula is:
ROI (%) = (G − C) ÷ C × 100
G is the gross profit attributable to social in the period, and C is the total cost above. Use gross profit, not revenue: a sale of a low-margin product returns far fewer riyals to the business than its price suggests. A result above zero means social returned more profit than it cost; a result below zero means it did not.
Do not confuse this with ROAS (revenue ÷ ad spend). ROAS is a useful in-platform efficiency signal, but it ignores margin and every cost except media.
4. Put a riyal value on a lead
If you sell through leads rather than a checkout, you need a value per lead (V) to convert lead counts into riyals:
V = close rate × net order value × gross-margin rate
Take the close rate from your CRM for leads from that specific source, not your company-wide average, because lead quality usually differs by channel. As a purely illustrative example: if one in five qualified leads from a campaign closes, the average net order value is A riyals and the gross-margin rate is M, each qualified lead is worth 0.2 × A × M riyals. This is a simple first-order estimate: adjust it for returns, fulfilment costs, repeat purchases and your measurement period where relevant, and recalculate V as real closed deals accumulate.
5. Tag every link and offer
You cannot attribute what you do not tag. Google's guidance is that you should always use utm_source, utm_medium and utm_campaign, and that values are case sensitive, so Instagram and instagram become separate rows in the Traffic acquisition report. Keep a shared naming sheet and use it for every ad, bio link, story link and influencer post. If your GA4 property is not yet tracking leads properly, start with our GA4 setup guide for Saudi lead-generation websites.
Add a second layer that does not depend on clicks:
- Unique promo codes per channel, campaign or creator, so purchases made without clicking a link can still be traced.
- A source question — "how did you hear about us?" — asked at booking or checkout and saved in the CRM.
- Distinct pre-filled WhatsApp messages per campaign, logged against the lead when the chat starts.
6. Send server-side conversion events
Browser pixels miss some conversions. Each major platform offers a server-side route: Meta's Conversions API connects marketing data from your server, website platform, app or CRM; TikTok's Events API covers web, app and offline events and TikTok recommends running it alongside the Pixel with event deduplication; Snap's Conversions API reports web, app and offline events. If you send the same event from both pixel and server, set up deduplication — Meta, for example, matches the pixel's eventID and event name to the server's event_id and event_name. These integrations improve what platforms can see; they do not make platform numbers equal your CRM.
7. Accept that three numbers will not match
| Source | What it counts | Main blind spot | Use it for |
|---|---|---|---|
| Ad platform | Conversions it links to its own ads, under its own attribution setting | Attributes conversions under its own rules; generally has incomplete visibility into other touchpoints | Optimising within that platform |
| GA4 | Key events credited by your chosen attribution model | Visits without tagged links; offline and WhatsApp sales | Comparing channels on one ruler |
| CRM / sales records | Closed deals and real revenue | Only as good as source capture | The riyal figure in your ROI |
In GA4 you can choose data-driven or last-click attribution, and the lookback window for most key events defaults to 90 days, with 30 or 60 days as alternatives. Ad platforms apply their own attribution settings, so check the setting shown in each ads manager before comparing figures. Then there is dark social: links shared in private messages and WhatsApp, or a screenshot someone acts on later, can appear as direct or otherwise unattributed traffic, or may not create a trackable visit at all. This is why the promo codes and source question above matter.
8. Separate organic from paid
Calculate ROI for organic and paid separately. Organic cost is mostly team time and content; paid adds media spend. Tag organic links with a different utm_medium (for example social versus paid_social) so one does not absorb the other's credit.
9. Test incrementality with a holdout
Attribution tells you which touchpoint got credit, not whether the sale would have happened anyway. A holdout test estimates that. Split your market into comparable groups — for example, two sets of cities, or two audience lists — keep ads running in one group and pause them in the other for a fixed period, then compare the outcome per group. Change nothing else during the test, run it long enough to cover a normal purchase cycle, and treat small differences with caution. With a properly randomised, adequately powered holdout, the difference between the groups estimates the incremental lift from the ads, subject to statistical uncertainty.
10. Report on a fixed cadence
- Weekly: spend, qualified leads, cost per qualified lead, and whether tracking is firing.
- Monthly: ROI on closed deals, grouped by the month the lead was created so long sales cycles are not misread.
- Quarterly: update close rates and lead values, and run or review a holdout test.
11. What not to call ROI
Likes, reach, impressions, followers, views, engagement rate and clicks are diagnostics. They can explain why results moved, but none of them is a return in riyals. Report them beside ROI, never instead of it.
Getting help
Eclipse offers social media management and digital marketing services.
Frequently asked questions
What is a good social media ROI in Saudi Arabia?
There is no universal figure, because margins, sales cycles and costs differ by business. Any ROI above zero means social returned more gross profit than its full cost. The useful comparison is against your own previous periods and other channels, measured the same way.
Why does Meta report more sales than my CRM?
Ad platforms count conversions they link to their own ads under their own attribution settings, and they generally have incomplete visibility into other channels that also touched the customer. Your CRM records closed deals. Use the platform figure to optimise campaigns and the CRM figure for ROI.
How do I measure sales that close on WhatsApp?
Give each campaign a distinct pre-filled message or promo code, ask new customers how they heard about you, and save the source on the lead record in your CRM. Then count the deals that close against that source.
Sources: zatca.gov.sa · support.google.com · support.google.com · developers.facebook.com · developers.facebook.com · ads.tiktok.com · developers.snap.com