UTM Parameters — Complete Reference

The five parameters, the source/medium conventions, and how GA4 turns them into channels.

No signup, no tracking

UTM parameters are five short tags appended to a URL that tell your analytics tool where a click came from. The tags themselves are trivial — the hard part is the conventions: which value goes in source versus medium, why "Email" and "email" become two different rows, and why a perfectly tagged campaign still lands in "Unassigned" in GA4. This page is the lookup table for all of it.

Everything here follows Google’s documented behavior as of August 2026 and works identically in most other analytics tools (Matomo, Plausible, Mixpanel) that read the same parameters. To build a tagged link interactively, the UTM link builder on this site does it in your browser — free, nothing logged.

The five classic parameters

ParameterWhat it answersExampleGA4 dimension it fills
utm_sourceWho sent the click — a site, app or listgoogle, newsletter, linkedinSession source
utm_mediumWhat kind of channel carried itcpc, email, social, qrSession medium
utm_campaignWhich promotion or pushblack_friday_2026, launch_v2Session campaign
utm_termWhich paid keyword (search ads)crm+softwareSession manual term
utm_contentWhich specific link or creativeheader_cta, variant_bSession manual ad content

Source and medium are required by convention — without both, analytics tools cannot classify the traffic. Campaign is strongly recommended. Term and content exist for A/B detail and paid search; skip them when they add nothing.

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=march_digest
A complete tagged URL. First parameter after ?, the rest joined with &.

utm_source vs utm_medium — the conventions matrix

The eternal confusion: source is the specific place (a site, an app, a list); medium is the category of channel. "facebook" is a source; "social" is its medium. These are the conventions that keep reports consistent:

Where the link livesutm_sourceutm_mediumNote
Google AdsgooglecpcUsually unnecessary — Google Ads auto-tagging (gclid) covers it; manual tags override it.
Facebook / Instagram adfacebook / instagrampaid_socialSome teams use cpc; paid_social maps cleanly to GA4’s Paid Social channel.
Organic Facebook postfacebooksocialSame for instagram, linkedin, tiktok — source names the network.
Newsletternewsletter (or the list name)emailmedium=email is what GA4’s Email channel matches on.
Partner or guest blogpartner-site.comreferralNames the actual site so it separates from organic referrals.
Display / banner adnetwork or site namedisplayGA4’s Display channel matches display, banner, cpm.
QR code on printflyer_march (what the print piece is)qrPrint is invisible to analytics; the QR link is its only voice.
WhatsApp / SMS blastwhatsapp / smsmessagingKeeps chat blasts out of your social numbers.
Podcast show notesshow namepodcastOr referral if you prefer fewer mediums.

How GA4 turns UTMs into channels

GA4 reports traffic in default channel groups, and each group is defined by rules over source and medium. Simplified, the ones that matter for manual tagging:

GA4 channelMatches when (simplified)
Emailsource or medium is email (also e-mail, e_mail).
Paid Searchmedium matches cpc, ppc or paid* and the source is a search engine.
Paid Socialmedium matches cpc/ppc/paid* and the source is a known social site.
Organic Socialsource is a known social site, or medium is social / social-network / social-media.
Displaymedium is display, banner, expandable, interstitial or cpm.
Affiliatesmedium is affiliate.
Referralmedium is referral.
Directsource is (direct) and medium is (none) — i.e. no information at all.

The debugging rule worth memorizing: traffic lands in "Unassigned" when the source/medium pair matches none of the rules. A medium of "newsletter", "e-blast" or "social-ads" is not wrong per se — it just matches nothing, and GA4 will not guess. Stick to the mediums in the table above and Unassigned stays empty.

The GA4-era parameters

ParameterWhat it doesWorth using?
utm_idA campaign ID that ties clicks to imported cost data (e.g. a spreadsheet of ad spend).Yes, if you import cost data into GA4; otherwise optional.
utm_source_platformThe platform that managed the buy (e.g. Google Ads, DV360).Mostly set automatically by ad platforms; rarely needed by hand.
utm_creative_formatThe ad format (video, banner, carousel).GA4 collects it, but reporting support is limited — check before you depend on it.
utm_marketing_tacticThe targeting tactic (remarketing, prospecting).Same caveat: collected, thinly reported.

Naming rules that save your reports

  1. Lowercase everything, always. UTM values are case-sensitive: "Email", "EMAIL" and "email" become three separate rows that you will be manually adding together forever.
  2. Pick one separator — underscore or dash — and never mix. spring_sale and spring-sale are two different campaigns to every analytics tool.
  3. Never put UTM parameters on internal links. A visitor clicking from your homepage to your pricing page with UTMs starts a new attributed session in GA4, erasing where they really came from.
  4. No spaces in values. A space becomes %20 in one tool and + in another, splitting your data. Use the separator instead.
  5. Keep parameters before any #fragment: page.html?utm_source=x#section works; page.html#section?utm_source=x silently loses the tags.
  6. If the URL already has a query string, append with & instead of a second ? — two question marks break the URL.
  7. Keep a shared registry (a spreadsheet is fine) of every source, medium and campaign value the team has used. Consistency is the entire value of UTMs.

Copy-paste templates

Newsletter:
https://example.com/?utm_source=newsletter&utm_medium=email&utm_campaign=april_digest

Organic social post:
https://example.com/?utm_source=linkedin&utm_medium=social&utm_campaign=feature_launch

Paid social ad:
https://example.com/?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_promo&utm_content=video_a

QR code on a flyer:
https://example.com/?utm_source=flyer_expo2026&utm_medium=qr&utm_campaign=booth_visits
Swap the values, keep the structure. Lowercase, one separator, no spaces.

The UTM link builder on this site assembles and URL-encodes these interactively, and the QR code generator turns the result into a print-ready code — both run entirely in your browser, with no account and nothing logged.

Related tools