Without tags, visits from WhatsApp messages, Viber communities, SMS, and many app browsers often show up in GA4 as “direct” or “unassigned”, which makes it impossible to see what worked. UTM parameters fix this by labelling each link with its source, medium, and campaign.

Use the builder below. Pick a channel to fill in source and medium, add a campaign name, and copy the link. It runs in your browser; nothing is sent anywhere.

UTM link builder

Pick a channel to fill source and medium, then add your campaign name. Values are converted to lowercase, and spaces become hyphens.

Hands typing on a laptop on a wooden desk

A simple naming convention

Consistent names matter more than perfect names. GA4 treats “Facebook”, “facebook”, and “fb” as three different sources. The builder converts everything to lowercase with hyphens, and these conventions keep reports clean:

Field What it means Examples
utm_source Where the click came from facebook, instagram, whatsapp, viber, sms, qr
utm_medium The type of channel paid_social, social, messaging, sms, email, offline, cpc
utm_campaign The campaign or promotion dashain-2083-sale, teej-collection, spring-admissions
utm_content Which ad, post, or placement reel-a, carousel-b, shop-poster, bill-insert
utm_term Keyword or audience (optional) gold-necklace, lookalike-buyers

Write your conventions in a shared sheet and use them every time. The presets in the builder follow this table. Hyphens and underscores both work; pick one style for campaign names and stick to it.

GA4’s default channel groups only recognise certain mediums (such as cpc, paid_social, social, email, and sms). Custom mediums like messaging or offline still record correctly as source/medium, but appear as “Unassigned” in the default channel report. If you rely on that report, create a custom channel group in GA4 for messaging and offline traffic.

  • WhatsApp and Viber: links in broadcast messages, community posts, statuses, and catalogue descriptions.
  • SMS: shorten the tagged link with a reliable shortener so it fits.
  • QR codes: on posters, packaging, menus, receipts, and event banners. Generate the QR from the tagged link so offline scans are tracked.
  • Influencer and creator posts: one utm_content value per creator.
  • Facebook and Instagram: in ad URLs or the URL parameters field, and in bio links.
  • Email newsletters, if your email tool does not add UTMs automatically.

For WhatsApp orders that close in chat rather than on the website, see UTMs and offline conversions for WhatsApp.

Common mistakes

  • Tagging internal links, which resets sessions and corrupts source data.
  • Inconsistent spelling or capitalisation across team members.
  • Tagging Google Ads links manually while auto-tagging is on.
  • Putting personal data (names, phone numbers, emails) in UTMs. Never do this.
  • Not checking reports: look at GA4’s Traffic acquisition report a day after launch to confirm the tags appear as expected.

Hypothetical example: a Pokhara restaurant prints two posters for a weekend offer, one in the restaurant and one at a partner hotel. Each poster’s QR code uses the same campaign name with a different utm_content (restaurant-poster, hotel-poster). After two weeks, GA4 shows which poster brought more menu visits and table bookings.