Skip to content
grigoriev.co.il

Holyland Adventures: Performance Marketing for Yacht Tourism in Three Languages

A case on our own business. WordPress → Astro migration, three parallel Google Ads campaigns, GA4↔Ads split-conversions, WhatsApp AI booking agent.

Site in production: holylandadventures.club — yachting, fishing, skipper school (Mashit 30 / ISSA), spa packages in Herzliya and Ashkelon.

Business context

Holyland Adventures is a yacht tourism business in Herzliya: charters, sailing school (skipper training), spa packages, group and romantic sailings. The audience splits into three streams with different economics:

  • RU yacht charter — Russian-speaking tourists and local Russian-speaking Israeli residents (parents, corporate clients, birthdays)
  • RU skipper school — Russian-speaking skipper candidates in Israel (Mashit 30 state exam preparation), dedicated landing on holylandadventures.club
  • EN yacht charter — English-speaking tourists and tourist segment (Tel Aviv hotels, instructor tours)

Each segment has different AOV, different seasonality, different CPA budget — and mixing them into one Google Ads campaign means losing money. Bidding strategy optimizes for an average that benefits no one.

Challenge

Run three parallel ad campaigns with different economics and audiences while:

  1. Not blending conversions into a single pile (as most agencies do)
  2. Knowing honest CPA per group
  3. Not cannibalizing one audience for another
  4. Closing leads via WhatsApp booking without manual work

Solution — what we did

1. Site — WP → Astro migration

Legacy WordPress + Elementor site — slow, multilingual indexation issues, mobile speed under 40, fragmented hreflang. Migrated to Astro + Tailwind + Keystatic CMS, self-hosted on VPS.

Post-migration:

  • Mobile speed > 90 (Lighthouse)
  • Hreflang in three languages with x-default
  • Schema.org for services and bookings (Service + Offer + LocalBusiness)
  • All language versions indexed via Search Console

2. Three separated Google Ads campaigns

CampaignLocaleTargetLandingBid strategy
RU yachtRURussian-speakers in ILholylandadventures.club RUtCPA
RU skipperRUSkipper candidatesholylandadventures.club /skipper-schooltCPA
EN yachtENInternational touristsholylandadventures.club ENMaximize Conversions

Each campaign with its own ad groups, RSA, sitelinks, callouts, portfolio bidding strategy. Managed via Google Ads Python SDK v30.

3. GA4 ↔ Ads split-conversions

In GA4 — custom dimension audience_language and three separate conversion events:

lead_yacht_ru     // booking enquiry from RU yacht
lead_skipper_ru   // skipper school enrollment
lead_yacht_en     // booking enquiry from EN yacht

Each imported into Google Ads as an independent conversion goal. This gives:

  • Separate CPA per group
  • Separate bidding optimization
  • Visibility into which audience costs 3x more
  • Ability to reallocate budget based on real economics

4. WhatsApp AI agent on Takli

For lead closure — WhatsApp AI agent on our own Takli platform. The bot:

  • Understands user intent (yacht booking / skipper course / spa package)
  • Asks qualifying questions
  • Checks calendar availability
  • Hands off a qualified lead to a human for finalization

Every WhatsApp lead is source-tagged (utm + gclid) → flows to GA4 as a conversion → imported to Google Ads as offline conversion → closes the attribution loop. This is critical — most tourism leads close via WhatsApp, and without offline-import Google Ads sees them as “no conversion,” which breaks bidding.

Result

(Specific CPAs, ROAS, and budgets are under NDA. Speaking in general terms.)

  • ✅ Target CPA hit in every language group
  • ✅ Transparent unit economics by audience — clarity on which group to scale
  • ✅ Stable conversion rate via WhatsApp flow — most leads close without manual calls
  • ✅ All three language versions correctly indexed
  • ✅ Flexibility to reallocate budget between campaigns based on real economics, not gut feeling

Tech stack of the case

  • Site: Astro 5 + Tailwind + Keystatic CMS, VPS-hosted
  • Tracking: GA4 + GTM with custom dimensions
  • Ads: Google Ads managed via Python SDK v30, portfolio bidding
  • Lead funnel: WhatsApp AI agent on Takli (multi-tenant SaaS)
  • Analytics: Looker Studio real-time dashboard
  • Connection: GA4 → Ads conversion import + offline conversion upload via Python

Want this architecture for your business?

If you have a multilingual audience and you’re tired of “blended CPA across all campaigns” — let’s discuss an audit and split-conversions design for your business.

Order audit — ₪1,490 →