UTM source, medium and campaign: what each means, with examples by channel
What utm_source, utm_medium and utm_campaign mean, with tagged examples for 10 channels, how Google Analytics 4 sorts them, and naming rules that hold up.
Muzahid Maruf, Founder
On this page
- 01What UTM means in marketing
- 02What each UTM parameter answers
- 03UTM source: where the click came from
- 04UTM medium: the kind of channel
- 05UTM campaign: the promotion a link belongs to
- 06utm_term, utm_content and utm_id
- 07UTM examples by channel
- 08How Google Analytics 4 turns source and medium into channels
- 09Naming conventions that hold up
- 10Common UTM mistakes
- 11How TrackRev handles UTM tags
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
The UTM source (utm_source) names where a click came from, such as google, weekly-digest or linkedin. It is 1 of 5 standard tags added to a link's query string, and UTM stands for Urchin Tracking Module.
utm_medium adds the channel type (email, cpc, social) and utm_campaign names the promotion.
Google Analytics 4 also uses source and medium to file each session under a default channel such as Paid Search or Email, so one mislabeled value moves conversions to the wrong row. The free UTM builder assembles the URL.
Key takeaways
- Set utm_source, utm_medium and utm_campaign on every link. Google lists 9 parameters and says to always use these 3.
- 17 of the 19 manual-traffic rules in the Google Analytics 4 default channel group read the medium, so newsletter or offline lands in Unassigned.
- Values are case sensitive: Facebook, facebook and fb are 3 separate rows in one report.
What UTM means in marketing
Urchin Software Corp. of San Diego built the tagging scheme, and Google agreed to buy the company in March 2005. The tags carried over into Google Analytics, and Adobe Analytics and other tools now parse the 5 original parameters too.
A UTM link is a normal URL plus a query string of name=value pairs joined by &, in any order. Google's URL builder page says to always include utm_source, utm_medium and utm_campaign.
https://example.com/pricing?utm_source=weekly-digest&utm_medium=email&utm_campaign=pricing-update-2026-10&utm_content=top-buttonWhat each UTM parameter answers
Google's Analytics Help lists 9 parameters, and 6 do the daily work. The other 3 are utm_source_platform, for the buying platform (Search Ads 360, Display & Video 360 or Campaign Manager 360), plus utm_creative_format and utm_marketing_tactic.
Google says neither of the last 2 is currently reported in Google Analytics properties.
| Parameter | Question it answers | Example values |
|---|---|---|
utm_id | Which campaign record? | cmp-2026-017 |
utm_source | Where did the click come from? | google, linkedin, weekly-digest |
utm_medium | Which channel type? | cpc, email, paid_social |
utm_campaign | Which promotion or launch? | spring-sale-2026-03 |
utm_term | Which paid keyword? | attribution+software |
utm_content | Which link or creative? | top-button, footer-link |
UTM source: where the click came from
Give utm_source the specific sender. Google's examples are google, newsletter4, billboard and summer-mailer, and its table asks for 1 unique value per platform. It also suggests insta for Instagram, but Google's published source list has no insta, so write instagram.
UTM medium: the kind of channel
utm_medium sorts sources into channel types, and 17 of the 19 manual-traffic rules in Google Analytics 4's default channel group read it. Google asks for 1 unique medium per channel, such as paid_social or organic_search.
A TikTok video you posted and a TikTok ad you bought share the source tiktok; the post gets social and the ad gets paid_social.
My working list has 8 values: cpc, paid_social, social, email, affiliate, referral, audio and sms, each matching a rule by name.
UTM campaign: the promotion a link belongs to
Google describes utm_campaign as the product, slogan or promo code, and wants 1 name that exactly matches the ad platform's campaign name, for example through {{campaign.name}}.
Put the year and month in the name. summer-sale reused in 2027 merges 2 seasons into 1 row, and summer-sale-2026-06 keeps them apart. A pattern I would use is goal, audience or offer, then the date: trial-retargeting-2026-10.
utm_term, utm_content and utm_id
utm_term is the paid keyword. With Google Ads auto-tagging, Google records keyword data itself. utm_content separates links inside 1 campaign: Google's example is 2 call-to-action links in a single email, each with its own value such as top-button or footer-link.
utm_id matters once you upload ad spend. In Google's campaign data import, source, medium and date are required, and campaign ID and name are optional but highly recommended.
Imported values must match what visitors logged exactly: Google's own example is that Facebook and facebook do not match. In the row below, $1,200.00 over 3,400 clicks works out to $0.35 a click.
| Date | Source | Medium | Campaign ID | Campaign name | Cost | Currency | Clicks |
|---|---|---|---|---|---|---|---|
| 2026-10-14 | facebook | paid_social | cmp-2026-017 | trial-retargeting-2026-10 | 1,200.00 | USD | 3,400 |
Made-up values for fields in Google's import schema.
UTM examples by channel
Ten places a link might live and the default channel Google Analytics 4 gives each. The flyer row shows where defaults stop: offline matches no rule.
| Where the link lives | utm_source | utm_medium | utm_campaign | Default channel |
|---|---|---|---|---|
| Google Ads text ad | google | cpc | brand-search-2026-10 | Paid Search |
| Facebook ad | facebook | paid_social | trial-retargeting-2026-10 | Paid Social |
| LinkedIn post | linkedin | social | founder-launch-2026-10 | Organic Social |
| Newsletter send | weekly-digest | email | pricing-update-2026-10 | |
| Partner link | acme-reviews | affiliate | partners-2026-q4 | Affiliates |
| Podcast sponsor read | devtools-weekly | audio | sponsor-2026-11 | Audio |
| Guest post | exampleblog | referral | guest-post-2026-10 | Referral |
| YouTube description | youtube | video | demo-2026-10 | Organic Video |
| SMS reminder | sms | sms | trial-reminder-2026-10 | SMS |
| QR code on a flyer | flyer | offline | conf-booth-2026-10 | Unassigned |
Tag values are examples. Channels follow Google's default channel group definitions, checked October 2026.
https://example.com/pricing?utm_source=linkedin&utm_medium=social&utm_campaign=founder-launch-2026-10&utm_content=post-link
https://example.com/signup?utm_source=facebook&utm_medium=paid_social&utm_campaign=trial-retargeting-2026-10&utm_content=video-a&utm_id=cmp-2026-017
https://example.com/docs?utm_source=devtools-weekly&utm_medium=audio&utm_campaign=sponsor-2026-11How Google Analytics 4 turns source and medium into channels
Google's channel definitions compare the source with lists of known search, social, video and shopping sites, and the medium with fixed words and regular expressions.
Traps that follow from those rules
- The paid channels read the medium. Google's pattern is
^(.*cp.*|ppc|retargeting|paid.*)$, so cpc, cpm, ppc, retargeting and paid_social count as paid. A Facebook ad taggedfacebook/adsmatches none of it, and because facebook is on the social list the session is Organic Social. - Email, affiliate, audio and sms need exact words in the medium, and Email and SMS also accept the same word as the source. A medium of newsletter, partner or podcast matches nothing, so with an unlisted source the session is Unassigned. Referral takes referral, app or link. Display takes display, banner, expandable, interstitial or cpm, and a paid medium with a source on no list becomes Paid Other.
- Campaign names are read too. Google's Paid Shopping and Organic Shopping rules match a campaign name with shopping anywhere in it, or with shop at the start or after a hyphen, so
shop-launch-2026-10can be filed under a shopping channel. - Direct is the empty case. Google's (direct) / (none) page lists untagged links, typed URLs, PDF links, ad blockers and redirects that strip UTMs, shorteners such as bit.ly included.
- Auto-tagging wins when both are present. Google Ads adds a GCLID and Campaign Manager 360 a DCLID, and with either one Google Analytics uses the auto-tagged source and medium while still reading
utm_contentandutm_term, per its traffic-source documentation.
The source lists live in a sources-and-categories file linked from the channel group page, and the copy downloaded in October 2026 has 819 entries.
| Category | Entries | Share | Sample entries |
|---|---|---|---|
| Social | 592 | 72.3% | linkedin, facebook, fb, instagram, ig, twitter, t.co, tiktok, reddit |
| Search | 129 | 15.8% | google, bing, yahoo, duckduckgo, baidu, ecosia.org |
| Shopping | 52 | 6.3% | amazon, alibaba, shopify, etsy, ebay |
| Video | 46 | 5.6% | youtube, vimeo, twitch, dailymotion |
Worked example: meta versus facebook
A Facebook ad built in Meta Ads Manager and tagged utm_source=meta&utm_medium=paid_social has a paid medium, but the file has no entry called meta, insta, x.com or threads. By Google's published rules the session should land in Paid Other instead of Paid Social, so test any new source in your own Traffic acquisition report.
When the defaults do not fit
Print, and any medium outside Google's list, needs a custom channel group. Google's custom channel group page allows 2 per standard property and 5 per 360 property, with up to 50 channels each.
Groups apply to past data, and traffic goes to the first matching channel in the group's order, so place yours above any they collide with.
Naming conventions that hold up
| Field | Do this | Avoid |
|---|---|---|
| Case | linkedin | LinkedIn |
| Separator | 1 hyphen style, and no spaces (links turn them into + or %20) | spring_sale and spring-sale mixed |
| Source | The sender: weekly-digest | The channel word: email |
| Medium | A word Google Analytics matches: email | newsletter |
| Campaign | Goal and ISO month: trial-retargeting-2026-10 | campaign1 |
| ID | 1 stable ID: cmp-2026-017 | 1 ID reused for 2 campaigns |
Google treats Meta and meta as different values. With made-up numbers, 1 Facebook campaign tagged 3 ways at $79 per purchase shows what that does to a report.
| utm_source | Sessions | Share | Purchases | Rate | Revenue |
|---|---|---|---|---|---|
facebook | 1,240 | 68.9% | 31 | 2.5% | $2,449 |
Facebook | 410 | 22.8% | 14 | 3.4% | $1,106 |
fb | 150 | 8.3% | 2 | 1.3% | $158 |
| Combined | 1,800 | 100% | 47 | 2.6% | $3,713 |
Illustrative numbers: 1 campaign, 3 spellings of the same source.
Split this way, one campaign shows conversion rates of 3.4% and 1.3%. Its real rate is 2.6%: 47 purchases from 1,800 sessions.
Common UTM mistakes
- Setting only some tags. Google recommends source, medium, campaign, utm_id and utm_source_platform together, and warns that gaps appear as (not set).
- Tagging links between your own pages. UTM tags belong on links into your site, and internal clicks are better recorded as events.
- Putting personal data in a tag. Google's PII guidance names all 5 standard parameters, and a mail-merge field that drops a subscriber's address into
utm_contentis the usual leak. - Letting a redirect eat the tags. Click the final link in a fresh browser and check the address bar. The post on why UTM parameters get stripped lists the usual causes.
- Expecting tags to carry revenue. When sessions show but no money by channel, Google Analytics 4 not showing revenue by channel covers the fixes.
How TrackRev handles UTM tags
The UTM builder is free with no signup. It takes a destination URL plus 5 fields, builds the link in your browser and stores nothing. It leaves values as typed, so lowercase them yourself, and it has no utm_id field.
Inside TrackRev, each short link is created with a channel whose default tags are added to the destination on click, skipping any UTM already there: LinkedIn is linkedin / social, a newsletter is newsletter / email, YouTube is youtube / video.
The channel analytics view groups clicks by the source, medium and campaign it reads.
The Free plan covers 50 links and 1,000 tracked events a month with revenue hidden, and paid plans sync revenue from Stripe, Polar, Lemon Squeezy and Paddle: Starter is $39 a month, Growth $99 and Scale $199, with 9 months billed for 12 on annual plans (pricing).
If you only need sessions and conversions in Google Analytics, the builder and a naming sheet are enough.
To see which campaign produced paying customers, UTM parameters and Stripe attribution shows the join, and the complete UTM parameters guide covers tag types.
Found this useful? Share it.
Frequently asked questions
- Urchin Tracking Module, named for the analytics company Google bought in 2005. In daily use, a UTM is any URL parameter that begins with utm_.
- Source is the specific sender and medium is the channel type. Reddit as the source with social as the medium is a post; with paid_social it is an ad.
- In Google Analytics they are, so SpringSale and Spring_Sale count as different campaigns. Imported ad cost data has to match logged values exactly too, so use lowercase from the first link.
- No tool rejects a link for missing tags, but Google says to always use 3 of its 9 parameters: utm_source, utm_medium and utm_campaign. Add utm_id when you import ad costs, and treat the other 5 as optional.
- Use twitter, which is on the Google Analytics 4 source list along with t.co. The copy downloaded in October 2026 has no x.com entry, so a source of x reaches Organic Social only through a medium of social. For ads, pair twitter with paid_social.
- Unassigned means no default channel rule matched the pair, usually because the medium is a word like newsletter or offline. The value (not set) means a parameter is missing. Add Session source / medium as a secondary dimension in Traffic acquisition to see which.
- Not by themselves. A UTM labels a visit, and Google Analytics reports the conversions and purchase values it receives. Revenue by campaign needs Stripe payments joined back to the original click, which TrackRev does on its paid plans.

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