best-practicesUpdated 2025

GA4 Lowercase UTM Requirements: Complete Reference Guide

GA4 requires specific lowercase values for utm_medium to work with channel grouping. Here's the complete list of required formats and why they must be lowercase.

7 min readbest-practices

GA4's Default Channel Grouping has ONE non-negotiable requirement: utm_medium must be lowercase.

Not "mostly lowercase." Not "lowercase when you remember." Always lowercase.

Here's the complete reference guide for every GA4-recognized utm_medium value, why lowercase matters, and how to enforce it across your organization.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

Complete GA4 utm_medium Reference

Required format: Lowercase

✅ Correct❌ WrongGA4 Channel
cpcCPC, Cpc, cPcPaid Search
ppcPPC, PpcPaid Search
paidsearchPaidSearch, PAIDSEARCHPaid Search

Regex pattern: ^(cpc|ppc|paidsearch).*$

Examples that work:

  • utm_medium=cpc
  • utm_medium=ppc
  • utm_medium=cpc-brand (starts with cpc)

Examples that fail:

  • utm_medium=CPC → Unassigned
  • utm_medium=paid-search → Unassigned (hyphen breaks pattern)

Email

Required format: Exact match, lowercase

✅ Correct❌ WrongGA4 Channel
emailEMAIL, Email, E-MAILEmail
e-mailE-Mail, E-MAILEmail
e_mailE_Mail, E_MAILEmail

Regex pattern: ^(email|e-mail|e_mail|e mail)$

Note: Must match exactly (no suffixes like "email-promo").

Social

Required format: Contains "social" (lowercase)

✅ Correct❌ WrongGA4 Channel
socialSOCIAL, SocialOrganic Social
social-networkSocial-NetworkOrganic Social
social-mediaSocial-MediaOrganic Social
paidsocialPaidSocial, PAIDSOCIALPaid Social

Regex pattern: Contains social|social-network|social-media|sm|social network|social media

Display

Required format: Starts with display/cpm/banner (lowercase)

✅ Correct❌ WrongGA4 Channel
displayDISPLAY, DisplayDisplay
cpmCPM, CpmDisplay
bannerBANNER, BannerDisplay

Regex pattern: ^(display|cpm|banner).*$

Affiliates

Required format: Starts with "affiliate" (lowercase)

✅ Correct❌ WrongGA4 Channel
affiliateAFFILIATE, AffiliateAffiliates
affiliatesAFFILIATESAffiliates

Regex pattern: ^(affiliate|affiliates).*$

Referral

Required format: Starts with "referral" (lowercase)

✅ Correct❌ WrongGA4 Channel
referralREFERRAL, ReferralReferral

Regex pattern: ^referral$

Video/Audio/SMS (Additional Channels)

MediumFormatGA4 Channel
videoLowercaseVideo
audioLowercaseAudio
smsLowercaseSMS

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

Why Lowercase is Required

Reason 1: Regex is Case-Sensitive

GA4 channel grouping uses regex patterns that match exact character case.

Pattern: ^cpc$ Matches: cpc Does NOT match: CPC, Cpc, cPc

There's no "fuzzy matching" or "close enough." Either it matches or it doesn't.

Reason 2: Consistency Across Properties

Google wants standardized reporting across all GA4 properties. Requiring lowercase ensures:

  • Same UTM structure works everywhere
  • Cross-property comparisons are valid
  • Documentation applies universally

Reason 3: Technical Limitations

URL parameters are case-sensitive by default in web standards. GA4 doesn't normalize case because:

  • Would require processing overhead
  • Could cause unintended side effects
  • Breaks standardization

Google's decision: Require lowercase, document it, enforce it.

Enforcing Lowercase Standards

Method 1: URL Builder with Auto-Lowercase

Google Sheets formula:

Code
Column: utm_medium
Formula: =LOWER(B2)

Effect: No matter what user types, output is lowercase.

Method 2: Dropdown Lists

Data validation:

Code
List of items: cpc,ppc,email,social,display,affiliate,referral,sms

Effect: User can only select pre-approved lowercase values.

Method 3: JavaScript Validation

Website URL builder:

Javascript
function buildURL() {
  let medium = document.getElementById('medium').value;
  
  // Auto-convert to lowercase
  medium = medium.toLowerCase();
  
  // OR validate and reject uppercase
  if (medium !== medium.toLowerCase()) {
    alert("utm_medium must be lowercase");
    return false;
  }
  
  // Build URL...
}

Method 4: Team Documentation

Create a one-page quick reference:

Code
UTM STANDARDS

utm_medium MUST be lowercase. Always.

✅ CORRECT:
- utm_medium=cpc
- utm_medium=email
- utm_medium=social

❌ WRONG:
- utm_medium=CPC
- utm_medium=Email
- utm_medium=SOCIAL

When in doubt: LOWERCASE.

Testing for Compliance

Pre-Launch Test

Before any campaign goes live:

  1. Copy test URL
  2. Visit your site using test URL
  3. GA4 → Realtime (wait 1-2 minutes)
  4. Check: Event with session_start
  5. Verify: Session medium shows lowercase value
  6. Confirm: Traffic assigned to correct channel (not Unassigned)

Monthly Audit

GA4 → Explore → Free Form:

  • Dimension: Session medium
  • Metrics: Sessions
  • Export to CSV

Check for:

  • Any uppercase values (CPC, EMAIL, SOCIAL)
  • Mixed case (Cpc, Email)
  • Immediately fix active campaigns

Platform-Specific Lowercase Requirements

Tracking template:

Code
`{"{"}{"{"}lpurl{"}"}{"}"}}`?utm_source=google&utm_medium=cpc&utm_campaign={{_campaign}}

Note: Lowercase "cpc" is critical.

Facebook Ads

URL parameters:

Code
utm_source=facebook&utm_medium=cpc&utm_campaign={"{"}{"{"}campaign.name{"}"}{"}"}}

Facebook doesn't auto-capitalize if you enter lowercase.

Email Platforms

Most email platforms default to lowercase:

  • Mailchimp: utm_medium=email (lowercase default)
  • SendGrid: utm_medium=email (lowercase)
  • HubSpot: Check settings, may auto-capitalize

Always verify platform doesn't override to title case.

Social Schedulers

Buffer, Hootsuite, Later:

  • Check UTM tracking settings
  • Ensure medium is set to lowercase
  • Test with one post before bulk scheduling

Common Questions

Q: Can I use utm_medium=Cpc (title case)? A: No. Will appear as Unassigned. Must be all lowercase: cpc.

Q: What about utm_medium=CPC_Google (uppercase with suffix)? A: Still fails. Must start with lowercase: cpc_google.

Q: Does uppercase break utm_source too? A: No, but creates data fragmentation (google vs Google appear as 2 sources). Best practice: Lowercase everything.

Q: Can I create custom channel groups to accept uppercase? A: Yes, but workaround. Better to fix utm_medium values to lowercase.

Q: Will GA4 ever support case-insensitive matching? A: No official plans. Google's position: Follow documented lowercase standards.

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.