On this page
A UTM link is an ordinary link with a few labels after it: `?utm_source=newsletter&utm_medium=email&utm_campaign=spring-2026`. Google Analytics reads those labels and files the visit under the channel they describe. Without them a click from your newsletter often shows up as Direct, and you cannot tell which email worked.
This UTM builder does three things. It writes the link in lower case and without spaces. It shows the channel GA4 will count the click in, using the rules Google publishes for its default channel group. And it warns you when something breaks that channel: a medium GA4 does not know, a source with a capital letter, or a link that already carries old UTM parameters. Everything runs in your browser and nothing is stored.
For what a UTM code is and where the name comes from, read what is a UTM code. This page is about the values you type, so your Google Analytics report adds up.
Five checks on a tagged link
- Source and medium are filled in, all lower case.
- The medium is one GA4 knows: email, cpc, paid_social, social, display, referral.
- The campaign name carries the year, so you can still read it next spring.
- The link goes to a page outside a login and loads without an error.
- Google Ads links carry no UTM when auto-tagging is on.
- The link is in your shared list of links, with the date and the place it went.
The five fields and what goes in them
| Field | Parameter | Example | Needed |
|---|---|---|---|
| Source | utm_source | newsletter, facebook, flyer | yes |
| Medium | utm_medium | email, paid_social, print | yes |
| Campaign | utm_campaign | spring-2026 | recommended |
| Term | utm_term | bathroom-refit | no |
| Content | utm_content | button-top, button-bottom | no |
The source says where the link sits: the site, the newsletter or the flyer. The medium says what kind of channel it is, and that is where most reports go wrong. GA4 picks the channel mainly from the medium, and only words Google recognises produce one. Type `utm_medium=mail` instead of `email` and your newsletter ends up in Unassigned.
The campaign is your own name for the push. Content keeps two links in one email apart, such as the button at the top and the text link at the bottom. GA4 also reads utm_id, a campaign ID for when you upload cost data, and utm_source_platform; most small teams can leave both empty.
Which medium lands in which channel
| You enter as medium | Source | GA4 channel |
|---|---|---|
| newsletter | ||
| paid_social or cpc | facebook, instagram, linkedin | Paid Social |
| social | facebook, instagram, linkedin | Organic Social |
| cpc | google, bing | Paid Search |
| display or banner | a news site | Display |
| referral | a partner site | Referral |
| print or qr | flyer | Unassigned |
The last row surprises people. GA4 has no channel for print, so a QR code on a flyer lands in Unassigned whatever you call it. That is fine as long as you know: the source and medium report still shows `flyer / print`. If you want a channel of its own, build a custom channel group in GA4.
Google Ads and auto-tagging
On Google Ads you usually add no UTM at all. With auto-tagging on, Google appends a `gclid` to every click, and in GA4 that automatic tag always wins over your own parameters; there is no setting to reverse it. Google also calls auto-tagging a required feature for conversion tracking. The builder tells you when you enter google as source and cpc as medium. For Microsoft Ads, Meta and LinkedIn you do use UTM, in the URL parameters field of each ad.
UTM links in practice
Do UTM codes hurt SEO?
Not when you only put them on links from outside your site. Google ignores the parameters for ranking, and a canonical tag without parameters keeps the plain page as the one that counts.
How do I add UTM to a Facebook ad?
In Ads Manager, open the ad and find URL parameters under Tracking. Paste everything after the question mark. Meta can fill in dynamic values too, such as the campaign name.
Can I shorten a UTM link?
Yes. A short link redirects to the long one and keeps the parameters. Open the short link once and check that the UTM is still in the address bar.
Why is my campaign missing in GA4?
Reports can lag up to 48 hours. If the source shows but the channel is Unassigned, GA4 does not know the medium. If you see (not set), the parameter was missing from the link.
Should I tag links inside my own site?
No. A UTM on an internal link starts a new session with a false source, so the visit loses where it really came from. Tag only links that live outside your site.
Mistakes that quietly break a report
| Mistake | What happens | What the builder does |
|---|---|---|
| Capitals (Facebook) | GA4 counts facebook and Facebook as two sources | lowers everything and warns |
| Spaces in the campaign | the link breaks in some mail apps or gets %20 | swaps spaces for hyphens |
| Unknown medium (mail, fb) | the visit lands in Unassigned | shows the channel and warns |
| Old UTM in the link | two utm_source values, GA4 takes the first | lists the parameters already there |
Keep a plain list of every link you tag: date, place, source, medium, campaign and the full link. Your team then spells things the same way. Once you know the figures per channel, the ROAS calculator shows which campaign pays for itself and the marketing budget calculator how much each channel can take. To see what clicks cost before you start, try the Google Ads budget calculator.