Google Ads conversion tracking for hotels
Every direct booking a hotel wins is revenue that didn't go to an OTA, which makes direct-booking attribution one of the highest-value measurement problems in hospitality — and the booking engine almost always sits on a domain the hotel doesn't control. What Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in hotels, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Hotels
Google Ads for hotels: gclid into the booking engine, net of cancels
Track a hotel's Google Ads bookings as a purchase-type conversion action uploaded from the property management system against the gclid, gbraid or wbraid captured before the guest crossed to the booking engine. Send room revenue as the value, then retract or restate cancelled reservations with Google's conversion adjustments so bidding learns from net revenue.
Google is usually a hotel's largest paid source of direct bookings, and a big share of it is brand search: people typing the property's name after spotting it on an OTA. That traffic converts well and would often have booked anyway, so split brand from non-brand before reading any cost per booking. If you also run Hotel Ads or a hotel-feed campaign, check whether your booking engine reports those conversions itself as an integration partner, or the same reservation can land in two conversion actions.
The gclid has to leave your site with the guest. Most booking engines accept parameters on the deep link, but some drop them on their first redirect. Test with a real ad click and then open the engine's reservation export to see whether the identifier arrived. If it never does, store it on your side against a session and join on the confirmation number the engine hands back.
Cancellations are where Google is easier than most platforms. It accepts conversion adjustments, so a cancelled reservation can be retracted and a shortened stay restated to the lower value, provided the original upload carried an order ID you can reference. Lead time is not a problem either: the conversion is the booking date, not the arrival, so a summer stay booked in March still sits inside the import window. Count every conversion, because one guest can hold two separate reservations.
Google Ads · Hotels · what breaks
Why Google Ads under-reports for hotels
- 01
Bookings credited to the booking engine
As a self-referral, not to the campaign.
- 02
Cancellations never reversed
And hotel cancellation rates are high.
- 03
OTA and direct blended
Making direct performance impossible to judge.
- 04
Gclid, gbraid and wbraid never reaches the record
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Google Ads · Hotels · the fix
What working looks like — Google Ads · Hotels
Direct bookings attributed to campaigns
Not to your own domain.
Cancellations reversed
So reported revenue is net.
OTA and direct cleanly separated
Two channels, two stories.
Google Ads · Hotels · architecture
How Google Ads and hotels actually connect
- 1
The conversion in hotels
Search, availability check, booking, stay, cancellation. Booking value should be net of cancellation, which means the cancellation has to be an event.
- 2
Google Ads needs a click to match
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 3
The identifier: gclid, gbraid and wbraid
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
- 4
Where it gets sent from
your property management system's reservation records.
- 5
Deduplication and window
There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts. Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.
Google Ads · Hotels · events
The conversion map for hotels
Five stages, one domain boundary in the middle, and a cancellation rate that makes net revenue the only honest number.
| Event | What it means here |
|---|---|
| Date search | Browser-side. Strong intent signal for retargeting. |
| Availability checked | Browser-side or engine-side, depending on what's exposed. |
| Booking confirmed | Server-side from the property system, with room revenue as the value. |
| Cancellation | Server-side reversal. Not optional in hospitality. |
| Stay completed | Server-side. The truest conversion, if you can wait for it. |
Google Ads · Hotels · diagnose
Diagnostic order — Google Ads · Hotels
- 01
Count records carrying gclid, gbraid and wbraid
- 02
The domain hop to the booking engine
Session splits, the campaign loses credit, and your own site becomes your top referrer.
- 03
Cancellations never reversed
Reported revenue overstates by whatever your cancellation rate is.
- 04
Engine confirmation pages that can't be tagged
Some engines allow nothing, which forces the property-system path.
- 05
Read the match rate on the upload, not the success message
A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.
Google Ads · Hotels · prove
How it gets proven — Google Ads · Hotels
Source of truth
your property management system's reservation records
- Identifiers confirmed surviving the hop into the booking engine, or the fallback path verified.
- Self-referral revenue reduced to near zero.
- A real cancellation tested and confirmed reversing.
- Reservations reconciled against the property system for a closed month.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Hotels · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- The domain hop to the booking engine
- Cancellations never reversed
- Engine confirmation pages that can't be tagged
- Read the match rate on the upload, not the success message
Checked against
your property management system's reservation records
Free30 minutesNo obligation
Google Ads · Hotels · when not to buy
When you don't need this — Google Ads · Hotels
- If Google Ads already reports conversions that reconcile against your property management system's reservation records within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry gclid, gbraid and wbraid.
- If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
Google Ads · Hotels · what we deliver
What gets built — Google Ads · Hotels
Cross-domain linking into the booking engine
Where the engine supports it.
Referral exclusions set
So your own domain stops being a source.
Property management system as the source of truth
Reservations, not confirmation pages.
Cancellation webhook wired as a reversal
Essential in this vertical.
Dispatch via Google's offline conversion import
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
Written guarantee
95%+ tracking accuracy
Measured against your property management system's reservation records. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Hotels questions, answered
Yes. Give each source its own conversion action, and confirm whether your booking engine already reports Hotel Ads bookings so a reservation is not counted twice.
Yes, through conversion adjustments, which retract or restate a conversion you already uploaded. That only works if the original upload carried an order ID you can reference again.
Yes. The conversion comes from the property system's reservation record, with the click ID captured before the guest left your site.
Because the booking engine saw a guest arrive from your site with no prior session. That's the standard cross-domain symptom.
In hospitality, definitely. Cancellation rates are high enough that gross booking revenue systematically overstates what your campaigns produced.
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
By reading the match rate on the upload, not the success message and reconciling against your property management system's reservation records. An upload that succeeds is not an upload that matched.
More on Google Ads · Hotels
- Enhanced ConversionsEnhanced Conversions enrich the conversions that already fire. First we make sur…
- Google Ads trackingGoogle Ads conversion tracking, rebuilt so Smart Bidding sees real orders and re…
- GTM consultingA tag manager container someone can actually maintain
RELATED GUIDES
More for hotels: other angles on the same outcome
- HotelsConversion tracking for hotels, built around the direct booking
- Google Ads · Auto detailingGoogle Ads conversion tracking for auto detailing businesses
- Google Ads · Multi-locationGoogle Ads conversion tracking for multi-location businesses
- Google Ads · Checkout → purchaseHow to track checkout to purchase for Google Ads
- Google Ads × Booking SystemHow to reconcile Google Ads against your booking or reservation system
- Uplisting → Google AdsConnecting Uplisting to Google Ads
- HostfullyConversion tracking for Hostfully direct booking sites
- Google Ads · Car rentalGoogle Ads conversion tracking for car rental companies
Free · 30 min
Get Google Ads reporting what hotels actually earn
Free30 minutesNo obligation
