Coastal Kenya businesses run two entirely different customer journeys simultaneously β international tourists arriving via Google Ads to a direct booking, and domestic tourists arriving via TikTok to WhatsApp to M-Pesa deposit. Most analytics setups track neither properly. The result: marketing spend decisions made on incomplete data, OTA commissions paid unnecessarily, and no ability to prove which channels generate revenue. This is how to fix that.
The Two-Journey Attribution Problem
Standard GA4 setup works reasonably well for a simple e-commerce customer journey: Google Ad β Product Page β Cart β Purchase. Coastal Kenya hospitality businesses have two parallel journeys that GA4's default configuration cannot track:
Journey 1: International Guest (Online Attribution)
- Google or TripAdvisor search (months ahead)
- Website visit (researching, comparing)
- Direct booking via website booking engine (Beds24, custom)
- Payment via Stripe/card
- Confirmation email
This journey is trackable in GA4 if: UTM parameters are on all ad links, GA4 conversion events are configured for booking completion, and the booking engine fires a GA4 event on successful payment. Most coastal Kenya websites have none of these configured.
Journey 2: Domestic Guest (Offline-to-Online Attribution)
- TikTok or Instagram Reel (Thursday evening)
- DM or WhatsApp enquiry (Friday morning)
- WhatsApp conversation and package selection
- M-Pesa deposit (offline payment β not trackable by GA4)
- Arrival confirmation sent via WhatsApp
This journey is almost entirely invisible to standard analytics tools. The M-Pesa payment happens outside any trackable digital environment. The correct solution requires a hybrid attribution approach.
Setting Up GA4 Correctly for Coastal Kenya Businesses
Essential GA4 Events to Configure
booking_initiatedβ fired when a user clicks "Book Now" or "Check Availability" on your booking enginebooking_completeβ fired when a booking is confirmed and payment processed (including order value in KES or USD)enquiry_form_submitβ fired when a contact or enquiry form is submittedwhatsapp_button_clickβ fired when a user clicks your WhatsApp chat button (proxies intent)phone_clickβ fired when a user taps your phone number on mobilebooking_page_viewβ fired when a user views your rates/booking page (high intent signal)
UTM Parameter Tagging
Every link you share β in social media bios, email campaigns, WhatsApp broadcasts, Google Ads β must contain UTM parameters. This is how GA4 attributes visits to the correct source:
https://yourhotel.com/?utm_source=instagram&utm_medium=social&utm_campaign=july-packages&utm_content=reel-sunset
Create a UTM tagging spreadsheet and enforce consistent naming conventions across all team members and agencies. Inconsistent UTM tagging produces misleading attribution data.
Tracking the WhatsApp-to-M-Pesa Domestic Journey
Since this journey moves offline after WhatsApp contact, track it through a combination of:
- WhatsApp CRM logging: Every WhatsApp booking should be logged in your CRM with the source channel ("TikTok", "Instagram", "Referral", "Google Organic") β ask the guest at the start of the conversation or in a short post-booking form
- "How did you hear about us?": Include this as a required field in your booking confirmation WhatsApp message or check-in form
- UTM-tracked WhatsApp link: If your social media bio link goes to a WhatsApp business link, add a UTM parameter:
wa.link/yourhotel?utm_source=instagramβ this traces the source in WhatsApp's analytics - M-Pesa transaction reference matching: Log M-Pesa transaction references against booking records in your CRM to build a complete financial picture
The Key Metric Most Coastal Kenya Hotels Ignore: OTA Commission Rate
The single most actionable marketing ROI metric for a coastal Kenya hotel is not click-through rate or cost per click β it is OTA commission as a percentage of total room revenue, tracked monthly.
| Metric | Formula | Target |
|---|---|---|
| OTA Commission Rate | OTA commission paid Γ· total room revenue Γ 100 | Below 15% (from whatever your current baseline is) |
| Direct Booking Rate | Direct bookings Γ· total bookings Γ 100 | Above 40% |
| Cost per Direct Booking | Total marketing spend Γ· direct bookings | Below OTA commission equivalent |
If you are spending KES 30,000/month on social media and direct booking marketing and generating 10 additional direct bookings per month at KES 12,000 average room rate = KES 120,000 in direct revenue with 0% commission β compared to the KES 18,000β30,000 in Booking.com commissions those bookings would have cost β your marketing ROI is demonstrably positive.
Monthly Reporting Framework for Coastal Kenya Businesses
Your monthly digital marketing report should answer five questions:
- How many bookings came from each channel? (Direct website, WhatsApp/social, OTA, walk-in, referral)
- What was the total room revenue by channel?
- What commission or marketing cost did we pay per channel?
- What was the cost per direct booking? (Total digital marketing spend Γ· direct bookings)
- How did this month compare to the same month last year? (Seasonality normalisation)
Operating without clear marketing attribution data means making budget decisions blind. Book a free analytics audit with Goldfish Digital and we will set up proper GA4 tracking, WhatsApp attribution, and OTA commission monitoring so every marketing decision is data-driven.
Want This Implemented for Your Brand?
Skip the trial-and-error. Goldfish designs, builds, and deploys high-converting web engines, local SEO authority, and 24/7 WhatsApp AI systems for businesses across Kenya.
