Built for

Hotels and tour operators

Includes

GA4 channel check · QR code

Price

Free to use

Travel & tourism UTM builder.

Pick a channel, choose the destination and product, and the campaign name follows one convention every time.

01The builder

Free · runs in your browser · nothing uploaded

02The basics

Five tags, one link

What UTM tags actually do.

UTM tags are short labels added to the end of a link. When someone clicks, your analytics reads the labels and records exactly where the visit came from.

No extra code is needed for GA4 to read them. The five standard tags answer five questions about every visit, and GA4 uses the source and medium to decide which channel the visit belongs to.

The five tags

TagAnswersExample
utm_sourceWhere did the click come from?google, facebook, newsletter
utm_mediumWhat type of traffic is it?cpc, paid_social, email
utm_campaignWhich campaign was it?spring-sale_202611
utm_contentWhich ad or link was clicked?hero-banner, video-a
utm_termWhich keyword or audience?running shoes
03Why it matters

Four reasons to tag every link

Why it matters for reporting.

01

Credit goes to the right campaign.

Without tags, a click from an email or WhatsApp message often shows up as Direct, and the campaign that earned it gets no credit.

02

Channels are compared fairly.

One naming convention across every channel means paid, owned and partner traffic line up in the same report.

03

Leads and revenue connect to marketing.

Stored with each lead, UTM tags show which campaign produced customers, not just clicks.

04

Budget follows results.

Clean data shows which ads and messages to scale and which to stop.

04How it works

From link to report

Tag the link. Then trust the report.

Use the builder

Step 01

Paste the offer page, room page or booking engine link.

Step 02

Choose the channel, including metasearch, OTAs, partners and in-room placements.

Step 03

Build the campaign name from property, destination, product, season, source market and booking window.

Step 04

Copy the link, then test that the tags survive the jump to your booking engine.

The naming convention

Pattern{destination}_{product}_{date}

Exampledubai_room-stay_202611

Parts are joined with underscores and words inside a part use hyphens, so you can split the name back into columns in a spreadsheet or Looker Studio. Optional parts are skipped when empty. You can switch the separator under Formatting rules.

05Cheat sheet

Source, medium and GA4 channel

Every channel, mapped to GA4.

The source and medium each preset uses, and the GA4 default channel it reports under. Unassigned means GA4 has no default rule for it; add a custom channel group rule.

Channelutm_sourceutm_mediumGA4 channel
Google Ads: SearchgooglecpcPaid Search
Google Hotel AdsgooglecpcPaid Search
Google Ads: Performance MaxgooglecpcPaid Search
Microsoft AdvertisingbingcpcPaid Search
TripadvisortripadvisorcpcPaid Other
TrivagotrivagocpcPaid Other
KayakkayakcpcPaid Other
SkyscannerskyscannercpcPaid Other
Facebook adsfacebookpaid_socialPaid Social
Instagram adsinstagrampaid_socialPaid Social
TikTok adstiktokpaid_socialPaid Social
Snapchat adssnapchatpaid_socialPaid Social
Pinterest adspinterestpaid_socialPaid Social
Google Ads: DisplaygoogledisplayDisplay
Google Ads: Demand GengooglecpcPaid Search
YouTube adsyoutubecpvPaid Video
Email newsletternewsletteremailEmail
Pre-arrival emailpre-arrivalemailEmail
Post-stay emailpost-stayemailEmail
WhatsApp message or broadcastwhatsappsocialOrganic Social
SMSsmssmsSMS
Loyalty app pushloyalty-apppushMobile Push Notifications
Instagram bio or storyinstagramsocialOrganic Social
Facebook postfacebooksocialOrganic Social
YouTube descriptionyoutubevideoOrganic Video
OTA listing linkbooking.comreferralReferral
Travel agent or DMCagent-namereferralReferral
Travel blogger or affiliateblogger-nameaffiliateAffiliates
InfluencerinstagraminfluencerOrganic Social
Google Business ProfilegoogleorganicOrganic Search
In-room or lobby QRin-roomqrUnassigned
Trade show QR (e.g. ATM, ITB)trade-showqrUnassigned
Brochure or print QRprintqrUnassigned
06Tips

For travel & tourism marketers

Tips that keep the data clean.

01

Check your booking engine.

If it runs on a different domain, set up cross-domain measurement in GA4 or the booking will be credited to your own site as a referral.

02

Tag source market separately from targeting.

The same offer often converts very differently for GCC, India and European travellers.

03

Use "early-bird" and "last-minute" consistently so you can compare booking windows across seasons.

04

Put in-room and lobby QR codes on their own source.

They show which on-property placements drive direct rebookings and upsells.

05

Tag the Google Business Profile website link for each property to separate map traffic from regular search.

07For your developer

Store UTMs with every lead

Get UTM data into your CRM.

GA4 counts visits. Your CRM or database records who became a lead or customer. Unless the UTM tags are saved with each record, the two never meet, and you can't tell which campaign produced which sale. Share this brief with your website developer.

What to ask for

Step 01

Read the UTM tags and ad click IDs from the URL on every page load.

Step 02

Save them in a first-party cookie for 90 days.

Keep a first-touch copy that is never overwritten, and a last-touch copy that updates on each new tagged visit.

Step 03

Ignore visits without UTM tags, so an untagged return visit never wipes the saved values.

Step 04

Add hidden fields for every value to every form: contact, booking, sign-up and checkout.

Step 05

Fill the hidden fields from the cookie when the form is sent.

Step 06

Store each value in its own column on the lead or order record, and map the same fields into the CRM.

Step 07

Test it: open a tagged link, send a form, and check the record shows the right values.

Fields to add to each lead or order

FieldWhat it holds
first_utm_source … first_utm_termFirst tagged visit. Set once, never overwritten.
last_utm_source … last_utm_termMost recent tagged visit before the form was sent.
gclid, fbclid, msclkidAd click IDs, for offline conversion uploads.
landing_pageFull URL of the first page seen.
referrerThe site the visitor came from.
first_touch_at, last_touch_atTimestamps of both visits.

A starting point for the developer

const KEYS=['utm_source','utm_medium','utm_campaign','utm_content','utm_term','gclid','fbclid','msclkid'];
const q=new URLSearchParams(location.search);
const hit={};KEYS.forEach(k=>{if(q.get(k))hit[k]=q.get(k);});
if(Object.keys(hit).length){
  hit.landing_page=location.href;hit.referrer=document.referrer;hit.at=new Date().toISOString();
  const save=(n,v)=>document.cookie=n+'='+encodeURIComponent(JSON.stringify(v))+';path=/;max-age=7776000;SameSite=Lax';
  if(!document.cookie.includes('utm_first='))save('utm_first',hit);
  save('utm_last',hit);
}

Never put names, emails or phone numbers in UTM tags. Store them only in your own database, under your privacy policy.

08Questions

The ones that come up most

Common questions.

01Why do my bookings show up as referrals from my booking engine?

If the booking engine is on another domain, GA4 starts a new session when visitors move to it and credits the booking engine as the source. Set up cross-domain measurement in GA4 and add the booking domain to the unwanted referrals list so the original campaign keeps the credit.

02How should I tag metasearch like Tripadvisor or Trivago?

Use the metasearch site as the source and cpc as the medium. GA4 doesn't have these sites on its search list, so they appear as Paid Other, which keeps them separate from Google Ads.

03Should I tag links on OTA listings?

Where the OTA lets you add a website link, yes. Tag it with the OTA as the source and referral as the medium, so you can see how many travellers check your own site before booking.

04How do I compare source markets?

Add the market to the campaign name, for example "beach-resort_maldives_holiday-package_summer_india_early-bird_202610". You can split it into columns later to compare cost per booking by market.

05Can I track QR codes in rooms and lobbies?

Yes. Use a source such as "in-room" and medium "qr", with the placement in utm_content. GA4 reports qr as Unassigned by default, so add a custom channel group rule if you want an Offline channel.

More UTM builders.

Scroll to Top