# UTM parameters: the five tags, naming rules and examples

> UTM parameters tell your analytics which campaign sent each visit. Learn the five tags, naming conventions, examples for email, social and ads, and common mistakes.

Source: https://blinkhop.com/guides/utm-parameters

UTM parameters are tags you add to the end of a URL, such as `?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026`, so your analytics tool can tell which source, channel and campaign sent each visitor. There are five classic parameters, and three of them belong on every tagged link. This guide explains each one, gives naming rules and ready-to-copy examples, and shows how to keep tagged links short.

## How UTM parameters work

UTM stands for Urchin Tracking Module, after the analytics product that became Google Analytics. The tags are ordinary query parameters: they do not change what the page shows. When a visitor lands, your analytics script reads them and files the visit under the right source, medium and campaign.

A tagged URL has three parts:

- **The page:** `https://example.com/spring-sale`
- **A question mark** that starts the query string: `?`
- **The tags, joined by ampersands:** `utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026`

Put together:

```text
https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026
```

Google Analytics and many other analytics tools read UTM tags. The definitions and examples in this guide follow Google's documentation.

## The 5 UTM parameters explained

| Parameter | What it answers | Example values | When to use it |
|---|---|---|---|
| `utm_source` | Who sent the visit? | `newsletter`, `linkedin`, `google` | Every tagged link |
| `utm_medium` | What kind of channel? | `email`, `social`, `cpc`, `referral` | Every tagged link |
| `utm_campaign` | Which campaign or promotion? | `spring_sale_2026`, `product_launch` | Every tagged link |
| `utm_term` | Which paid keyword? | `linen_shirts` | Paid search ads |
| `utm_content` | Which creative or placement? | `hero_button`, `footer_link` | Several links in the same message or ad |

[Google's help page on URL builders](https://support.google.com/analytics/answer/10917952) says you should always use `utm_source`, `utm_medium` and `utm_campaign`, and that missing parameters show up as "(not set)" in reports. The same page lists newer optional parameters that Google Analytics recognizes: `utm_id` for a campaign ID, `utm_source_platform`, `utm_creative_format` and `utm_marketing_tactic`. As of October 2026, Google notes that the last two are not currently reported in Google Analytics properties.

## UTM naming conventions that keep reports clean

Analytics tools group visits by the exact text of each value. Small differences split one campaign into several rows that you then have to add up by hand. These rules prevent that:

1. **Use lowercase only.** Values are case sensitive. Google's own example: `utm_source=google` is different from `utm_source=Google`.
2. **Pick one separator.** Use underscores or dashes, not both, and never spaces. A space turns into `%20` or `+` in the URL and is easy to get wrong.
3. **Use standard mediums.** Google Analytics assigns visits to default channels partly from the medium. For example, `email` goes to Email, `social` to Organic Social, `referral` to Referral and `affiliate` to Affiliates. A paid medium such as `cpc`, or anything starting with `paid`, counts as Paid Social when the source is a social network and as Paid Search when it is a search engine. The full rules are in [Google's default channel group documentation](https://support.google.com/analytics/answer/9756891).
4. **Name campaigns so they sort.** A pattern like `2026-10_product_launch` keeps campaigns in date order in every report.
5. **Write it down.** Keep a shared list of allowed sources, mediums and campaign names. With a Blinkhop account (early access), you can save UTM presets so the whole team reuses the same values.
6. **Never put personal data in tags.** Email addresses or names in a URL end up in analytics reports, browser histories and server logs.

| Instead of | Use |
|---|---|
| `utm_source=Facebook`, `fb` or `facebook.com` | `utm_source=facebook` |
| `utm_medium=E-mail` | `utm_medium=email` |
| `utm_campaign=Spring Sale 2026` | `utm_campaign=spring_sale_2026` |

## UTM examples for email, social and ads

Each example below uses `https://example.com/spring-sale` as the landing page. Swap in your own values, or let the free [UTM builder](https://blinkhop.com/tools/utm-builder) assemble the URL for you.

### Email newsletter

Give each link in the same email its own `utm_content`, so you can see which one people click:

```text
https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026&utm_content=hero_button
https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026&utm_content=footer_link
```

### Social media posts

Use the network as the source and `social` as the medium for unpaid posts and profile links:

```text
https://example.com/spring-sale?utm_source=linkedin&utm_medium=social&utm_campaign=spring_sale_2026&utm_content=carousel_post
https://example.com/spring-sale?utm_source=instagram&utm_medium=social&utm_campaign=spring_sale_2026&utm_content=bio_link
```

### Paid ads

Use a paid medium so the visit lands in a paid channel, and `utm_term` for search keywords:

```text
https://example.com/spring-sale?utm_source=linkedin&utm_medium=paid_social&utm_campaign=spring_sale_2026&utm_content=video_a
https://example.com/spring-sale?utm_source=bing&utm_medium=cpc&utm_campaign=spring_sale_2026&utm_term=linen_shirts
```

Some ad platforms add their own tracking parameters automatically. Check how those interact with manual UTM tags in your analytics settings before you use both on the same ads.

### Print and QR codes

Tag printed links too, then shorten them so the [QR code](https://blinkhop.com/guides/qr-code-for-a-link) stays simple:

```text
https://example.com/spring-sale?utm_source=flyer&utm_medium=print&utm_campaign=spring_sale_2026
```

Google's default channel rules have no channel for `print`, so these visits appear as "Unassigned" unless you create a custom channel group for offline campaigns.

## Plan a campaign's links in one table

Before a launch, list every place a link will appear and decide its tags in advance. A plan like this takes a few minutes and prevents messy reports later:

| Placement | utm_source | utm_medium | utm_content | Short link |
|---|---|---|---|---|
| Newsletter, main button | `newsletter` | `email` | `hero_button` | `zou.sh/spring-news` |
| Newsletter, footer | `newsletter` | `email` | `footer_link` | `zou.sh/spring-news-footer` |
| LinkedIn post | `linkedin` | `social` | `carousel_post` | `zou.sh/spring-li` |
| Instagram profile | `instagram` | `social` | `bio_link` | `zou.sh/spring-ig` |
| Printed flyer | `flyer` | `print` | `front_cover` | `zou.sh/spring-flyer` |

Every row shares `utm_campaign=spring_sale_2026`, so the campaign report adds them up, while the source, medium and content columns let you compare placements. Keep the table next to your campaign brief and add a row for each new placement instead of improvising tags at the last minute.

## Common UTM mistakes

1. **Tagging internal links.** UTM tags are for links that bring people in from elsewhere. A tagged link between your own pages replaces the real source of the visit with your tag.
2. **Inconsistent spelling.** `Facebook`, `facebook` and `fb` become three different sources.
3. **Leaving out the source or the medium.** Missing values show up as "(not set)" and the visit may land in the wrong channel.
4. **Adding a second question mark.** If the URL already has a query string, such as `?color=blue`, join the tags with an ampersand: `?color=blue&utm_source=newsletter`.
5. **Putting tags after a `#`.** Everything after `#` is a fragment, which browsers do not send to the server, and most analytics tools read UTM tags from the query string only. Place the tags before the `#`.
6. **Losing tags in a redirect.** If your landing page redirects and drops the query string, the tags never reach analytics. Open the tagged URL and check the address bar once the page has loaded.
7. **Reusing one tagged link everywhere.** If the newsletter and the social post share a link, you cannot compare them. Change at least `utm_content` or `utm_source`.
8. **Sharing long tagged URLs as they are.** They are hard to read, easy to break when someone edits them and they clutter posts. Shorten them.

## Short links and UTM parameters

A short link is the simplest way to share a tagged URL. The tags stay in the destination, so analytics receives them on every click, while people only see the short address.

1. Build the tagged URL, for example with the UTM builder.
2. Shorten it on blinkhop.com, through the API or with your AI assistant.
3. Share the short link, for example `https://zou.sh/spring-news`.

From a terminal, one request does it. The `?format=text` option returns only the short URL, and `--data-urlencode` keeps the ampersands inside the tagged URL intact:

```bash
curl -s "https://api.blinkhop.com/v1/links?format=text" \
  --data-urlencode "url=https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026&utm_content=hero_button"
```

Three details make this work well:

- **One short link per placement.** Each tagged URL is different, so each gets its own short link, and you can compare placements both in analytics and in Blinkhop's click counts.
- **Same URL, same link.** Shortening the exact same tagged URL again returns the existing short link instead of creating a duplicate.
- **Two views of the same traffic.** Blinkhop counts clicks on the short link per day, country, referrer domain and device type, without cookies, and leaves out bots and link previews. Your analytics tool counts visits on your site. The numbers measure different steps, so expect small differences. Read more about [privacy-first click analytics](https://blinkhop.com/features/analytics).

With an account (early access), saved UTM presets let you apply the same tags every time you shorten. Learn more on the [UTM feature page](https://blinkhop.com/features/utm).

## Key takeaways

- UTM parameters are query tags that tell analytics where a visit came from.
- Always set `utm_source`, `utm_medium` and `utm_campaign`, and add `utm_content` or `utm_term` when you need detail.
- Values are case sensitive, so use lowercase and a shared naming list.
- Use standard mediums such as `email`, `social` and `cpc` so visits land in the right channel.
- Never tag internal links or put personal data in tags.
- Shorten tagged URLs so people see a clean link while analytics still gets every tag.

## FAQ

### Which UTM parameters are required?

No parameter is strictly required, but Google recommends always using utm_source, utm_medium and utm_campaign. Missing parameters show up as (not set) in Google Analytics reports.

### Are UTM parameters case sensitive?

Yes. Google Analytics treats utm_source=google and utm_source=Google as two different sources, so use lowercase everywhere.

### Can I shorten a URL that has UTM parameters?

Yes. Shorten the full tagged URL and the short link sends visitors to it with every parameter intact. People see a clean link and your analytics still receives the tags.

### Should I add UTM parameters to internal links?

No. UTM tags belong on links that bring people to your site from somewhere else. Tagging links between your own pages replaces the real source of the visit with your own tag.
