How do I set up GA4 for a hotel website?
Short answer
To set up GA4 for a hotel website, create one GA4 property with a web data stream, install the same Google tag on your website and booking engine, configure cross-domain measurement if they're on different domains, and mark the actions that matter as key events — booking-engine entries, purchases, enquiries, and calls. Make sure your booking engine sends ecommerce events such as begin_checkout and purchase with your booking reference as the transaction ID. Respect consent requirements, test a booking end to end, and check results against your reservation system monthly.
By Lodging Engine Editorial Team· Reviewed by Eric Zwanenburg· Last reviewed
Step 1: Property and data stream
Create a GA4 property and a web data stream for your website. Note the measurement ID (G-…).
Step 2: Install the tag everywhere
- Add the Google tag to every page of your website (via your CMS, a tag manager, or your developer).
- Give the same measurement ID to your booking engine provider. Google requires the same tag ID from the same data stream across domains for cross-domain measurement.
Step 3: Cross-domain measurement
In GA4 Admin → Data streams → your web stream → Configure tag settings → Configure your domains, add your website domain and your booking engine domain. Without this, visitors moving to the booking engine are counted as new users and sessions, and bookings may be attributed to referrals.
Step 4: Events and key events
| Event | When |
|---|---|
begin_checkout | Guest starts a booking |
purchase | Booking confirmed (with transaction_id, value, currency) |
generate_lead | Enquiry or event form submitted |
| Click-to-call or email clicks | Contact actions |
Mark the important ones as key events.
Step 5: Consent
Configure consent handling to meet the rules that apply to your visitors. Consent choices affect what's measured, so expect analytics to undercount compared with your reservation system.
Step 6: Test and reconcile
- Make a test booking and check the events in GA4's debug or real-time views.
- Confirm the original source is kept through the booking.
- Compare monthly purchases with your reservation system.
Common mistakes
- Different measurement IDs on website and booking engine.
- No cross-domain configuration.
- Purchase events without transaction IDs.
- Never reconciling with reservations.
Checklist
- One property, one tag ID everywhere
- Cross-domain measurement configured
- Key events defined
- Purchase events with transaction ID, value, currency
- Consent configured
- Monthly reconciliation
Sources
- Set up cross-domain measurement — Google Analytics Help
- Measure ecommerce (GA4) — Google for Developers
- [GA4] Engagement rate and bounce rate — Google Analytics Help