Hello There!

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

GA4 for Hotels: How to Set Up Google Analytics 4 and Track Direct Bookings

The Lobby > Analytics & Integrations > GA4 for Hotels: How to Set Up Google Analytics 4 and Track Direct Bookings
Ga4 For Hotels

GA4 for Hotels: How to Set Up Google Analytics 4 and Track Direct Bookings

Most hotels are flying blind. They know how many people visited their website last month, but they do not know which marketing channel drove those visitors, whether those visitors actually tried to make a booking, or where in the reservation flow they dropped off. Google Analytics 4 fixes all of that — if it is set up correctly.

This guide walks through GA4 setup for hotels from scratch: creating your property, configuring the events that matter, connecting your booking engine, and building the reports that tell you whether your marketing is actually generating revenue.

Why GA4 Is Different From Universal Analytics

If your hotel previously used Universal Analytics (UA), the switch to GA4 requires more than a simple update — it is an entirely different measurement model. UA tracked sessions and pageviews. GA4 tracks events.

In practice, this means that every interaction on your website — a button click, a form submission, a video play, a scroll depth milestone — can be captured as a distinct event with its own data attached. For hotels, this is transformative: instead of knowing that someone visited your “Rooms” page, you can know that they clicked the “Check Availability” button, entered dates, selected a room type, and then abandoned the booking at the payment stage.

→ Example: A boutique hotel in the Cotswolds using GA4 discovered that 68% of visitors who reached their booking engine abandoned at the rate selection screen. They adjusted their rate display and saw direct bookings increase by 22% the following month.

Step 1: Create Your GA4 Property

If you have not already created a GA4 property, here is how to do it:

  1. Log in to Google Analytics at analytics.google.com
  2. Click the gear icon (Admin) in the bottom-left corner
  3. Under the Account column, select your account or create a new one
  4. Under the Property column, click “Create Property”
  5. Enter your property name (e.g., “The Crown Hotel — Website”), select your time zone and currency
  6. Choose “Web” as your platform
  7. Enter your website URL and stream name, then click “Create stream”

This creates a data stream — the channel through which your website sends data to GA4. You will receive a Measurement ID (formatted as G-XXXXXXXXXX). Keep this handy; you will need it for the next step.

Step 2: Install the GA4 Tag

There are two ways to install GA4 on your hotel website: directly in the site code, or via Google Tag Manager (GTM). GTM is strongly recommended — it allows you to add and modify tracking without touching your website code every time. For GTM installation instructions, see the dedicated Google Tag Manager for Hotels guide.

If installing directly, add the following snippet to the section of every page on your site, replacing G-XXXXXXXXXX with your Measurement ID:

Verify installation using the GA4 DebugView (Admin → DebugView) or the Google Tag Assistant browser extension. You should see real-time events appearing within a few minutes of visiting your website.

Step 3: Configure the Events That Matter for Hotels

GA4 automatically tracks some events out of the box (page views, scrolls, outbound clicks, site searches). But for hotels, you need to configure custom events that reflect the booking journey.

The Core Hotel Conversion Events

booking_engine_start: Fired when a visitor clicks “Check Availability”, “Book Now”, or any button that opens or redirects to your booking engine. This is your primary micro-conversion.

→ Example: A coastal hotel tracked booking_engine_start and found that homepage visitors converted to booking engine clicks at 8.3%, while visitors arriving from Google Ads converted at 14.1%. This justified increasing their Ads budget.

booking_engine_step: Fired at each stage of the booking flow — date selection, room selection, extras, guest details, payment. Each step should pass a parameter indicating which step was completed.

booking_complete: Fired when a booking is confirmed. This is your macro-conversion — the event that ties revenue to marketing spend. Pass parameters including booking value, room type, check-in date, and length of stay.

room_view: Fired when a visitor views a specific room type page. Helps identify which rooms attract the most interest vs. which rooms convert best.

rate_view: Fired when a visitor views available rates in the booking engine. Drop-off between rate_view and booking_complete identifies price sensitivity.

enquiry_submit: Fired when a contact or group enquiry form is submitted. For hotels with significant MICE or wedding revenue, this is a critical conversion event.

Step 4: Set Up Conversions

In GA4, any event can be marked as a conversion. Navigate to Admin → Events, find booking_complete (or whatever you have named your booking confirmation event), and toggle “Mark as conversion” to on. Do the same for enquiry_submit.

Once marked, conversions appear in your reports and can be used as the optimisation goal in Google Ads campaigns. This is essential for running smart bidding campaigns that maximise booking revenue rather than just clicks.

Step 5: Connect GA4 to Google Ads

Linking GA4 to your Google Ads account allows you to import GA4 conversions into Ads, use GA4 audiences for remarketing, and see campaign performance alongside on-site behaviour in a single report.

  1. In GA4, go to Admin → Google Ads Linking
  2. Click “Link” and select your Google Ads account
  3. Enable “Enable Google Signals” for richer audience data
  4. In Google Ads, navigate to Tools → Conversions and import your GA4 booking_complete event

Step 6: Build Your Core Hotel Reports

Booking Funnel Report

Create a Funnel Exploration report (Explore → Funnel Exploration) with the following steps: 1) booking_engine_start, 2) booking_engine_step (date selection), 3) booking_engine_step (room selection), 4) booking_engine_step (payment), 5) booking_complete.

This report shows you exactly where guests abandon your booking process. A 40% drop between room selection and payment typically indicates a pricing or UX issue. A 70% drop at date selection suggests your availability or calendar UI is failing guests.

Channel Performance Report

Use the Traffic Acquisition report (Reports → Acquisition → Traffic Acquisition) to see which channels drive the most booking_complete conversions. Filter by your date range and sort by Conversions. This tells you whether your SEO, paid ads, email, or direct traffic is generating the most bookings.

→ Example: A city-centre hotel found that organic search delivered 3x more bookings than paid social, but their budget allocation was the reverse. Shifting spend towards SEO over 12 months increased direct revenue by 35%.

Common GA4 Setup Mistakes for Hotels

  1. Not excluding internal IP addresses — staff browsing the website inflates your traffic data. Add your office IP to the Admin → Data Streams → More Tagging Settings → Define Internal Traffic list.
  2. Not filtering bot traffic — GA4 has built-in bot filtering, but check that it is enabled under Admin → Data Settings → Data Filters.
  3. Tracking OTA confirmation pages as direct bookings — if your booking engine redirects to a third-party URL for payment, cross-domain tracking must be configured or booking_complete will never fire.
  4. Not setting the correct attribution model — GA4 defaults to data-driven attribution, which is appropriate for most hotels. Avoid switching to last-click, which systematically over-credits paid search and under-credits organic and email.

Ready to set up GA4 correctly and start tracking what actually drives bookings?

The Lobby configures analytics for independent hotels — from tag installation to conversion reporting.

Book a Free Analytics Consultation


Related Reading

Leave a Reply

Your email address will not be published. Required fields are marked *