Case study · GrabFood · Ubud, Bali, Indonesia
Zaytun Ubud: Revenue x2.6 — on an already-running restaurant
February — July 2026 (January = the "before" baseline)
x2.6
revenue
x2.1
orders
x62
GoJek ads payback
The situation before we started
No zero base here: before us the restaurant already made Rp 166.6M a month, ads were running, the menu had been partially optimized — incorrectly. The first month's key find: GoJek ads were losing money — ROAS 0.25x; Rp 3.1M spent, Rp 763K returned, minus Rp 2.3M in one month. Nobody was tracking it. We didn't launch — we rebuilt: revenue x2.6 in 5 months.
- GoJek ads losing money: ROAS 0.25x — every rupiah spent returned 25 cents, and nobody noticed
- The menu had been "optimized" before us — no keywords, category structure ignored demand, add-ons didn't lift the check
- Rating 4.67 — below the 4.8 threshold where the algorithm serves impressions more generously; GoJek down at 4.6
- Through-conversion 1.1% — above fleet average but half the best result: far from its ceiling
- Easy growth levers already spent — every next percent had to come from conversion, menu and traffic quality
What we did — a 4-track strategy
Ads rebuild
- Ads were already running — we took them under management: manual CPO instead of auto-bidding
- GoFood campaigns rebuilt from scratch: ROAS 0.25x → 15.52x — payback x62 on nearly the same budget
- GrabAds: ROAS 14.02x → 21.19x — budget doubled, ads revenue tripled
- Blended ROAS 10.2x → 20.1x; July GrabAds CTR 7.2%
SEO & keywords
- Ubud + category keyword map
- Keywords in dish names and descriptions
- Menu category structure rebuild
- Reach x1.84, reach → menu conversion 8.5% → 10.0%
Menu & pricing fix
- Audit of the previous "optimization", rebuilt around real Ubud demand
- New items, combos and add-ons that lift the average check
- Pricing and photos by our playbook
- Result: average check +24.5% with no loss of order volume
Rating & operations
- Daily monitoring on both platforms, a response process for every negative review
- Team training on operational metrics, offline-rate and stock-out control
- Fewer cancellations and delays — higher rating and cheaper ads
- Rating 4.67 → 4.8 while orders doubled
Key results
x2.6
revenue growth
Rp 166.6M → 440.1M/mo
x2.1
order volume
603 → 1,279 a month
+24.5%
average check
Rp 276,311 → 344,124
x62
GoJek ads payback
ROAS 0.25x → 15.52x
21.2x
GrabAds ROAS
was 14.02x
4.8
rating
was 4.67
| Metric | Before | After |
|---|---|---|
| Monthly revenue | Rp 166 615 600 | Rp 440 134 400 |
| Monthly orders | 603 | 1 279 |
| Average check | Rp 276 311 | Rp 344 124 |
| GoFood ads ROAS | 0.25x (в убыток) | 15.52x |
| GrabAds ROAS | 14.02x | 21.19x |
| Ads-attributed revenue (both platforms) | Rp 116,8 млн | Rp 395,2 млн |
| Through-conversion (reach → order) | 1.1% | 1.4% |
| Rating | 4.67 | 4.8 |
The GrabFood data


Real client data from GrabMerchant.
Want the same growth for your restaurant?
We did it for Zaytun Ubud. We'll do it for you — free profile audit within 24 hours.
Book a free audit