![]()
UTM tracking means adding short tags to the links you share, so Google Analytics can tell you which email, ad or social post sent a visitor to your booking page. For an escape room, the useful version goes one step further: it ties those tags to completed, paid bookings, not just visits. This guide covers the tags to use, how to name them, how to set up GA4 to read them, and where the data stops being reliable.
TL;DR
- Tag every link you control (ads, emails, social posts, partner listings) with at least utm_source, utm_medium and utm_campaign.
- Pick lowercase names once, write them down, and never improvise. Inconsistent tags split one channel into several rows.
- Clicks are not bookings. Mark a completed booking as a key event in GA4 so campaigns are judged on paid games.
- UTMs cannot see no-shows, refunds or empty slots. Pair them with your booking system’s own reports.
- Test every link yourself before it goes live.
Table of Contents
- What UTM parameters do for a booking page
- The parameters worth using
- A naming convention you can keep for years
- Where to put tagged links
- How to build, test and share a tagged link
- Seeing the data in GA4
- How to stop UTM data being lost
- What UTM tracking cannot tell you
- A worked example
- Our perspective
- Where Riddlio fits
- Privacy and whether UTMs are still worth using
- FAQ
- Sources
What UTM parameters do for a booking page
A UTM parameter is a label added to the end of a URL. When someone clicks a tagged link, the values travel to your analytics and are stored against that visit. Google’s documentation says utm_source identifies the referrer, utm_medium the marketing medium, and utm_campaign the product, slogan or promotion. Those values then appear in the Traffic acquisition report in GA4.
Here is what a tagged link for a Halloween email looks like:
https://yourvenue.com/book?utm_source=newsletter&utm_medium=email&utm_campaign=halloween_2026
The page the visitor lands on is identical. Only the tail changes, and that tail is what lets you answer a question every owner asks: where did my bookings come from?
Without tags, a good share of visits arrive as “direct” or get lumped under a vague referrer. Messaging apps, email clients, QR codes on flyers and some social apps often strip the source. A tag you add yourself survives all of that.
The parameters worth using
There are five in common use. Three are the core, two are optional.
| Parameter | What it answers | Escape room example |
|---|---|---|
| utm_source | Who sent the visitor | newsletter, facebook, google, tripadvisor |
| utm_medium | What type of channel | email, social, cpc, referral, qr |
| utm_campaign | Which promotion | halloween_2026, gift_vouchers_dec |
| utm_content | Which version of the creative | blue_banner, video_15s |
| utm_term | Which paid keyword | escape_room_near_me |
Google notes that utm_content and utm_term are optional but add granularity for testing different creatives or identifying specific paid search keywords. For most single-venue operators, three parameters plus utm_content on paid ads is plenty.
Why utm_medium matters most
GA4 sorts traffic into channel groups such as Email, Paid Social and Paid Search using source and medium rules. If you invent a medium like fb-promo or mailer, the visit may fall into “Unassigned” and vanish from the channel view. Stick to standard words: cpc for paid search, email, social, referral. If you want paid social tracked as paid, use a medium such as paid_social and check how it lands in your reports after the first few clicks.
A naming convention you can keep for years
The biggest source of bad UTM data is not technology. It is three staff members typing Facebook, facebook and fb for the same thing. Google’s guidance is to use a consistent, lowercase naming convention, because values are case-sensitive and differences split your reports into separate rows.
A simple rule set that works for a venue:
- Lowercase only. No capitals, ever.
- Underscores, not spaces.
summer_holiday_2026, notSummer Holiday. - Source is the platform, medium is the type.
instagramandsocial, notinstagram_story. - Campaign names say what and when.
valentines_couples_2027,corporate_outreach_q1. - Put the variant in utm_content. Keep the campaign name the same across versions so you can compare them.
- No personal data. Never put a customer’s name or email in a tag. Tags are visible in URLs and stored in reports.
Keep the list in a shared spreadsheet with one row per link: date created, where it was posted, the full URL and who made it. When a campaign ends, you can see exactly what you ran.
Where to put tagged links
Tag anything you place yourself, pointing at your booking page:
- Email and newsletters. Every button and text link. Add a separate
utm_contentfor each link if a message has several. - SMS. Reminder and promo texts that include a link to rebook or buy a voucher. Our automated SMS reminders can carry a link, so tag it as
smsmedium to see how many guests rebook from a text. - Paid ads. Most ad platforms can append tags automatically, but a manual tag gives you control over names.
- Social bios and posts. The link in your Instagram or TikTok bio gets one tag, and each post with a link gets its own campaign or content value.
- Google Business Profile. The booking and website buttons can take a tagged URL, so you can separate map and search visitors from the rest.
- Partner and listing sites. Hotels, tourism boards, corporate partners and review sites that link to you. Give each partner its own source.
- QR codes. Flyers, posters and in-venue cards. Use medium
qrand a campaign naming the placement, such aslobby_poster.
Do not tag links inside your own website, for example from your homepage banner to the booking page. An internal tag overwrites the original source and makes the visit look like it came from your own site.
How to build, test and share a tagged link
- Open a campaign URL builder. Google’s own URL builder guidance explains the fields. Enter your booking page address, then source, medium and campaign.
- Copy the full URL. Shorten it only with a link shortener you trust to pass the parameters through.
- Click it yourself. Open the link in a private window and watch the GA4 Realtime report. Google’s guidance is to test by clicking your own tagged link and confirming that the source and medium appear as expected.
- Complete the booking flow. Do not stop at the landing page. Go through to the confirmation step, because that is where tracking most often breaks.
- Share it and log it in your spreadsheet.
Allow time before you judge a result. Realtime shows a click within minutes, but standard reports can lag.
Seeing the data in GA4
There are two views, and they answer different questions.
- Traffic acquisition looks at sessions. It shows the source and medium of each visit, so it tells you which campaign brought a session in.
- User acquisition looks at where a person first arrived from, so it credits the channel that introduced them.
For a campaign that you want to judge on this week’s bookings, use Traffic acquisition and add the dimension Session source / medium or Session campaign. For the question “which channel finds me new customers?”, use User acquisition.
Connect the tags to a booking
Visits are only half the picture. A campaign that sends 400 visitors and zero bookings is a failure, however cheap the clicks. To close the loop, GA4 needs to know when a booking is completed. The steps:
- Make sure your booking confirmation fires an event, for example a purchase or a custom event such as
booking_complete. - In GA4, mark that event as a key event. Google explains that you must first have an event measuring the important interaction, then mark it. Standard properties allow up to 30 key events.
- Open your acquisition report and add key events as a column next to source / medium.
- If the event carries a value, such as the booking total, you can compare campaigns by revenue as well as count.
Then the report reads like this: newsletter / email / halloween_2026: 1,200 sessions, 38 bookings. That is a number you can act on.
How to stop UTM data being lost
The usual failure is at the handoff between your marketing link and the place where a guest pays. Three things cause most of it.
A booking widget on a different domain. If guests click from your website to a separate booking or payment domain, GA4 can treat the arrival as a new visit from your own site, and the original campaign is replaced by “referral”. Set up cross-domain measurement for every domain involved, and run your end-to-end test through the real payment step.
Redirects that strip parameters. Some link shorteners, old URL redirects and “www” versus non-“www” redirects drop everything after the question mark. Click your own tagged link and look at the address bar on the final page. If the tags are gone, so is your data.
Payment provider return pages. When a payment provider sends the guest back to a confirmation page, make sure that page is on a domain you measure, and that it is not listed as a referral exclusion problem. Otherwise the payment provider appears as the source of the booking.
Because booking and payment live together in our platform, a white-label booking widget and online booking calendar keeps the guest journey in one place, which gives you fewer handoffs where a tag can fall off. For paid social specifically, browser-side tracking misses conversions, and our write-up on server rules for Facebook Conversions API explains how to recover them.
What UTM tracking cannot tell you
UTMs describe how a visitor arrived. They say nothing about what happened after the booking, and an honest read of your data needs to respect that.
- No-shows and cancellations. A booking counts as a conversion the moment it is made. A group that books from a discount email and then does not turn up still shows as a success in GA4. To see which sources produce reliable guests, you need the booking record, which holds the status, and a way to match it to the source.
- Capacity and slot fill. UTMs do not know that Saturday 7pm was already full. A campaign may look weak simply because it ran when the rooms were sold out. Compare campaign results against open slots, not just against traffic.
- Refunds and vouchers. A gift voucher purchase is revenue now and a booking later. Track voucher sales as their own event and campaign, or they will blur your numbers.
- Cross-device journeys. A guest may see your Instagram post on a phone and book from a laptop that night. The booking appears as direct. Expect some under-counting of social and display.
- Word of mouth. Most escape room bookings follow a friend’s recommendation. That never carries a tag.
For judging campaigns on what they earned after all of this, see our piece on net contribution rather than gross ROAS, and for the metrics worth watching in the booking system itself, seven booking analytics metrics.
A worked example
Say a venue runs three activities in October and tags each one.
| Activity | Source / medium | Campaign | Sessions | Bookings |
|---|---|---|---|---|
| Past-guest email | newsletter / email | halloween_2026 | 900 | 42 |
| Paid social ad | facebook / paid_social | halloween_2026 | 2,400 | 31 |
| Lobby poster | poster / qr | lobby_poster | 150 | 12 |
These figures are illustrative, not benchmarks. The email converts at about 4.7% of sessions, the paid ad at about 1.3%, and the poster at 8%. The ad sent the most traffic and made the second-most bookings, so the next question is cost: if the ad spend divided by 31 bookings is higher than the average booking value after fees, it loses money. Then check cancellations for each row in your booking system before deciding where the November budget goes.
The same pattern applies to A/B tests. If you run two versions of an ad, keep the campaign name and change utm_content. Teams that run structured creative tests on entertainment promotions, such as the ad tech and analytics work from a direct response media agency, rely on exactly this kind of consistent tagging to compare versions fairly.

Our perspective
We build software for escape rooms, and the pattern we see is that owners over-invest in the tagging and under-invest in the question. A perfect UTM scheme still answers only “who clicked”. What an operator really wants to know is which marketing fills the slots that would otherwise stay empty, and produces guests who actually arrive.

So we suggest a ladder. Start with clean tags on every link. Next, count completed bookings, not visits. Then, and this is the step most skip, compare each campaign against the calendar: did it fill off-peak weekday slots, or did it just pull in Saturday guests who would have booked anyway? A campaign that fills a Tuesday 5pm room is worth more than one that adds a fourth booking to a full Saturday. That is why our analytics sit beside the booking calendar, not apart from it, and why we write about turning empty calendar slots into revenue.
Keep the system boring. A short list of names, one owner for the spreadsheet, a monthly look at the report. Consistency beats sophistication every time.
— Iosif Beraru
Where Riddlio fits
Riddlio is a booking and management platform made for escape room venues. It handles online booking, payments, SMS and email reminders, waivers, dynamic pricing and analytics in one place, with no booking commission. Plans are published on the pricing page: Starter is $29 per month, Pro is $79 per month and Unlimited is $199 per month, with Enterprise available on request. If you want your campaign reports and booking records to sit side by side, look at our escape room booking system.
Privacy and whether UTMs are still worth using
Yes, UTM tags are still widely used. They are just text in a URL, and they work the same way on every analytics tool that reads URLs. What has changed is how much you can see: browsers restrict some cookies, and some visitors decline analytics. That means your numbers will undercount, so treat them as a trend, not an audit.
In the United States, privacy rules differ by state, so there is no single national consent rule for marketing analytics. If you advertise to guests in several states, check your privacy notice and cookie banner with a qualified privacy lawyer. Whatever your setup, never place personal details in a UTM value and keep your privacy policy in line with what you actually collect.
FAQ
Do I need Google Analytics to use UTM tags?
No. The tags are part of the URL, so most analytics tools can read them. GA4 is the most common choice because it is free and reads the standard parameters automatically. Your booking system may also record the source of each booking.
Which UTM parameters are required?
In practice, use utm_source, utm_medium and utm_campaign on every link. Add utm_content when you test more than one version of an ad, and utm_term only for paid search keywords.
Why does my booking show as direct traffic?
The source was most likely lost on the way. Common causes are a redirect that drops parameters, a booking or payment page on another domain without cross-domain measurement, or a link opened in an app that hides the referrer. Click your own tagged link all the way through to the confirmation page and check where the tags disappear.
Can UTM tracking show me no-shows?
Not by itself. UTM data records the visit that led to a booking, not whether the guests turned up. To compare sources by no-show rate, match each booking’s status in your booking system to the campaign that brought it in.
Sources
- URL builders: Collect campaign data with custom URLs, Analytics Help
- Mark events as key events, Analytics Help
- Custom AdTech & Analytics, ProMedia