Skip to main content
UTM guide

UTM Parameters Explained: Source, Medium, Campaign and GA4

The five UTM parameters, what each one is for, how to combine them without breaking a report, and how Google Analytics 4 turns them into channels.

What a UTM parameter is

A UTM parameter is a label you add to the end of a link so your analytics can tell where a visit came from. UTM stands for Urchin Tracking Module, after the company Google bought to build Analytics; the name has stuck even though nothing about it is specific to Google anymore. The parameters are just extra pieces on the end of a URL, after a question mark, and every serious analytics tool reads them.

They exist because a browser tells your analytics almost nothing about where a click came from. It can usually see the previous site, and not much else. It cannot tell your Tuesday newsletter from your Thursday one, or the link in a post from the link in your bio, because both arrive looking identical. UTM parameters fix that by putting the answer in the link itself: you decide what a link is called before you send it, and the analytics tool reads those labels when the page loads.

There are five of them. Three you set on almost every link, and two you use occasionally. The rest of this guide is what each one is for, how to combine them correctly, and how Google Analytics 4 turns them into the channels you see in your reports.

The five UTM parameters

Three are used by convention on nearly every tagged link. Two are optional and usually left empty.

ParameterRequiredWhat it answersExample value
utm_sourceYesThe specific place the click came fromgoogle, newsletter, linkedin, partner-name
utm_mediumYesThe kind of traffic it iscpc, email, social, referral, affiliate
utm_campaignYesThe campaign the link belongs tospring-sale-2026, q3-webinar
utm_contentNoWhich link it was, when a campaign has severalheader-button, footer-link, variant-b
utm_termNoThe paid search keywordrunning-shoes (usually set by the ad platform)

Only utm_source, utm_medium and utm_campaign are needed for a link to be useful. utm_content and utm_term earn their place in specific situations, covered below.

Source vs medium: the one distinction that matters

Source and medium are the pair people get backwards, and getting them backwards is what quietly breaks a report. The rule is simple once you see it: medium is the category, source is the specific thing inside that category.

Medium answers "what kind of traffic is this?" and should come from a short list your whole team agrees on: email, cpc, social, referral, affiliate. Source answers "which one?" and can be anything, because there are genuinely lots of places traffic comes from: google, bing, newsletter, linkedin, a partner's name.

So a link in your email newsletter is medium=email, source=newsletter. A Google search ad is medium=cpc, source=google. If you find yourself putting the same word in both, one of them is wrong.

A quick test: could several different sources share this medium? If yes, the medium is right. Lots of sources are email (your newsletter, a partner's newsletter, a transactional email). Only one thing is newsletter. That is the difference.

Correctly constructed example URLs

The parameters go after the page address, separated from it by a ? and from each other by &. The order does not matter to the analytics tool. Spaces are not legal in a URL, so a value with a space is either hyphenated or encoded as %20. Here are three that are built correctly.

A link in an email newsletter
https://example.com/spring?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale-2026
A Google search ad
https://example.com/shoes?utm_source=google&utm_medium=cpc&utm_campaign=running-shoes&utm_term=trail-running-shoes
Two links in the same campaign, told apart with content
https://example.com/offer?utm_source=linkedin&utm_medium=social&utm_campaign=q3-webinar&utm_content=header-cta https://example.com/offer?utm_source=linkedin&utm_medium=social&utm_campaign=q3-webinar&utm_content=footer-cta

You do not have to assemble these by hand. The free UTM builder encodes the values, keeps any parameters already on the destination, and leaves the two optional fields empty unless you fill them.

How GA4 reads utm_medium into a channel

GA4 groups traffic into default channels, and utm_medium is the main input. Some mediums decide the channel on their own; the paid channels also need a recognized source. These are Google's current default rules, simplified.

If utm_medium isGA4 default channelCondition
emailEmailThe medium alone is enough. e-mail, e_mail and e mail also match.
organicOrganic SearchThe medium alone is enough (or a recognized search source).
socialOrganic SocialAlso social-network, social-media, sm. The medium alone is enough.
referralReferralAlso app and link.
affiliateAffiliatesThe exact word affiliate.
display, banner, cpmDisplayAlso expandable and interstitial.
cpc, ppc, paid...Paid Search / Social / VideoOnly if the source is a recognized site of that type. The medium matches a paid pattern (contains cp, or ppc, retargeting, paid...), and the channel is decided by whether the source is a known search engine, social network or video site.
audioAudioThe exact word audio.
smsSMSSource or medium of sms.

The important nuance: cpc does not by itself mean Paid Search. utm_medium=cpc with utm_source=google is Paid Search; the same cpc with utm_source=newsletter is not, because a newsletter is not a recognized search engine. If a paid medium has an unrecognized source, GA4 may not place it in a paid channel at all. Also note that when Google Ads auto-tagging (the gclid) is on, GA4 attributes the click from the gclid and can ignore your utm values, so you rarely tag Google Ads links by hand.

When utm_content and utm_term are actually useful

Most links do not need either. Reach for them only when they answer a question you will really ask.

1. utm_content: same campaign, several links

Use it when one campaign sends more than one link and you want to tell them apart. The same offer in the header and the footer of an email, or two creative variants of an ad. Without it, both land under one campaign with no way to see which pulled the click.

2. utm_term: paid search keywords

It was built for the keyword behind a paid search click. If you run search ads with auto-tagging, the platform fills this in for you, so you almost never set it by hand. Tagging it manually only makes sense for keyword-level links you are building yourself.

3. When in doubt, leave them empty

An empty optional parameter is cleaner than one filled with a value you will never look at. You can always add utm_content later; you cannot easily un-split a report that was fragmented by a value nobody needed.

Common mistakes, and what they do to a report

None of these throw an error. They just quietly make the numbers wrong.

MistakeWhat happens
Inconsistent case: Email, email, EMAILAnalytics treats them as three separate mediums, so one channel is split across three rows and none of them shows the real total.
Source and medium swappedTraffic lands in the wrong channel. medium=newsletter, source=email reverses the categories and your channel grouping stops making sense.
Tagging internal linksA link between two pages of your own site starts a new session and credits the visit to your own campaign, overwriting how the visitor actually arrived. Only tag links that come from somewhere else.
A different spelling every timepaid-social one week, paidsocial the next, paid_social the week after. Each spelling is a new medium, and the channel quietly fragments.
Spaces and capitals in campaign namesSpring Sale 2026 and spring-sale-2026 are two campaigns to the analytics tool. Pick one form and keep to it.

Every one of these is a naming problem rather than a technical one, which is why a convention matters more than a tool.

Consistency is the whole game

Nothing enforces UTM values. The analytics tool records exactly what is in the link, character for character, and a single stray capital or a second spelling of the same medium splits a campaign across rows that should have been one. That is the real work: not building a link, but building every link the same way as the last one.

For a convention you can adopt today, with a copyable template and the rules that keep a report readable as a team grows, see the UTM naming conventions guide.

Frequently asked questions

Build a UTM link, correctly, in a few seconds.

The free builder encodes the values, keeps the parameters already on your destination, and can lowercase and hyphenate so casing never splits a report.