Google Ads conversion tracking for tour operators and activity businesses
A tour operator's most important number is the split between direct bookings and OTA bookings, because the same seat earns very differently depending on which one filled it. 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 tour operators and activity businesses, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Tours and activities
Google Ads for tours: bid on direct bookings, adjust for cancellations
Track a direct tour booking on Google Ads as a conversion action valued at the booking total, matched on gclid, gbraid or wbraid stored on the reservation record. Upload it from the reservation system through offline conversion import, then restate or retract it when weather or minimum numbers cancel the departure.
Google is where travelers who already know the destination search for the activity by name: a sunset cruise in a specific harbor, a guided hike at a specific park. That intent sits close to the booking, so the direct booking usually lands well inside the 90-day import window even when the departure itself is months away. Bid on the booking, not on the departure, and keep departure revenue as a reporting figure.
The step most tour operators skip is correcting the booking afterward. Google supports conversion adjustments, so a booking that later loses its departure to weather or a trip that fails to reach minimum numbers can be retracted or restated against the original conversion. Check the adjustment window and the current upload format in your account before you build the job, and run it on a schedule that matches how quickly your cancellations settle.
Where it breaks for tours: visitors on iPhones, which is a large share of in-destination searches, arrive with gbraid or wbraid rather than gclid, and the booking widget embedded from the reservation system often drops all three on its way to checkout. Test a real click on an iPhone through to a paid booking and confirm the identifier is on the reservation record. Bookings resold through an OTA will never carry one, so exclude them before you calculate coverage.
Google Ads · Tours and activities · what breaks
Why Google Ads under-reports for tour operators and activity businesses
- 01
OTA and direct bookings blended
The same seat at very different margins, and OTA carries no click identifier.
- 02
Bookings counted rather than departures
Weather and minimum-numbers cancellations are real and frequent.
- 03
Departure capacity invisible
A full boat makes further spend waste.
- 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 · Tours and activities · the fix
What working looks like — Google Ads · Tours and activities
Completed departures as the conversion
At the direct-booking value, from the reservation system.
Direct and OTA reported separately
Always, because the margin differs.
Capacity by departure in the report
So spend does not chase full trips.
Google Ads · Tours and activities · architecture
How Google Ads and tour operators and activity businesses actually connect
- 1
The conversion in tour operators and activity businesses
The money event is a completed departure. Because weather and minimum numbers cancel trips, a booking is a promise rather than revenue, and the gap between the two varies by season.
- 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
The reservation system — departures completed by departure date, by channel, for the same window.
- 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 · Tours and activities · events
The conversion map for tour operators and activity businesses
Five events with a booking-to-departure gap measured in months.
| Event | What it means here |
|---|---|
| Availability search | Volume signal, useful for demand shape. |
| Direct booking made | The valuable channel, with an identifier. |
| OTA booking made | Real revenue at lower margin, no identifier. |
| Departure completed | The money event. |
| Cancellation | Weather or minimum numbers. Reversed. |
Google Ads · Tours and activities · diagnose
Diagnostic order — Google Ads · Tours and activities
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Long booking-to-departure gaps
Seasonal trips booked months ahead can exceed import windows.
- 03
OTA bookings with no click
Segment them out before measuring coverage.
- 04
Weather cancellations
Not campaign failures and they must reverse.
- 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 · Tours and activities · prove
How it gets proven — Google Ads · Tours and activities
Source of truth
The reservation system — departures completed by departure date, by channel, for the same window
- Completed departures reconciled per booking against what each platform reports, direct only.
- OTA bookings identified and reported separately.
- The booking-to-departure gap measured against every import window.
- Cancellations confirmed to reverse.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Tours and activities · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Long booking-to-departure gaps
- OTA bookings with no click
- Weather cancellations
- Read the match rate on the upload, not the success message
Checked against
The reservation system — departures completed by departure date, by channel, for the same window
Free30 minutesNo obligation
Google Ads · Tours and activities · when not to buy
When you don't need this — Google Ads · Tours and activities
- If Google Ads already reports conversions that reconcile against the reservation system 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 · Tours and activities · what we deliver
What gets built — Google Ads · Tours and activities
Click identifier captured and persisted
Bookings run months ahead of departure.
Carried into the reservation system
Onto the booking record.
Completed departure fires the conversion
At the booking value with the channel.
Cancellations reversed
Weather and minimum-numbers cancellations are common.
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 The reservation system — departures completed by departure date, by channel, for the same window. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Tours and activities questions, answered
Yes, through conversion adjustments, which let you retract or restate a conversion you already uploaded. Confirm the time limit for adjustments in your account before relying on it for cancellations that happen close to departure.
Check which booking path your listings use. If the booking completes on your own site, the same direct-booking conversion applies; if it completes on a partner, treat it like an OTA booking with no identifier.
Reported separately, always. They arrive at materially lower margin through a channel that carries no click identifier, so blending them makes direct acquisition look worse and OTA look free — the opposite of the truth.
Because weather and minimum-numbers cancellations are frequent in this business. A booking is a promise; a completed departure is revenue, and the gap between them varies enough by season to change which campaign looks best.
Often not against the original click — that exceeds Google's 90-day window. Optimize on the booking, which happens near the click, and report departure revenue separately.
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 The reservation system — departures completed by departure date, by channel, for the same window. An upload that succeeds is not an upload that matched.
More on Google Ads · Tours and activities
- Tours and activitiesConversion tracking for tour operators, measured in completed departures
- Meta · Tours and activitiesMeta Ads conversion tracking for tour operators and activity businesses
- TikTok · Tours and activitiesTikTok Ads conversion tracking for tour operators and activity businesses
RELATED GUIDES
More for tour operators: other angles on the same outcome
- Tours and activitiesConversion tracking for tour operators, measured in completed departures
- Google Ads · Pet careGoogle Ads conversion tracking for pet grooming and boarding businesses
- Google Ads · Dog trainingGoogle Ads conversion tracking for dog training businesses
- Google Ads · Abandoned cart → recoveredHow to track cart abandonment to recovered sale for Google Ads
- Google Ads × Booking SystemHow to reconcile Google Ads against your booking or reservation system
- Aspenware → Google AdsConnecting Aspenware to Google Ads
- ZauiConversion tracking for the Zaui booking engine
- Google Ads · Window tintingGoogle Ads conversion tracking for window tinting businesses
Free · 30 min
Get Google Ads reporting what tour operators and activity businesses actually earn
Free30 minutesNo obligation
