UTM parameters: the 9 tags Google Analytics 4 documents and how to name them
UTM parameters are tags that tell analytics where a visit came from. Learn the 9 tags Google Analytics 4 documents, its 19 channels, and how to name each one.
Muzahid Maruf, FounderUpdated
On this page
- 01What UTM parameters are and how UTM tracking works
- 02The 9 UTM parameters Google Analytics 4 documents
- 03How Google Analytics 4 turns UTM tags into channels
- 04How to build a UTM link
- 05A UTM naming convention that holds up
- 06What breaks UTM tracking
- 07Limits that shape UTM data
- 08Carrying UTM tags into forms, CRMs and payments
- 09UTM tracking in TrackRev
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
UTM parameters are short name=value tags added to the end of a URL, such as utm_source=newsletter, that tell an analytics tool where a visit came from. UTM stands for Urchin Tracking Module.
Google Analytics 4 documents 9 of them and says to always set 3: utm_source, utm_medium and utm_campaign. People shorten them to UTMs or UTM params, and tagging links and reading the results is UTM tracking.
A tag is written once, when the link is created, and Google Analytics 4 treats each spelling as its own value: Google's example is that SpringSale and Spring_Sale are distinct.
UTMs also end at the visit, so they record where someone came from and nothing about what that person paid.
Key takeaways
- Google Analytics 4 documents 9 UTM parameters and says to always set 3: utm_source, utm_medium and utm_campaign.
- With any UTM tag on the URL and no usable Google click ID, Google Analytics 4 reads every source dimension from UTM tags alone, so a missing tag shows as (not set).
- The medium picks 1 of 19 default channels: email reaches Email and affiliate reaches Affiliates, while owned-email falls into Unassigned.
- Values are case sensitive, so SpringSale and Spring_Sale are 2 values. Use lowercase and put the year first in campaign names, as in launch-2026-10.
- UTM tags carry no revenue. Stripe metadata holds 50 pairs of up to 500 characters a value, so copy the tags there to see revenue by channel.
What UTM parameters are and how UTM tracking works
A tagged link is a normal URL followed by a query string: a question mark, then name=value pairs. Google Analytics 4 documentation says they can come in any order.
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=pricing-update-2026-10&utm_content=header-ctaTagged visits appear in Google Analytics 4 under Acquisition, in the Traffic acquisition report, with Session source / medium or Session campaign as the dimension.
Google leaves UTM tags out of 2 dimensions, Landing page + query string and Page path + query string, and populates Page location with them instead.
The tags came from Urchin Software Corp., a San Diego company that Google agreed to buy in March 2005. Wikipedia names Urchin as the predecessor of Google Analytics.
The 9 UTM parameters Google Analytics 4 documents
Wikipedia lists 5. Google Analytics 4 documentation lists 9, adding 4 to the original source, medium, campaign, term and content.
| Parameter | What it identifies | Example | Set it |
|---|---|---|---|
utm_source | The referrer | google, newsletter4 | Every link |
utm_medium | The marketing channel type | cpc, email | Every link |
utm_campaign | The product, slogan or promo | spring-sale-2026-03 | Every link |
utm_id | A campaign ID that matches uploaded cost data | cmp-2026-017 | With cost data |
utm_term | The paid keyword | attribution-software | Paid search |
utm_content | Which creative or link was clicked | 2 calls to action in 1 email | To compare links |
utm_source_platform | The platform directing the traffic | Search Ads 360, Display & Video 360 | When a platform directs the traffic |
utm_creative_format, utm_marketing_tactic | The creative type and the targeting criteria | video, remarketing | Skip: not reported |
Descriptions and examples from Google Analytics 4 documentation, October 2026; the campaign, ID and term values are illustrative.
Google asks for 1 unique source per platform and 1 unique medium per channel.
It also documents that when a click ID can't be used and any UTM tag is on the URL, Google Analytics 4 derives every source dimension from UTM tags alone, and missing tags show as (not set).
A link with only utm_campaign=spring-sale-2026-03 reports a campaign with no source or medium.
How Google Analytics 4 turns UTM tags into channels
The Google Analytics 4 default channel group has 19 channels, with fixed rules that ignore case and can't be edited. For hand-tagged links, source and medium do the sorting, and the medium does most of it.
| utm_medium value | Channel | Rule from Google |
|---|---|---|
email | Source or medium is 1 of 4 spellings of email | |
affiliate | Affiliates | Medium is affiliate |
social, sm | Organic Social | Medium is 1 of 6 social values, or the source is a known social site |
cpc, ppc, paid-social, paid_social | Paid Search, Paid Social, Paid Video, Paid Shopping or Paid Other | Medium matches ^(.*cp.*|ppc|retargeting|paid.*)$; the source picks the channel |
display, banner, cpm | Display | Medium is 1 of 5 display values |
referral, link, app | Referral | Medium is referral, app or link |
video | Organic Video | Medium matches ^(.*video.*)$, or the source is a known video site |
owned-email, sponsorship | Unassigned | No rule matches |
Rules from the Google Analytics 4 default channel group definitions, October 2026. Google keeps its own lists of social, search and video sites.
A medium invented for internal tidiness, such as owned-email, matches no rule and lands in Unassigned unless the source is on one of Google's site lists.
I'd take Google's value even when mine reads better, because the default group then does the grouping for free; the alternative is to map your own with a custom channel group.
When Google Ads auto-tagging takes over
With auto-tagging on, the gclid parameter carries the click data, and Google's traffic-source documentation says Google Analytics 4 then uses the auto-tagged values for source and medium.
The same page lists auto-tagging dimensions for Search Ads 360 and Campaign Manager 360 too, and Google Ads Help adds that there is no override option.
Hand-typed source and medium lose to the auto-tagged values, but manual utm_content and utm_term still feed their own dimensions.
How to build a UTM link
Hand-built links go wrong in 2 places.
- Put the query before any
#. RFC 3986 ends the query at the first number sign, so tags written after a # belong to the fragment. - Skip spaces. A space must be percent-encoded as
%20, and an encoded value is easy to encode again into%2520. Use a hyphen.
Broken: https://example.com/pricing#plans?utm_source=newsletter&utm_medium=email
Fixed: https://example.com/pricing?utm_source=newsletter&utm_medium=email#plansThe free UTM builder here assembles the URL in your browser, with no signup and nothing stored. Google's Campaign URL Builder is the other common choice.
Neither remembers what your team called a channel last month, so the shared list has to live somewhere else.
A UTM naming convention that holds up
Reports aggregate by exact string, and Google recommends lowercase as standard practice.
Use hyphens as the single separator and put the year first in campaign names so they sort in time order: launch-2026-06 comes before launch-2026-10, while launch-jun26 lands after launch-aug26.
Example: one capital letter, 2 rows
A $2,000 newsletter sponsorship drives 4,000 tagged clicks in a quarter: 3,100 tagged newsletter and 900 tagged Newsletter. The report shows 2 rows, 77.5% and 22.5% of the channel, and dividing $2,000 by the 3,100-click row gives $0.65 a click against the true $0.50. The numbers are invented for the arithmetic.
Source is 1 value per sender from a shared list, medium comes from a closed list of about 8, and campaign is the initiative plus year and month.
| Placement | Source | Medium | Campaign | Channel in Google Analytics 4 |
|---|---|---|---|---|
| Launch email | weekly-digest | email | launch-2026-10 | |
| LinkedIn post | linkedin | social | launch-2026-10 | Organic Social |
| Google Ads search ad | google | cpc | launch-2026-10 | Paid Search |
| Facebook retargeting ad | facebook | paid-social | launch-2026-10 | Paid Social |
| Partner review post | acme | affiliate | launch-2026-10 | Affiliates |
| Podcast sponsor read | devtools-weekly | audio | launch-2026-11 | Audio |
| YouTube video description | youtube | video | demo-2026-10 | Organic Video |
| Banner on a partner site | acme-network | display | spring-sale-2026-03 | Display |
| SMS reminder | sms | sms | trial-reminder-2026-10 | SMS |
| QR code on a flyer | flyer | offline | conf-booth-2026-10 | Unassigned |
Example links by placement. Channels follow Google's default channel group rules, October 2026.
Keep 1 shared list of sources and mediums, name 1 person to approve additions, and build links through a form with dropdowns, since a written convention reaches only the people who open it.
What breaks UTM tracking
| What goes wrong | What the report shows | Fix |
|---|---|---|
| A capital letter or variant spelling | 1 sender split across 2 or more rows | Lowercase every value and use the shared list |
| A redirect or URL shortener that strips the tags | The visit filed as (direct) / (none) | Click the live link and read the address bar |
| 1 or 2 tags in place of all 3 | (not set) in source or medium | Set source, medium and campaign together |
| A cookie rewritten on every visit | Later visits overwrite the first source | Write the first touch only when the cookie is empty; copy the tags onto the user record at signup |
| A return from a payment processor's page | The processor's domain filed as a referral | List it under unwanted referrals |
Redirects, shorteners and missing tags are the causes Google Analytics 4 documentation gives for (direct) / (none) traffic.
Limits that shape UTM data
| Where | Limit or default | What it means for tags |
|---|---|---|
| Google Analytics 4 page location | 1,000 characters | Keep a tagged URL under it; Google's collection limits set the cap |
| Custom channel groups | 2 per standard property, 50 channels each | The place to map your own mediums |
| Unwanted referrals | 50 per data stream | List payment processors here |
| Stripe metadata | 50 pairs, 40-character keys, 500-character values | Where a tag becomes revenue by channel |
| Stripe Payment Links | 5 UTM codes of up to 150 characters, using letters, digits, dashes and _ | Stripe discards invalid values, so a dot or space can lose the tag |
| Browser query stripping | Firefox Strict mode strips 8 parameters, none a utm_ tag; Apple's Safari 17 notes name none | A 5-step test finds the hop that does drop a tag |
Limits from Google Analytics 4, Stripe and Mozilla documentation, October 2026.
Carrying UTM tags into forms, CRMs and payments
Lead records keep tags only if something copies them off the landing URL.
On WordPress, Gravity Forms Dynamic Population fills a field from a named query parameter, though aggressive page caching can break it, and WPForms has a query string smart tag.
Test any other form tool or CRM with 1 tagged link and read the saved record.
Stripe copies metadata between related objects in only 4 documented cases, and a Checkout Session to a Subscription isn't one of them, so set subscription_data.metadata too.
The UTM and Stripe walkthrough covers the hand-off, and last-touch vs first-touch vs linear compares which tag earns the credit.
UTM tracking in TrackRev
TrackRev adds the tags at the redirect: each tracked link carries a channel, and the channel supplies the source and medium, such as newsletter and email or youtube and video, matching Google's rules for Email and Organic Video.
Tags already on the destination URL are left alone, so a hand-set utm_medium=paid-social survives.
Each click is logged on the server at the redirect, and on a paid plan revenue from Stripe, Paddle, Polar or Lemon Squeezy is attributed to the clicks that led to it.
The free plan covers link tracking, 50 links and 1,000 tracked events a month, with revenue figures hidden. Revenue and the affiliate and referral tools start on Starter at $39 a month; Growth is $99 and Scale is $199 (pricing).
If you only need a correctly formed URL, the free builder or Google's is enough. UTM builder vs link tracking tool shows where a link tool starts to pay off.
Found this useful? Share it.
Frequently asked questions
- One name=value pair in a URL's query string, such as utm_campaign=spring-sale-2026-03. Google Analytics 4 documents 9 of them and files each visit under the values it finds.
- Tagging outbound links with source, medium and campaign values, then comparing channels by those values in a report such as Google Analytics 4's Traffic acquisition. Spend or revenue appear only if you join that data in.
- No. Google Analytics 4 documentation says to always use 3: source, medium and campaign. The other 6 each suit a narrower job, such as paid keywords or cost imports.
- Yes. Google Analytics 4 documentation gives utm_source=google versus utm_source=Google as 2 different values. Channel grouping ignores case, but the values themselves keep it.
- A tagged URL duplicates the clean one. Google Search's duplicate-URL guidance recommends rel=canonical, redirects or sitemap entries for parameter variants, with ?gclid=ABCD as its example, so point a canonical link on each landing page at the clean address.
- No. Google Analytics policies bar sending data it could recognize as personally identifiable, and its PII guidance names campaign parameters among the risks. Use campaign names or numeric IDs.

Written by
Founder, TrackRev.io & Contant.io
Muzahid Maruf is the founder of TrackRev.io and Contant.io. He writes about marketing attribution, link tracking, and revenue analytics for SaaS teams.
Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth
Stop guessing where your revenue comes from.
Set up TrackRev in about five minutes. The free plan covers 1,000 events a month, no card needed.
Start free