Skip to content

UTM links: rules and register

Created 2026-10-23. Add every new link here before using it.

UTM tags are labels at the end of a link that tell our statistics where a visitor came from. They do not change the page. This page fixes the allowed values and keeps a register of every link we use, so everyone uses the same spelling and we know exactly what to search for in the reports. How the website handles them technically: Website: ads, SEO and analytics.

https://alpformflow.ch/?utm_source=instagram&utm_medium=social&utm_campaign=always-on&utm_content=bio
└────── page ───────┘└───────────────────────── UTM tags ─────────────────────────────────────┘
Parameter Answers Required
utm_source Where from? (platform, partner, printed item) ✅
utm_medium What kind of channel? ✅
utm_campaign Which campaign or period? ✅
utm_content Which ad, button or placement exactly? Recommended
utm_term Which keyword? (only for search ads, usually not needed) —

Rules

  • Only values from the tables below. A new value is first added here, then used.
  • Lowercase, hyphens, no spaces, no accents: hotel-alpina, not Hotel Alpina or hotel_alpina. Statistics count Instagram and instagram as two different sources.
  • The language is in the page address (/de/, or / for English), not in the UTM tags. Exception: utm_content of an ad may end with the language (-de, -en) when the same ad exists in several languages.
  • Where links point: ads → the page in the ad's language (/de/, / for English), because the ad's language is known. All other links → the main address /, because the reader's language is unknown: QR codes, printed items, profile and listing links (Instagram bio, WhatsApp, Google Business Profile, Apple Maps, local.ch), the email signature. / is the English page; phones set to DE, FR or IT are offered their language in a small dialog, and the UTM tags are kept (see below).
  • Never personal data in UTM tags: no names, emails, phone numbers.
  • Never UTM tags on links inside our own website (menu, language switcher, buttons). They would start a new visit with a wrong source.
  • One link per placement: every flyer, partner and QR code gets its own link, so we can compare them.
  • Google Ads adds its own click ID (gclid) automatically. UTM tags on Google ads are optional (see Ad platform settings).

Allowed values

utm_source: where from

Value Meaning
google Google ads (Search, Demand Gen, YouTube)
gbp Google Business Profile (website button, booking link, posts)
instagram Instagram (bio, Stories, posts, ads)
facebook Facebook (Page, ads)
whatsapp WhatsApp Business (profile, catalog, status, messages)
tiktok TikTok
youtube YouTube (channel, video descriptions; ads use google)
apple-maps Apple Business Connect / Apple Maps
bing Bing Places
localch local.ch
searchch search.ch
flyer Our flyers
poster Our posters
card Business cards, QR cards at the reception, voucher cards
hotel-…, chalet-…, gym-…, studio-… Partners, e.g. hotel-example, chalet-agency-example. One value per partner
email Emails we send (signature, later a newsletter)
newspaper-… Printed ads, e.g. newspaper-anzeiger-saanen [verify] the paper's name

utm_medium: what kind of channel

The values match the channel groups of Google Analytics (GA4), so visits are sorted correctly automatically.

Value Meaning GA4 channel
cpc Paid Google ads Paid Search / Paid Video
paid-social Paid Meta (and TikTok) ads Paid Social
social Free social media posts, bios, profiles, WhatsApp Organic Social
organic Business listings: Google Business Profile, Apple Maps, Bing, local.ch, search.ch Organic Search
referral Partner websites and partner messages Referral
print Flyers, posters, cards, newspaper (via QR code or short link) Unassigned → create a custom channel "Print" in GA4
email Emails we send (e.g. email signature, later a newsletter) Email

utm_campaign: which campaign

Value Meaning
always-on Permanent links: bio, profile, listings, email signature
opening-2026 Opening campaign (before and after the opening in December 2026)
winter-2026 Winter season 2026/27 (tourists)
spring-2027 Spring 2027 (anti-cellulite peak, locals)
summer-2027 Summer season 2027
vouchers-xmas-2026 Gift vouchers for Christmas 2026
remarketing Ads for website visitors who did not book

New campaigns: topic-year, e.g. easter-2027.

utm_content: which ad or placement

Free text, but in this format:

Type Format Examples
Ad format-idea-language video-therapist-de, video-atmosphere-en, photo-offer-de, carousel-steps-en
Profile link where the link sits bio, website-button, booking-button, story-link, post
Printed item item and place a6-station, a6-shops, card-reception, poster-gym
Google Business Profile which button website-button, booking-button, post

Every link we use. Status: planned, active, stopped. For ads, the UTM tags are set in the ad platform (see below), so only the pattern is listed.

# Where it is used source medium campaign content Link Status
1 Instagram bio instagram social always-on bio https://alpformflow.ch/?utm_source=instagram&utm_medium=social&utm_campaign=always-on&utm_content=bio planned
2 Facebook Page, website button facebook social always-on website-button https://alpformflow.ch/?utm_source=facebook&utm_medium=social&utm_campaign=always-on&utm_content=website-button planned
3 WhatsApp Business profile whatsapp social always-on profile https://alpformflow.ch/?utm_source=whatsapp&utm_medium=social&utm_campaign=always-on&utm_content=profile planned
4 Google Business Profile, website gbp organic always-on website-button https://alpformflow.ch/?utm_source=gbp&utm_medium=organic&utm_campaign=always-on&utm_content=website-button planned
5 Google Business Profile, booking link ("Appointment URL") gbp organic always-on booking-button https://alpformflow.ch/?utm_source=gbp&utm_medium=organic&utm_campaign=always-on&utm_content=booking-button#book planned
6 Apple Business Connect apple-maps organic always-on website-button https://alpformflow.ch/?utm_source=apple-maps&utm_medium=organic&utm_campaign=always-on&utm_content=website-button planned
7 local.ch listing localch organic always-on website-button https://alpformflow.ch/?utm_source=localch&utm_medium=organic&utm_campaign=always-on&utm_content=website-button planned
8 Opening flyer A6, Saanen station flyer print opening-2026 a6-station https://alpformflow.ch/?utm_source=flyer&utm_medium=print&utm_campaign=opening-2026&utm_content=a6-station planned
9 QR card at a partner hotel's reception (example) hotel-example referral always-on card-reception https://alpformflow.ch/?utm_source=hotel-example&utm_medium=referral&utm_campaign=always-on&utm_content=card-reception example
10 Email signature email email always-on signature https://alpformflow.ch/?utm_source=email&utm_medium=email&utm_campaign=always-on&utm_content=signature planned
11 Meta opening ads (Stories + Reels) instagram paid-social opening-2026 ad name, e.g. video-therapist-de Set in the ad (see below) planned
12 Google Search ads google cpc opening-2026 — Auto-tagging + final URL suffix (see below) planned
13 Gift voucher flyer, Christmas flyer print vouchers-xmas-2026 a6-shops https://alpformflow.ch/?utm_source=flyer&utm_medium=print&utm_campaign=vouchers-xmas-2026&utm_content=a6-shops#vouchers planned
14 Mailbox plate QR code, Dorfstrasse 6 poster print always-on postbox https://alpformflow.ch/?utm_source=poster&utm_medium=print&utm_campaign=always-on&utm_content=postbox planned

Printed items and QR codes: the QR code contains the full link to / with UTM tags (no short links). A long link makes a denser code, so keep the values short, print the code at least about 2.5 cm wide [verify], and test-scan every code with two phones before ordering the print.

Language for printed items: the QR code leads to /, the English page. If the phone's language is DE, FR or IT, a small dialog offers that language; the UTM tags are kept either way. The visitor can always switch the language in the header.

Ad platform settings

Meta (Instagram / Facebook ads)

In each ad, field URL parameters (under the website URL):

utm_source={{site_source_name}}&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}
  • Meta fills in the values itself: {{site_source_name}} becomes the platform (Instagram, Facebook…) [verify] exact values, {{campaign.name}} and {{ad.name}} the names we gave.
  • So name campaigns and ads by the rules above: campaign opening-2026, ad video-therapist-de.
  • Auto-tagging on (Account settings). Google Ads and GA4 then match clicks through gclid.
  • Optional, so that other tools (e.g. Plausible) see the same labels: account-level Final URL suffix
utm_source=google&utm_medium=cpc&utm_campaign={_campaign}&utm_content={adgroupid}

[verify] the parameter names in Google Ads; {_campaign} is a custom parameter set per campaign.

Where to find the results

Where What to look at
GA4 → Reports → Acquisition → Traffic acquisition Visits by source / medium and campaign; add the key event booking_completed for bookings per source
GA4 → Explore Own tables, e.g. campaign × language page × bookings
Plausible / Matomo (if used) Sources with UTM filters; goals for bookings
Meta Ads Manager / Google Ads Cost and bookings per campaign and ad
Cal.com bookings The source stored with each booking (see Website: ads, SEO and analytics)

Every month: per channel, cost ÷ bookings = cost per booking, compared with the limit in the private notes. For free channels (bio, listings, flyers, partners): bookings per link from this register.