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 — Founder of TrackRev.io

Muzahid MarufUpdated

UTM tracking · 9 min read
On this page
  1. 01What UTM parameters are and how UTM tracking works
  2. 02The 9 UTM parameters Google Analytics 4 documents
  3. 03How Google Analytics 4 turns UTM tags into channels
  4. 04How to build a UTM link
  5. 05A UTM naming convention that holds up
  6. 06What breaks UTM tracking
  7. 07Limits that shape UTM data
  8. 08Carrying UTM tags into forms, CRMs and payments
  9. 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.

A tagged link with four tags
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=pricing-update-2026-10&utm_content=header-cta

Tagged 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.

ParameterWhat it identifiesExampleSet it
utm_sourceThe referrergoogle, newsletter4Every link
utm_mediumThe marketing channel typecpc, emailEvery link
utm_campaignThe product, slogan or promospring-sale-2026-03Every link
utm_idA campaign ID that matches uploaded cost datacmp-2026-017With cost data
utm_termThe paid keywordattribution-softwarePaid search
utm_contentWhich creative or link was clicked2 calls to action in 1 emailTo compare links
utm_source_platformThe platform directing the trafficSearch Ads 360, Display & Video 360When a platform directs the traffic
utm_creative_format, utm_marketing_tacticThe creative type and the targeting criteriavideo, remarketingSkip: 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 valueChannelRule from Google
emailEmailSource or medium is 1 of 4 spellings of email
affiliateAffiliatesMedium is affiliate
social, smOrganic SocialMedium is 1 of 6 social values, or the source is a known social site
cpc, ppc, paid-social, paid_socialPaid Search, Paid Social, Paid Video, Paid Shopping or Paid OtherMedium matches ^(.*cp.*|ppc|retargeting|paid.*)$; the source picks the channel
display, banner, cpmDisplayMedium is 1 of 5 display values
referral, link, appReferralMedium is referral, app or link
videoOrganic VideoMedium matches ^(.*video.*)$, or the source is a known video site
owned-email, sponsorshipUnassignedNo 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.

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.
A tag written after the # and the same link fixed
Broken: https://example.com/pricing#plans?utm_source=newsletter&utm_medium=email
Fixed:  https://example.com/pricing?utm_source=newsletter&utm_medium=email#plans

The 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.

PlacementSourceMediumCampaignChannel in Google Analytics 4
Launch emailweekly-digestemaillaunch-2026-10Email
LinkedIn postlinkedinsociallaunch-2026-10Organic Social
Google Ads search adgooglecpclaunch-2026-10Paid Search
Facebook retargeting adfacebookpaid-sociallaunch-2026-10Paid Social
Partner review postacmeaffiliatelaunch-2026-10Affiliates
Podcast sponsor readdevtools-weeklyaudiolaunch-2026-11Audio
YouTube video descriptionyoutubevideodemo-2026-10Organic Video
Banner on a partner siteacme-networkdisplayspring-sale-2026-03Display
SMS remindersmssmstrial-reminder-2026-10SMS
QR code on a flyerflyerofflineconf-booth-2026-10Unassigned

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 wrongWhat the report showsFix
A capital letter or variant spelling1 sender split across 2 or more rowsLowercase every value and use the shared list
A redirect or URL shortener that strips the tagsThe 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 mediumSet source, medium and campaign together
A cookie rewritten on every visitLater visits overwrite the first sourceWrite 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 pageThe processor's domain filed as a referralList 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

WhereLimit or defaultWhat it means for tags
Google Analytics 4 page location1,000 charactersKeep a tagged URL under it; Google's collection limits set the cap
Custom channel groups2 per standard property, 50 channels eachThe place to map your own mediums
Unwanted referrals50 per data streamList payment processors here
Stripe metadata50 pairs, 40-character keys, 500-character valuesWhere a tag becomes revenue by channel
Stripe Payment Links5 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 strippingFirefox Strict mode strips 8 parameters, none a utm_ tag; Apple's Safari 17 notes name noneA 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.

PostLinkedIn

Frequently asked questions

Muzahid Maruf — Founder of TrackRev.io

Written by

Muzahid Maruf

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