Surf camp in Bali: 111 bookings, $76,538 revenue, 546% ROMI from Google Ads

TravelGoogle Ads

Updated:

$11,841
Ad spend
111
Bookings
$76,538
Revenue
546%
ROMI

The task

A surf camp in Canggu, Bali: accommodation plus a surf school, guests from all over the world. Bookings are sold through the website; the paid channel is Google Ads on search demand. For two months before the relaunch (August–September 2025) the account returned 183% ROMI: 33 bookings on IDR 141.6M ($8,506) ad spend, a booking cost IDR 4.28M ($257). The task: grow booking volume without losing ROMI.

What we did

  • Split search into separate campaigns by geo. On 28 September we launched five search campaigns: Bali (local demand), Asia, Australia and New Zealand, Europe, USA and Canada. Each region has its own demand, season and cost per click; in a single campaign they blended and the budget leaked into expensive regions.
  • Each campaign got its own budget and its own target cost per conversion. IDR 400,000 per day per campaign, “maximize conversions” with a target cost per booking, so the algorithm optimized for bookings rather than clicks.
  • Optimized for a booking, not a lead. The target action in the account is a custom “purchase” conversion with the order value passed in, so ROAS is calculated on money from the website.
  • Search only, no Performance Max or Display. A guest searches for a surf camp in Bali on their own, the demand is already there: search’s job is to capture it cheaper, not to create it.
  • Budgets split equally, not in proportion to traffic. Regions compete for budget on equal terms, and after two months it is clear where demand hits the cap: all five campaigns closed the period “limited by budget” with optimization scores of 86–90%.

Results

October–November 2025 compared with the previous two months:

Metric 08–09.2025 10–11.2025
Ad spend IDR 141.6M ($8,506) IDR 197.1M ($11,841)
Bookings 33 111
Cost per booking IDR 4.28M ($257) IDR 1.78M ($107)
Revenue IDR 401M ($24,084) IDR 1,274M ($76,538)
ROMI 183% 546%

Ad spend grew by 39%, bookings grew 3.4×, cost per booking dropped by 58%. Average booking value is IDR 11.5M ($690). Conversion rate: ECB period average, 16,648 IDR per dollar.

All five campaigns are “limited by budget” with optimization scores of 86–90%: demand is not exhausted, there is room to scale.

Google Ads, 1 Oct – 30 Nov 2025: IDR 197.1M spend, 111 bookings, IDR 1,274M revenue, ROAS 6.46; five search campaigns by geo, all limited by budget

Insights

546% ROMI means advertising takes 15.5% of booking revenue. With a $690 average booking and $107 cost per booking, each booking brings $583 on top of the ad cost.

The growth came from structure, not from bids or creatives: once regions are separated into campaigns, the algorithm learns on homogeneous demand and the target cost per conversion works in each geo on its own. The blended campaign pulled the average price up because of the expensive regions.

“Limited by budget” on all five campaigns at 6.46 ROAS is a signal the budget can be raised: while ROMI stays above margin, every added dollar brings bookings at the same price.

Discuss your project