Terminus Hub is here, the next generation of campaign governance.See how it compares to Classic

utm_source, utm_medium and utm_campaign: Values and GA4 Channels

PC

Puru Choudhary

Last updated · published

utm_source, utm_medium and utm_campaign: Values and GA4 Channels

Read this once and you can pick a value for any UTM field, and say which GA4 channel it will land in, before the link ever ships.

utm_source names who sent the click: google, newsletter, facebook. utm_medium names the kind of traffic: cpc, email, social. utm_campaign names the marketing effort behind it: spring_sale. GA4 reads source and medium together and runs them through a fixed set of rules to pick a default channel.

So the values you type decide the channel your traffic is credited to.

TL;DR

  • Source is the sender, medium is the type of traffic, campaign is the effort. utm_content tells apart links in the same placement, and utm_term holds the paid keyword.
  • Google says to always set utm_source, utm_medium and utm_campaign. Its Campaign URL Builder marks source and medium as required.
  • GA4 maps source and medium to a default channel with fixed rules. social-media lands in Organic Social. social_media from an unrecognized source lands in Unassigned.
  • Values are case sensitive in reports. Facebook and facebook are two sources, even though both reach the same channel.
  • On Google Ads, leave auto-tagging on. When a click carries both a gclid and UTMs, GA4 classifies it from the auto-tagged values.

What Each Parameter Holds

Every UTM is a name and a value. In utm_source=facebook, utm_source is the parameter and facebook is the value. The utm_ prefix is a leftover from Urchin, the web analytics company Google acquired in 2005.

Five parameters make up the classic set.

ParameterHoldsExample
utm_sourceWho sent the click: a site, a platform, a newsletterutm_source=instagram
utm_mediumThe type of trafficutm_medium=email
utm_campaignThe campaign, promotion or product pushutm_campaign=spring_sale
utm_contentWhich creative or link inside the placementutm_content=buy_today
utm_termThe paid keywordutm_term=shorts_sale

utm_source

The sender. Google’s own examples are google, newsletter4 and billboard: a search engine, a specific email, an offline placement.

Source answers “where exactly?” while medium answers “what kind?” If Instagram brings more customers than LinkedIn, source is the field that tells you, and that’s where you scale up.

utm_medium

The type of traffic: cpc, email, social, affiliate, display. Of the five, medium carries most of the channel rules, and source decides which paid or organic bucket.

Match the medium to what actually happened. utm_medium=social means an unpaid post on your own account, and GA4 files it under Organic Social. A paid ad on the same network needs a medium GA4 reads as paid, such as cpc or anything starting with paid.

utm_campaign

The marketing effort that ties many links together: a launch, a sale, a relaunch. One campaign usually runs across several sources and mediums, and this is the field that lets you add them back up.

Examples: utm_campaign=launch, utm_campaign=spring_sale.

Skip the spaces. A space in a URL gets encoded as %20, so giant sale arrives as giant%20sale, which is ugly to read and easy to mistype. Underscores or hyphens avoid the whole problem.

Watch the words, too. GA4 reads the campaign name when it assigns a channel, so a name containing shop, shopping or cross-network can move traffic out of the channel its source and medium point to. The rules are in the channel section below.

utm_content

Tells apart creatives or links that point to the same URL. Two calls to action in one email, say “buy today” and “more information”, get utm_content=buy_today and utm_content=more_info. Then you can see which one earns the clicks.

utm_term

Google defines it as the paid keyword: utm_term=shorts_sale. If a term keeps sending customers, that’s a term to bid on harder, or to rank for organically.

Which Parameters Are Required

GA4 itself accepts a link with any subset. Nothing errors.

Google’s guidance is firmer: “you should always use utm_source, utm_medium, and utm_campaign.” The Campaign URL Builder marks source and medium as required and asks for either a campaign name or a campaign ID.

Treat all three as required. Google also warns that missing UTM parameters show up as (not set) in reporting.

Common Values and the GA4 Channel Each Pair Lands In

GA4’s default channel group runs source and medium through fixed rules. The rules below come from Google’s default channel group definitions for manually tagged traffic. Source names like newsletter, partner-blog, ad-network and sms are illustrative. Every row assumes a plain campaign name, one with no shop, shopping or cross-network in it.

utm_sourceutm_mediumGA4 default channelWhy
googlecpcPaid SearchSearch site plus a paid medium
bingcpcPaid SearchSearch site plus a paid medium
googleorganicOrganic SearchSearch site, no paid medium
facebookpaid_socialPaid SocialSocial site plus a medium starting with paid
linkedincpcPaid SocialSocial site plus a paid medium
instagramsocialOrganic SocialSocial site, no paid medium
youtubecpcPaid VideoVideo site plus a paid medium
youtubevideoOrganic VideoVideo site, no paid medium
newsletteremailEmailMedium is email
partner-blogreferralReferralMedium is referral
partner-blogaffiliateAffiliatesMedium is affiliate
ad-networkbannerDisplayMedium is on the display list
smssmsSMSSource or medium is sms
newslettercpcPaid OtherPaid medium, but the source isn’t a known search, social, video or shopping site
newslettersocial_mediaUnassignedNo rule matches

Four rules do most of the work.

The paid pattern. A medium counts as paid when it matches ^(.*cp.*|ppc|retargeting|paid.*)$. So cpc, cpm, ppc, paid_social and paid-search all qualify. Pair a paid medium with a recognized site and you get Paid Search, Paid Social, Paid Video or Paid Shopping. Pair it with an unrecognized source and you get Paid Other (cpm is the exception, since it also sits on the display list), which is correct and probably not the report you meant.

The site lists. “Recognized” means the source is on the list Google publishes as a download from the channel group page. facebook, fb, instagram, ig, linkedin and twitter are on it as social sites. google, bing and duckduckgo are search. youtube and vimeo are video. Check the list before you invent a new source name.

The exact-match lists. Organic Social accepts a medium of exactly social, social-network, social-media, sm, social network or social media. Email accepts exactly email, e-mail, e_mail or e mail. Patterns forgive. Exact lists don’t.

The campaign-name overrides. Two rules read utm_campaign. A campaign name containing cross-network lands in Cross-network whatever the source and medium say, because that rule is checked before all of them. A campaign name matching ^(.*(([^a-df-z]|^)shop|shopping).*)$ trips the shopping rules. Roughly, that means shopping anywhere, or shop at the start of the name or after a separator such as _ or -. With a paid medium it lands in Paid Shopping, which is checked ahead of the other paid rules. Without one it lands in Organic Shopping, which is checked after Display but ahead of Organic Social, Organic Search, Referral and Email. So google / cpc / holiday_shopping is Paid Shopping, not Paid Search, and newsletter / email / shop_now is Organic Shopping, not Email.

That last row of the table is the one to stare at. social_media with an underscore isn’t on the Organic Social list. From facebook the source rescues it, and it still lands in Organic Social. From a source Google doesn’t recognize, it falls straight through to Unassigned, where the traffic still counts but belongs to no real channel.

Lowercase Everything

Google is explicit: parameter values are case sensitive, so utm_source=google is different from utm_source=Google.

The channel rules, on the other hand, “aren’t case sensitive.” Put those two facts together and you get the quiet version of the problem. Facebook / cpc and facebook / cpc both land in Paid Social, so the channel report looks fine. Open Session source and there are two rows for one platform, each holding part of its traffic.

The problem stays hidden until someone sorts by source and the top row is smaller than it should be.

Google’s own best-practice advice is the fix: use lowercase as a standard. Pick one spelling per platform, write it down, and never type it freehand. Terminus, the marketing taxonomy governance platform, exists for this job: source and medium come from picklists instead of a text box, and validation rules can lowercase values and turn spaces into underscores on the way in.

utm_source=google on Paid Search: Let Auto-Tagging Win

Google Ads auto-tagging appends a gclid to your ad clicks. GA4 resolves it through the Google Ads link and gives you dimensions manual tags never will: Google Ads campaign, ad group, keyword text and search query.

When a click carries both a gclid and your UTMs, Google’s rule is plain: source, medium and the other traffic-classification dimensions use the auto-tagged values. Your utm_source=google&utm_medium=cpc lands in the Manual dimensions instead.

There’s a second reason to let auto-tagging do the classifying. For auto-tagged Google Ads traffic, GA4 picks the channel from the ad network type: a YouTube placement becomes Paid Video, a Display Network placement becomes Display. With auto-tagging off, a hand-typed google / cpc resolves to Paid Search whichever network actually served the ad, unless the campaign name trips a shopping or cross-network rule.

Keep adding UTMs anyway, for every tool outside GA4 that can’t read a gclid. Google also notes that when the gclid can’t be used as intended, GA4 derives all traffic source values from whatever UTMs are present, so set source, medium and campaign together or you’ll get (not set) rows. The full setup, including where the UTMs go, is in Google Ads UTM tracking: auto-tag and manual, together.

The Newer GA4 Parameters

GA4 accepts four parameters beyond the classic five. utm_id carries a campaign ID, the same IDs you use when uploading campaign data. utm_source_platform names the platform responsible for directing the traffic, such as Search Ads 360 or Display & Video 360. utm_creative_format (display, native, video) and utm_marketing_tactic (remarketing, prospecting) are accepted too, though Google notes that neither is currently reported in GA4. The utm_source_platform guide covers where the platform dimension appears.

Where the Values Show Up in GA4

Open Reports > Acquisition > Traffic acquisition and change the primary dimension. Google lists Session source / medium, Session medium, Session source and Session campaign there.

ParameterGA4 dimensions it populates
utm_sourceSession source, First user source, Manual source
utm_mediumSession medium, First user medium, Manual medium
utm_campaignSession campaign, Manual campaign name
utm_contentManual ad content, Session manual ad content, First user manual ad content
utm_termManual term, Session manual term, First user manual term

The Session dimensions tell you where each session came from. The First user dimensions tell you where a user came from the first time, and they drive the User acquisition report. For utm_content and utm_term, add the Session manual dimension as a secondary dimension in Traffic acquisition, or pull it into an exploration.

One trap for anyone hunting in page reports: GA4 strips UTM parameters from Page path + query string and Landing page + query string. The full tagged URL shows up in Page location instead.

For every scope these values appear at, see UTM parameters in GA4.

Where UTMs Belong, and Where They Don’t

Tag every link you control that points at your site from somewhere else: email, social posts, paid campaigns (on Google Ads, alongside auto-tagging), affiliate links, and offline placements. UTMs also classify visits where the browser sends no referrer at all, which is exactly where untagged traffic gets lumped into Direct. For print and packaging, shorten the tagged URL first. Nobody retypes a query string off a flyer.

Three places to leave them off:

  • Internal links. A visitor arrives from newsletter, clicks a tagged banner on your homepage, and whatever they do next gets credited to a label you made up instead of the newsletter.
  • Organic search results. You don’t control those links, and GA4 already records the source.
  • Natural referrers. When a blog writes about you and links to you, the referrer already says who sent the visit.

For naming the values consistently across a team, start with UTM naming conventions. For tying the values back to campaign performance, see how to track your campaigns in Google Analytics. For a one-image refresher on all five parameters, there is the UTM parameters infographic.

FAQ

What is utm_campaign?

The parameter that names the marketing effort behind a link, such as spring_sale or launch. It lets you add up one campaign’s traffic across every source and medium it ran on. In GA4 it populates Session campaign.

What is utm_source?

The sender of the click: a search engine, a social platform, a newsletter, a partner site. Examples are google, facebook and newsletter. GA4 checks it against Google’s lists of search, social, video and shopping sites when it assigns a channel.

What should utm_medium be?

A value GA4’s channel rules recognize. Use cpc or a value starting with paid for paid ads, social for unpaid social posts, email for email, referral for links from other sites, affiliate for affiliates, and display or banner for display ads. Anything off those rules risks landing in Paid Other or Unassigned.

Is utm_source case sensitive?

Yes. Google states that utm_source=google is different from utm_source=Google. The default channel rules ignore case, so both land in the same channel, but they appear as separate rows in source reports. Lowercase everything.

Which UTM parameters are required?

Google says to always use utm_source, utm_medium and utm_campaign. Its Campaign URL Builder requires source and medium, and asks for either a campaign name or a campaign ID. utm_content and utm_term are optional.

What does utm_source=google mean?

It says Google sent the click. With utm_medium=cpc it lands in Paid Search. With utm_medium=organic it lands in Organic Search. On Google Ads clicks with auto-tagging on, GA4 classifies traffic from the gclid instead, and your manual values go to the Manual dimensions.

Why is my UTM traffic showing as Unassigned?

No channel rule matched the source and medium pair. The usual cause is a medium that looks right but isn’t on an exact-match list, such as social_media with an underscore, coming from a source Google doesn’t recognize.

Where do I find utm_content and utm_term in GA4?

They populate Session manual ad content and Session manual term. Add either one as a secondary dimension in the Traffic acquisition report, or use it in an exploration.

Terminus helps you and your team be consistent in UTM tracking

Try Terminus risk-free for 21 days. Cancel anytime with 1 click.