Marketing
UTM Parameters: A Naming Convention That Stays Clean in GA4
UTM parameters stay clean in GA4 when everyone on your team uses the same small set of lowercase values, chosen from fixed lists. The value that matters most is utm_medium, because GA4 uses it to decide which default channel a visit belongs to. This guide gives you the rules, a template you can copy into a spreadsheet, and the mistakes to avoid.
Key facts (as of October 2026)
- Always set
utm_source,utm_medium, andutm_campaign. Google says you “should always use” these three (Analytics Help).- Parameter values are case sensitive.
- Default channel rules are not case sensitive and can’t be edited (Analytics Help).
- A new campaign value in the middle of a session does not start a new session (Analytics Help).
- With Google Ads auto-tagging on, GA4 uses the auto-tagged values for source and medium, not your UTMs (Analytics Help).
Which UTM parameters does GA4 support?
Google’s URL builder article lists nine parameters (Analytics Help). Three are the ones you will use on every link. The rest are optional.
| Parameter | What Google says it is for | Use it? |
|---|---|---|
utm_source | The referrer, for example google, newsletter4, billboard | Always |
utm_medium | The marketing medium, for example cpc, banner, email | Always |
utm_campaign | Product, slogan, or promo code | Always |
utm_id | Campaign ID for a specific campaign or promotion | If you keep campaign IDs |
utm_term | Paid keyword | Paid search without auto-tagging |
utm_content | Differentiates creatives or link variations | When you test versions |
utm_source_platform | The platform that sent the traffic, for example Search Ads 360 | Rarely, for multi-platform setups |
utm_creative_format | Type of creative, for example display, native, video | Not reported yet |
utm_marketing_tactic | Targeting criteria, for example remarketing | Not reported yet |
Google notes that utm_creative_format and utm_marketing_tactic “isn’t currently reported in Google Analytics properties” (Analytics Help). You can add them, but you won’t see them in standard reports today. Leave them out unless you have a reason to collect them now.
Missing parameters show up as (not set) in reports (Analytics Help). That is the most common source of messy data.
How does GA4 turn UTMs into report dimensions?
Each parameter fills a set of “manual” dimensions. For example, utm_source fills Manual source, Session manual source, and First user manual source. utm_term fills Manual term, and utm_content fills Manual ad content (Analytics Help).
In everyday use, you’ll read them in Reports > Acquisition > Traffic acquisition. There you see session source, medium, and campaign for your tagged links (Analytics Help).
Two points about sessions matter for naming:
- GA4 attributes a session from the
session_startevent, which carries the gclid, UTM parameters, and referrer (Analytics Help). - “Each session is associated with only one campaign or traffic source.” A new campaign mid-session is kept for event-based attribution but is not attached to the existing session (Analytics Help).
Why does utm_medium decide your channel?
GA4 groups traffic into default channels using fixed rules on source, medium, and campaign name. Most rules depend on medium. Here are the ones you’ll hit most often, taken from Google’s Default channel group article.
| Channel | Rule (simplified from Google’s definition) | Medium value to use |
|---|---|---|
Source or medium is email, e-mail, e_mail, or e mail | email | |
| Organic Social | Source is a known social site, or medium is one of social, social-network, social-media, sm, social network, social media | social |
| Paid Social | Source is a known social site and medium matches ^(.*cp.*|ppc|retargeting|paid.*)$ | paid-social or cpc |
| Paid Search | Source is a known search site and medium matches the same paid pattern | cpc |
| Display | Medium is display, banner, expandable, interstitial, or cpm | display |
| Affiliates | Medium is affiliate | affiliate |
| Referral | Medium is referral, app, or link | referral |
| SMS | Source or medium exactly matches sms | sms |
| Audio | Medium exactly matches audio | audio |
| Paid Other | Medium matches the same paid pattern | (avoid relying on it) |
If nothing matches, GA4 uses Unassigned, “the value Analytics uses when there are no other channel rules that match the event data” (Analytics Help).
That’s why invented medium values hurt. A newsletter tagged utm_medium=newsletter doesn’t match the Email rule. Unless some other rule matches, it lands in Unassigned. Use email as the medium and put “newsletter” in the source or campaign instead.
Some rules overlap. A facebook source with a paid-social medium fits both the Organic Social and Paid Social descriptions. Google’s article doesn’t spell out how overlaps are resolved, so tag one test link and confirm the channel in Traffic acquisition before you roll a value out.
Note that the paid channels need both parts. Paid Search needs a source that GA4 recognizes as a search site and a paid medium. utm_source=google&utm_medium=cpc fits. utm_source=gads&utm_medium=cpc may not, because gads is not a search site name.
What naming convention should you use?
Pick rules that a new team member can follow without asking anyone.
- Lowercase everything. Values are case sensitive, so
Facebookandfacebooksplit into two rows. - Use hyphens between words. No spaces, no underscores mixed with hyphens. Spaces turn into
%20or+in URLs and are easy to mistype. - Use fixed lists for source and medium. Nobody types a new value. If a new one is needed, add it to the list first.
- Build campaign names from parts in a set order. For example:
yyyy-mm_topic_offer. Use the underscore only as the separator between parts, so you can split the name later in a spreadsheet. - Keep
utm_contentfor the variation. Use it to tell apart two links in the same email or two ad creatives. - Log every link. One row per tagged URL, with the date and owner.
Copyable template
Copy this into a sheet. The first table is your fixed vocabulary. The second is your link log.
Approved values
| utm_medium | Use for | Allowed utm_source values |
|---|---|---|
email | Newsletters, lifecycle emails | newsletter, crm, partner-email |
social | Unpaid posts | linkedin, facebook, instagram, x, youtube |
paid-social | Paid social ads | linkedin, facebook, instagram |
cpc | Paid search without auto-tagging | bing, google |
display | Banner and display buys | partner-site-name |
affiliate | Affiliate partners | partner-name |
referral | Guest posts, partner links | partner-domain |
sms | Text messages | sms |
qr | Printed QR codes | flyer, poster, packaging |
Check qr against the channel table before you adopt it. It doesn’t match any default channel rule, so those visits will be Unassigned unless the source matches a rule. If you need them in a default channel, choose a medium from Google’s list instead. If you’re fine seeing them as Unassigned and filtering by medium, keep it. Decide once and write the decision down.
Link log
| Date | Owner | Base URL | utm_source | utm_medium | utm_campaign | utm_content | utm_term | Final URL |
|---|---|---|---|---|---|---|---|---|
| 2026-10-06 | (name) | https://example.com/pricing | newsletter | 2026-10_pricing_launch | header-button | https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=2026-10_pricing_launch&utm_content=header-button |
A formula can build the final URL from the columns, so nobody types it by hand.
When should you not use UTMs?
On internal links. Don’t add UTMs to links from one page of your site to another. GA4 doesn’t start a new session for a new campaign value (Analytics Help). The tagged click still gets recorded against the event, which can confuse anyone reading event-level reports. To measure internal promos, use an event instead.
On Google Ads with auto-tagging on. Auto-tagging adds a gclid parameter to your ad URLs, and it’s on by default for new accounts (Google Ads Help). If you use both, GA4 uses the auto-tagged values for source, medium, and other traffic-classification dimensions. Your utm_content and utm_term still fill Manual ad content and Manual term (Analytics Help).
There is one catch. When the gclid can’t be used as intended, GA4 derives all traffic-source values from UTM parameters if any UTM is present. Google recommends setting all relevant UTM parameters if you set one (Analytics Help). So either leave Google Ads URLs without UTMs, or tag them fully and consistently.
On organic search or ordinary referrals. GA4 already detects these. Tagging them overwrites useful data with your own guess.
Common mistakes
- Mixed case.
Email,email, andEMAILbecome three rows. Lowercase everything. - Made-up mediums.
newsletter,blast, orpromoas a medium usually end up Unassigned. - Source and medium swapped.
utm_source=email&utm_medium=newsletterputs the type in the wrong field. Medium is the type of channel. Source is who sent the traffic. - Only one or two parameters. Missing values show as
(not set)(Analytics Help). - UTMs on internal links. See above.
- Personal data in UTMs. Never put email addresses or names in a parameter. URLs get logged and shared.
- Shortened links that strip parameters. Click a shortened link once before you send it and check that the UTMs survive the redirect.
- Using “cross-network” in a campaign name by accident. GA4 puts campaigns whose name contains “cross-network” into the Cross-network channel (Analytics Help).
FAQ
Can I change GA4’s default channel rules? No. Google says channel definitions “can’t be edited” (Analytics Help). Match your medium values to the rules instead.
Should I use utm_id?
Use it if you already track campaigns by ID, for example in a cost sheet or ad platform export. It identifies “a specific campaign or promotion” (Analytics Help). If you don’t have IDs, skip it.
Checklist
- Source, medium, and campaign set on every external campaign link
- All values lowercase, hyphens between words, no spaces
- Medium chosen from your approved list, checked against GA4’s default channel rules
- Campaign name follows your fixed pattern
- No UTMs on internal links
- Google Ads URLs either untagged (auto-tagging) or fully tagged
- No personal data in any parameter
- Link logged in the sheet
- Test click checked in GA4 Realtime or Traffic acquisition the next day
Related articles
Marketing
Add a Site to Google Search Console and Submit a Sitemap
Add your site to Google Search Console, choose a Domain or URL-prefix property, verify ownership, submit a sitemap, and read each sitemap status.
Marketing
GA4 Conversion Tracking with Google Tag Manager, Step by Step
Track GA4 conversions with Google Tag Manager: add the Google tag and an event tag, test in Preview and DebugView, mark a key event, and import it to Ads.
Marketing
How to Get Your Content Cited by AI Search (GEO)
What Google, Bing, OpenAI, and Anthropic say about AI search citations, which crawlers to allow, and how to write pages that are easy to quote.