# How I build UTM links that I can still understand later

A beginner-friendly guide to UTM parameters, campaign tracking, naming conventions, and using a UTM Builder without creating messy analytics data.

- Date: 2026-09-27
- URL: https://ilham.dev/posts/how-to-build-utm-links-that-are-readable/
- Markdown: https://ilham.dev/posts/how-to-build-utm-links-that-are-readable/index.md
- Tags: utm, analytics, marketing, tools
- Reading time: 3 min


UTM links are normal URLs with tracking parameters added to the end.

A plain URL:

```text
https://example.com/pricing
```

A UTM URL:

```text
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=launch
```

The [UTM Builder](/tools/utm-builder/) helps build and parse these links without
forgetting a parameter or mixing naming styles.

## The simple idea

UTM parameters answer this question:

> Where did this visitor come from?

Analytics tools can read the parameters and group traffic by campaign.

The common UTM fields are:

- `utm_source`;
- `utm_medium`;
- `utm_campaign`;
- `utm_term`;
- `utm_content`;
- `utm_id`.

You do not always need all of them.

## Step 1: choose the final destination URL

Start with the real page people should visit:

```text
https://example.com/pricing
```

Make sure this URL works before adding tracking parameters. UTM tags do not fix a
broken destination.

## Step 2: set utm_source

`utm_source` says where the traffic comes from.

Examples:

```text
newsletter
google
linkedin
whatsapp
github
```

If I send a link in an email newsletter, I might use:

```text
utm_source=newsletter
```

Keep source names consistent. Do not use `Newsletter`, `newsletter`, and
`email_newsletter` for the same thing unless you want messy reports.

## Step 3: set utm_medium

`utm_medium` says the type of channel.

Examples:

```text
email
social
cpc
referral
qr
```

For a newsletter:

```text
utm_medium=email
```

For a paid search ad:

```text
utm_medium=cpc
```

Think of source as “where” and medium as “what kind of channel”.

## Step 4: set utm_campaign

`utm_campaign` names the campaign.

Examples:

```text
product_launch
black_friday_2026
september_newsletter
```

Pick a name that will still make sense later. A campaign name like `test` is not
helpful in reports.

I prefer lowercase names with hyphens or underscores, then use the same style
everywhere.

## Step 5: use utm_content for variants

`utm_content` is useful when two links point to the same page inside the same
campaign.

Example:

```text
utm_content=top_button
utm_content=footer_link
utm_content=image_banner
```

This helps answer:

> Which link placement got the click?

Do not put everything into campaign names. Use `utm_content` for variants.

## Step 6: use utm_term when it actually means something

`utm_term` is often used for paid search keywords. If you are not tracking keywords,
you may not need it.

Leaving unused fields empty is better than filling them with random values.

## Step 7: build the URL

Open [UTM Builder](/tools/utm-builder/) and fill the fields.

Example:

```text
URL: https://example.com/pricing
source: newsletter
medium: email
campaign: september_launch
content: top_button
```

Result:

```text
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=september_launch&utm_content=top_button
```

The tool handles URL encoding so spaces and special characters do not break the URL.

## Step 8: click-test the final URL

Before sending a UTM link to many people, open it in a browser.

Check:

- does the page load?
- do the parameters stay in the URL?
- does the website redirect and remove them?
- does the page show the correct content?
- is the link too long for the place you are sharing it?

If a redirect strips query parameters, analytics may lose the campaign data.

## Step 9: parse links you receive

The UTM Builder can also parse an existing UTM URL. This is useful when someone sends
a long link and you want to see what campaign values are inside.

Paste the URL and check whether the naming is consistent with your conventions.

## My UTM naming rules

I try to keep UTM values:

- lowercase;
- short but readable;
- consistent;
- free of private information;
- stable across campaigns.

Bad:

```text
utm_campaign=My Big Test Campaign Final FINAL 2
```

Better:

```text
utm_campaign=pricing_launch_2026
```

## My UTM checklist

Before sharing a tracked link, I check:

1. Is the destination URL correct?
2. Is `utm_source` consistent?
3. Is `utm_medium` consistent?
4. Is `utm_campaign` meaningful?
5. Do I need `utm_content` for variants?
6. Am I leaving unused fields empty?
7. Did I test the final URL in a browser?
8. Will this still make sense in analytics later?

UTM links are easy to create. The real discipline is naming them clearly enough that
future-you can read the report.
