# UTM parameters: the complete guide, with a naming scheme that holds up

> What each UTM parameter does, the naming rules GA4 actually applies, a scheme for source, medium and campaign, and the mistakes that break your reports.

Source: https://datacenter.so/guides/utm-parameters
By the Datacenter team. Updated October 23, 2026.

UTM parameters are tags you add to the end of a link so your analytics knows where a visit came from. They are the most reliable source signal you control: a referrer can be dropped by an app or a browser, but tags written into the link arrive with the visit.

This guide covers what each parameter does, a naming scheme that keeps reports clean, and the mistakes that quietly ruin them.

## The parameters

| Parameter | Answers | Example |
|---|---|---|
| `utm_source` | Who sent the visit | `instagram`, `google`, `newsletter` |
| `utm_medium` | What kind of channel | `social`, `cpc`, `email`, `sms`, `qr` |
| `utm_campaign` | Which push or offer | `spring-sale`, `webinar-oct` |
| `utm_content` | Which link, creative or placement | `bio`, `story`, `video-a` |
| `utm_term` | Which keyword or audience | `running-shoes`, `lookalike-1` |
| `utm_id` | A campaign id, for joining cost data | `cmp-1042` |

Google says to always use `utm_source`, `utm_medium` and `utm_campaign`, and GA4 also reads `utm_id`, `utm_source_platform`, `utm_creative_format` and `utm_marketing_tactic` ([Google](https://support.google.com/analytics/answer/10917952)). Google notes the last two are not currently reported in GA4. Any parameter you leave out shows as `(not set)`.

The names come from Urchin, the analytics company Google bought in 2005 that became Google Analytics. Every major analytics tool reads them now, including Datacenter, Plausible, Matomo and Shopify.

## Source and medium do different jobs

The most common mistake is putting the same idea in both.

- **Source** is the specific site, app or list: `facebook`, `instagram`, `google`, `bing`, `newsletter`, `partner-name`.
- **Medium** is the kind of channel: `social`, `paid-social`, `cpc`, `email`, `sms`, `qr`, `print`, `referral`.

`utm_source=facebook&utm_medium=facebook` tells you nothing the source did not. `utm_source=facebook&utm_medium=paid-social` tells you it was a paid Facebook ad, not a post.

## The medium decides the channel in GA4

GA4 sorts each visit into a channel, such as Paid Social or Email, by rules on source and medium ([Google](https://support.google.com/analytics/answer/9756891)). Your medium values have to match those rules, or visits fall into "Unassigned":

- **Email** matches a source or medium of `email`, `e-mail`, `e_mail` or `e mail`.
- **Organic Social** matches a known social source, or a medium of `social`, `social-network`, `social-media`, `sm`, `social network` or `social media`.
- **Paid Social** needs a known social source and a medium matching `^(.*cp.*|ppc|retargeting|paid.*)$`: `cpc`, `ppc`, `paid-social` and `paid_social` all work.
- **Referral** matches a medium of `referral`, `app` or `link`.

So `utm_medium=newsletter` does not land in Email, and `utm_medium=ig` does not land in Social. Pick the values the rules expect. Channel rules are not case sensitive, but parameter values are, which is the next point.

## Case matters

GA4 treats `utm_source=Google` and `utm_source=google` as two different sources ([Google](https://support.google.com/analytics/answer/10917952)). One teammate typing `Facebook` and another typing `facebook` splits the same channel into two rows. Pick one rule and enforce it. The simplest:

- lowercase everything,
- hyphens between words, no spaces,
- no dates in `utm_source` or `utm_medium`, only in `utm_campaign` if you need them.

## A naming scheme you can copy

| Where the link goes | utm_source | utm_medium | utm_content |
|---|---|---|---|
| Instagram bio | `instagram` | `social` | `bio` |
| Instagram story | `instagram` | `social` | `story` |
| TikTok bio | `tiktok` | `social` | `bio` |
| Meta ads | `facebook` | `paid-social` | the ad name |
| Google Ads | `google` | `cpc` | the ad |
| Email newsletter | `newsletter` | `email` | the link or button |
| SMS | `sms` | `sms` | the message |
| QR code on print | `qr` | `qr` | where it was printed |

`utm_campaign` carries the push itself: `spring-sale`, `black-friday-2026`, `webinar-oct`. Keep a shared list of campaign names, so the same campaign has one spelling everywhere.

These are the presets in Datacenter's [UTM builder](https://datacenter.so/tools/utm-builder) and link form, so links made there follow the scheme automatically.

## Let ad platforms fill in the names

Typing ad names into tags by hand drifts out of date the moment someone renames an ad. Ad platforms can fill them in for you with dynamic values in the URL parameters field:

- **Meta:** `utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}`
- **Google Ads:** auto-tagging adds `gclid` on its own, and ValueTrack values such as `{campaignid}` and `{keyword}` work in a tracking template.
- **TikTok:** `__CAMPAIGN_NAME__`, `__AID_NAME__` and `__CID_NAME__`.

Check each platform's current help page before relying on these: the names change from time to time. The [click ids guide](https://datacenter.so/guides/click-ids-explained) covers `gclid`, `fbclid` and the others.

## Six mistakes that break reports

1. **Tagging internal links.** A UTM tag on a link from your own home page to your shop replaces the real source of that visit. In GA4, later key events are credited to your own tag instead of the ad or post that brought the visitor. In Datacenter, a tagged link always starts a visit with its tag. Never tag links between your own pages.
2. **Mixed case.** `Email` and `email` become two rows that never add up.
3. **Medium values GA4 does not recognize.** `newsletter`, `ig`, `fb-ads` and `paid` fall outside the channel rules or land in the wrong channel.
4. **Redirects that drop the query string.** Test each landing page: open it with `?utm_source=test` and check the tag is still in the address bar after every redirect.
5. **Personal data in tags.** Never put an email address or a name in a UTM value. It ends up in analytics reports and in the history of everyone who shares the link.
6. **Long, ugly links in public places.** People trim them, and a trimmed link loses its tags. Use a short link for bios, print, SMS and anything spoken aloud.

## Short links and UTM tags work together

A [short link](https://datacenter.so/glossary/short-link) such as `go.yourbrand.com/spring` keeps the tags out of sight. It counts the click itself, then forwards to the full tagged address. That gives you two records: the click, even if the visit is never counted, and the tagged visit on your site. It is the most reliable way to track a bio link, a QR code or a text message. See [how to track an Instagram link in bio](https://datacenter.so/guides/track-instagram-link-in-bio) and [how to track SMS link clicks](https://datacenter.so/guides/track-sms-link-clicks).

## Common questions

### Are UTM parameters bad for SEO?

No, as long as you only use them on links from other places to your site. Your pages should carry a canonical tag pointing to the address without the tags, so search engines index one version.

### Are UTM parameters case sensitive?

Yes. In GA4, `Google` and `google` are separate values. GA4's channel rules ignore case, but your source, medium and campaign reports do not.

### Do I need UTM tags on Google Ads links?

Not for GA4 if auto-tagging is on, since GA4 reads the `gclid`. Many teams add them anyway, so other tools that cannot read Google's click data still see the campaign.

### What is the difference between utm_content and utm_term?

`utm_term` was made for the paid keyword. `utm_content` tells apart links or creatives in the same campaign. Many teams use `utm_term` for the ad set or audience on social ads, which is fine if everyone does it the same way.

### Can UTM parameters track conversions?

They tell analytics where a visit came from. The conversion is counted by your analytics or store, and credited to that source by its attribution rule.

## Sources

- Google Analytics Help: [URL builders: collect campaign data with custom URLs](https://support.google.com/analytics/answer/10917952), [Default channel group](https://support.google.com/analytics/answer/9756891). Checked October 2026.
- Ad platform dynamic values were checked against each platform's help pages in October 2026.

## Where Datacenter fits

Datacenter's free UTM builder and its short links use platform presets (Instagram bio, SMS, email, QR, Meta and Google ads), so every link follows one lowercase scheme without anyone remembering it. More: https://datacenter.so/tools/utm-builder
