Skip to content
Utilboxes

UTM parameters explained: how to see which links bring you visitors

What utm_source, utm_medium and utm_campaign do, how to name them consistently, where the results appear, and the mistakes that corrupt your data.

Published

Tools for this job: UTM Link Builder · QR Code Generator · URL Encoder

You post a link in a newsletter, on social media and on a printed flyer. A week later your analytics shows a jump in visitors — but from where? Without tags, much of that traffic shows up as “direct” or under a vague referrer. UTM parameters fix that by labelling each link.

What a UTM link looks like

A tagged link is your normal address with a few labels added after a question mark:

example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale

The labels do not change the page. When a visitor arrives, analytics tools such as Google Analytics read them and record where the visit came from.

The parameters

  • utm_source — where the visitor came from: newsletter, facebook, linkedin, flyer.
  • utm_medium — the kind of channel: email, social, cpc for paid ads, print.
  • utm_campaign — the campaign or promotion: spring-sale, product-launch.
  • utm_content (optional) — which link, when one campaign has several: header-button versus footer-link, poster versus flyer.
  • utm_term (optional) — traditionally the paid search keyword.
  • utm_id (optional) — a campaign ID, used to join up with cost data.

Source, medium and campaign are the three that reports rely on. Leave one out and those visits show “(not set)” in its place.

Build a link step by step

  1. Open the UTM Link Builder and paste the address of the page you are linking to.
  2. Fill in source, medium and campaign — pick a suggestion or type your own.
  3. Add utm_content if you want to tell apart several links in the same campaign.
  4. Copy the tagged link, save it to your history, or download a QR code for print.

The builder keeps any query parameters and #section anchor already in the address, and places the tags where browsers expect them.

Naming: the part that decides whether your data is usable

Analytics tools treat the values as exact text. “Newsletter”, “newsletter” and “news-letter” become three separate sources, splitting your numbers three ways. A few rules prevent that:

  • Lower case only. The builder lower-cases values by default.
  • Hyphens instead of spaces. Spaces turn into %20 or + in the address and are easy to mistype.
  • A fixed list of sources and mediums, written down and shared with anyone else who makes links.
  • Standard medium names. Analytics tools group visits into channels such as Email, Organic Social and Paid Search partly by the medium. Using common values like email, social and cpc helps your visits land in the right channel.

The builder's history can be exported as a CSV file, which makes a simple record of every link you have created and the names you used.

Where the results appear

In Google Analytics 4, open Reports, then Acquisition, then Traffic acquisition. Change the main column to session source / medium or session campaign to see each tagged link separately. Other analytics tools have similar campaign reports.

Mistakes that corrupt your data

  • Tagging links inside your own site. When a visitor clicks a UTM link on your own pages, the visit is re-labelled with that internal campaign, overwriting where they really came from. Use UTM tags only on links that point to your site from elsewhere.
  • Putting personal information in tags. Never put email addresses, names or customer IDs in UTM values. They end up stored in analytics, and Google Analytics forbids sending personally identifiable information.
  • Inconsistent names across a team — the most common problem of all.

UTM links in print and QR codes

Nobody types a long tagged address from a poster, so put it in a QR code. Give each printed item its own utm_content value — poster, flyer, table-card — to see which one worked. The builder downloads a QR code for any link, and for other QR uses there is the QR Code Generator. Because the code holds your own tagged address directly, there is no third-party redirect in between.

Special characters

If a value must contain characters that have a meaning in addresses, such as & or =, they have to be percent-encoded. The builder handles this for you; to check an address by hand, the URL Encoder encodes a single value safely.

Tools used in this guide

More tools for this job

All guides