The Complete Guide to UTM Parameters: source, medium, campaign, content, term
No matter how hard you run ads, if you cannot tell where a visitor came from, performance analysis never even begins. UTM parameters attach that "source tag" to a link so tools like Google Analytics (GA4) can distinguish traffic sources precisely. This guide covers what each of the five UTM parameters means, which values to use, and the naming rules that keep your data from breaking later.
What is a UTM?
A UTM (Urchin Tracking Module) is a set of query parameters added to the end of a link. Adding UTMs to a landing page looks like this:
https://mysite.com/sale?utm_source=naver&utm_medium=cpc&utm_campaign=summer_sale
When a visitor arrives through this link, GA4 records "this person came from Naver (source) via paid search (medium) in the summer sale campaign." A UTM is not a technology that stores new data on a server — it is an agreement to carry source information in the URL so analytics tools can read it. No installation is needed; if the link is built correctly, it just works.
What the five parameters mean
There are five standard UTM parameters. The first three (source, medium, campaign) are used almost always; the last two (content, term) are optional.
| Parameter | Role | Example values |
|---|---|---|
utm_source | Where the traffic came from | google, naver, facebook, newsletter |
utm_medium | The marketing method | cpc, email, paid-social, display |
utm_campaign | The campaign name | summer_sale, 2026_launch |
utm_content | Creative / version | banner_top, text_link, ad_a |
utm_term | Paid search keyword | running-shoes, {keyword} |
utm_source answers "who sent it." Use google/naver for search engines, facebook/instagram/kakao for social, or the newsletter name for email. The key is to write the source that actually generated the traffic, not a brand or domain.
utm_medium answers "what kind of channel." This value is especially important because GA4 uses it to auto-classify channels. GA4 groups cpc/ppc/paid as Paid Search, email as Email, organic as Organic Search, and paid-social as Paid Social. So never put arbitrary words here — use agreed standard values to keep reports clean.
utm_campaign answers "what activity." Name it by marketing activity: a summer sale, a product launch, Black Friday. With a naming rule in place, reports stay sortable even as campaigns grow into the dozens.
utm_content distinguishes creatives within the same campaign. To compare a top banner and a bottom text link in the same sale, use banner_top and text_bottom. It is also how you split A/B test variants.
utm_term was designed to record paid-search keywords. In Google and Naver search ads, people often insert an auto-replace variable like {keyword} so the actual search term fills in automatically.
Standard values for medium
As noted, medium is tied directly to GA4's channel classification. Common standard values:
| medium value | Meaning | GA4 channel (approx.) |
|---|---|---|
cpc / ppc | Cost-per-click paid search | Paid Search |
display | Banner / display ads | Display |
paid-social | Paid social ads | Paid Social |
social | Organic social (non-ad) | Organic Social |
email | Email / newsletter | |
affiliate | Affiliate / partner | Affiliates |
referral | Links from other sites | Referral |
Non-standard values (e.g. facebook_ad, EMAIL) get dumped into "Unassigned/Other," making reports messy. Keep medium standardized above all.
Naming rules you must never break
Because UTMs accept any value, using them without rules quickly tangles your data — Google, google, and "google " (trailing space) are all counted as different sources. Share these rules across the whole team.
First, use all lowercase. GA4 is case-sensitive, so Naver and naver are different. Decide on lowercase from the start.
Second, use separators instead of spaces. Spaces become %20 in URLs and cause errors. Write summer_sale or summer-sale, and pick one separator style consistently.
Third, avoid non-ASCII and special characters. Non-Latin values encode into long strings that break links and miscount in some tools. Unless unavoidable, stick to lowercase letters, numbers, and _ or -.
Fourth, consistency matters more than correctness. Whether you write facebook or meta, what matters is using the same value every time. Keep a rules doc so every campaign references the same dictionary.
Common mistakes and how to avoid them
The most common mistake is tagging internal links on your own site. If you add UTMs to links that move between pages of your own site, GA4 mistakes it for a new external visit, breaking the session and erasing the original source. Only tag links that bring visitors from outside into your site.
Second is losing parameters through redirects. Short URLs or some ad-platform redirects can strip UTMs, so always click through and confirm the parameters survive on the final page.
Third is typos and inconsistency from building links by hand. A tool that lets you drag blocks together and save frequent formats as templates solves most of this. Easy block UTM is a free tool built for exactly this, with separators, forced lowercase, and template saving so your links always follow the same rules.
Summary
UTMs are not hard, but one thing is clear: tag them carelessly and your data becomes useless. Use source, medium, and campaign as the base, keep medium standardized, and write every value in lowercase with a consistent separator. Follow just these principles and your GA4 reports get dramatically cleaner — and you finally see which channels actually drive revenue.