Minimum UTM Requirements for GA4 (What You Actually Need)

UTMGuard Team
6 min readutm-basics

Your developer asks: "Which UTM parameters do we actually need?"

Your agency sends you links with 7 different parameters.

Your competitor uses only utm_source.

Who's right?

Here's the definitive answer: GA4 requires exactly 2 parameters for attribution: utm_source AND utm_medium.

Everything else is optional (but recommended).

Use only utm_source? Your campaign becomes invisible. Add all 5 parameters? Better reporting and analysis.

Here's exactly what you need and why.

🚨 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

The Official GA4 UTM Hierarchy

Tier 1: Required for Attribution (MUST HAVE BOTH)

  • utm_source - Where traffic came from
  • utm_medium - How traffic arrived

Tier 2: Recommended for Analysis

  • utm_campaign - Which promotion/campaign

Tier 3: Optional for Granular Tracking

  • utm_content - Which link/creative
  • utm_term - Which keyword (search ads)

Tier 4: Advanced (Rarely Used)

  • utm_id - Campaign ID for cost import
  • utm_source_platform - Ad platform
  • utm_creative_format - Ad format
  • utm_marketing_tactic - Marketing strategy

Let's break down what each tier actually does.

Tier 1: Required Parameters (The Non-Negotiables)

utm_source (REQUIRED)

What it is: The origin of your traffic

Examples:

  • utm_source=newsletter (email campaign)
  • utm_source=facebook (Facebook post)
  • utm_source=google (Google Ads)
  • utm_source=partner-blog (referral link)

What it does:

  • Identifies specific traffic source
  • Required by GA4 for attribution
  • Won't work without utm_medium

What happens without it:

  • GA4 uses HTTP referrer if available
  • Falls back to "(direct)" if no referrer
  • utm_medium becomes orphaned (ignored)

utm_medium (REQUIRED)

What it is: The channel or method of traffic delivery

Examples:

  • utm_medium=email (email marketing)
  • utm_medium=social (organic social)
  • utm_medium=cpc (paid advertising)
  • utm_medium=referral (partner link)

What it does:

  • Determines GA4 channel grouping
  • Required for attribution alongside utm_source
  • Won't work without utm_source

What happens without it:

  • utm_source becomes orphaned (ignored)
  • Traffic defaults to "(direct) / (none)"
  • Attribution completely breaks

Why Both Are Required (Not Just One)

utm_source alone is ambiguous:

Example: utm_source=google

  • Could be: Organic search, paid ad, display ad, Google Discover, Gmail, Google News
  • GA4 doesn't know which channel group to use
  • Can't attribute without medium

utm_medium alone is ambiguous:

Example: utm_medium=cpc

  • Could be: Google Ads, Facebook Ads, Bing Ads, LinkedIn Ads, Twitter Ads
  • GA4 doesn't know the actual source
  • Can't attribute without source

Together they're specific:

utm_source=google&utm_medium=cpc

  • Clear: Google Ads (paid search)
  • GA4 assigns to "Paid Search" channel
  • Attribution works

The rule: Always use both. One without the other = broken tracking.

😰 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

What it is: The specific marketing campaign or promotion

Examples:

  • utm_campaign=spring-sale-2024
  • utm_campaign=product-launch
  • utm_campaign=black-friday
  • utm_campaign=newsletter-march

What it does:

  • Distinguishes campaigns from same source/medium
  • Enables campaign-level ROI analysis
  • Groups related marketing efforts

What happens without it:

  • Attribution still works (uses source/medium only)
  • Can't distinguish between campaigns
  • All campaigns from same source/medium look identical

Example without utm_campaign:

You send 4 email campaigns in March:

?utm_source=newsletter&utm_medium=email

GA4 shows:

  • Source / Medium: newsletter / email
  • Sessions: 12,000
  • Conversions: 240

But you can't tell:

  • Which email performed best
  • Which subject line worked
  • Which offer converted
  • Which sending time was optimal

Example with utm_campaign:

Campaign 1: ?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale Campaign 2: ?utm_source=newsletter&utm_medium=email&utm_campaign=new-product Campaign 3: ?utm_source=newsletter&utm_medium=email&utm_campaign=webinar-invite Campaign 4: ?utm_source=newsletter&utm_medium=email&utm_campaign=customer-story

GA4 shows:

  • spring-sale: 5,200 sessions, 145 conversions (2.8% CVR)
  • new-product: 3,800 sessions, 68 conversions (1.8% CVR)
  • webinar-invite: 2,100 sessions, 19 conversions (0.9% CVR)
  • customer-story: 900 sessions, 8 conversions (0.9% CVR)

Now you know: Spring sale emails work best. Double down on promotional emails.

Verdict: Always include utm_campaign unless you'll never run multiple campaigns from the same source.

Tier 3: Optional Parameters (Granular Tracking)

utm_content (OPTIONAL)

What it is: Identifies which specific link or creative was clicked

When to use:

  • A/B testing different CTAs
  • Multiple links to same destination in one email/page
  • Testing different creatives in same ad

Examples:

  • utm_content=header-cta vs utm_content=footer-cta
  • utm_content=button-blue vs utm_content=button-red
  • utm_content=image-ad vs utm_content=video-ad

Real use case:

Email with 3 CTAs to same landing page:

  • Hero section: utm_content=hero-button
  • Mid-article: utm_content=inline-link
  • Footer: utm_content=footer-cta

GA4 report shows:

  • hero-button: 68% of clicks
  • inline-link: 22% of clicks
  • footer-cta: 10% of clicks

Insight: Users decide to click in the first 3 seconds. Focus on hero messaging.

utm_term (OPTIONAL)

What it is: The search keyword for paid search ads

When to use:

  • Google Ads with manual tagging (rare—auto-tagging is better)
  • Bing Ads with manual tagging
  • Testing specific keywords

Examples:

  • utm_term=marketing-automation-software
  • utm_term=email-marketing-tool
  • utm_term=crm-platform

Important: If you use Google Ads auto-tagging (gclid), you don't need utm_term. Google automatically passes keyword data.

Only use utm_term if:

  1. You're manually tagging search ads (not recommended)
  2. You disabled auto-tagging (not recommended)
  3. You're tracking organic keyword performance (rare)

Real Example: Minimum vs Complete UTM Structure

Client: SaaS company running email, social, and paid ads

Scenario 1: Minimum UTMs (Only Required)

Email link:

?utm_source=newsletter&utm_medium=email

GA4 shows:

  • newsletter / email: 8,400 sessions

What you CAN'T see:

  • Which email campaign performed better
  • Which CTA got more clicks
  • ROI per email send

Decision-making ability: Limited to "email works" or "email doesn't work"

Email link:

?utm_source=newsletter&utm_medium=email&utm_campaign=q1-promotion

GA4 shows:

  • newsletter / email / q1-promotion: 8,400 sessions

What you CAN see:

  • Q1 promotion performance vs Q4 holiday campaign
  • Compare promotional vs educational emails
  • Calculate ROI per campaign type

Decision-making ability: "Promotional emails convert 3x better than educational content"

Scenario 3: Complete UTMs (All Parameters)

Email link:

?utm_source=newsletter
&utm_medium=email
&utm_campaign=q1-promotion
&utm_content=hero-cta
&utm_id=campaign-12345

GA4 shows:

  • Full attribution to campaign
  • Click performance by CTA location
  • Cost data if using utm_id

What you CAN see:

  • Which CTA placement works best
  • Cost per acquisition if cost import is set up
  • Granular A/B test results

Decision-making ability: "Hero CTAs convert 2.8x better than footer CTAs in promotional emails"

✅ 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

Email Marketing

Minimum:

?utm_source=newsletter&utm_medium=email

Recommended:

?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale

Complete:

?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale&utm_content=hero-button

Organic Social Media

Minimum:

?utm_source=facebook&utm_medium=social

Recommended:

?utm_source=facebook&utm_medium=social&utm_campaign=product-launch

Complete:

?utm_source=facebook&utm_medium=social&utm_campaign=product-launch&utm_content=video-post

Minimum:

?utm_source=facebook&utm_medium=paid-social

Recommended:

?utm_source=facebook&utm_medium=paid-social&utm_campaign=spring-ads

Complete:

?utm_source=facebook&utm_medium=paid-social&utm_campaign=spring-ads&utm_content=carousel-ad

Note: For Facebook Ads, use fbclid auto-tagging instead. Don't add manual UTMs.

Minimum:

?utm_source=partner-blog&utm_medium=referral

Recommended:

?utm_source=partner-blog&utm_medium=referral&utm_campaign=guest-post-march

Complete:

?utm_source=partner-blog&utm_medium=referral&utm_campaign=guest-post-march&utm_content=author-bio-link

The "What Should I Use?" Decision Tree

Question 1: Do you need attribution to work?

  • Yes → Use utm_source + utm_medium (REQUIRED)
  • No → Use platform click IDs (gclid, fbclid)

Question 2: Will you run multiple campaigns from this source?

  • Yes → Add utm_campaign (RECOMMENDED)
  • No → Optional (but still recommended for consistency)

Question 3: Do you need to test different creatives or CTAs?

  • Yes → Add utm_content (OPTIONAL)
  • No → Skip it

Question 4: Are you tracking paid search keywords manually?

  • Yes → Add utm_term (OPTIONAL, but auto-tagging is better)
  • No → Skip it

Question 5: Do you import cost data to GA4?

  • Yes → Add utm_id (OPTIONAL)
  • No → Skip it

FAQ

Can I use only utm_source?

No. utm_source without utm_medium breaks attribution. GA4 will classify traffic as "(direct) / (none)".

Can I use only utm_medium?

No. utm_medium without utm_source also breaks attribution.

What if I use Google Ads or Facebook Ads?

Use their auto-tagging (gclid, fbclid) instead of manual UTM parameters. Don't add both—it creates duplicate sessions.

Are custom parameters allowed?

Yes. You can add custom parameters (like ?promo_code=SPRING) alongside UTM parameters. Just don't use parameter names starting with "utm_" unless they're official UTM parameters.

What about uppercase vs lowercase?

UTM parameters are case-sensitive in GA4. utm_source=Newsletter and utm_source=newsletter are treated as different sources. Always use lowercase.

No. Use the minimum required (source + medium) and add others based on your reporting needs.

What happens if I misspell a parameter name?

GA4 ignores it. utm_sorce=newsletter doesn't work. Only exact parameter names work: utm_source, utm_medium, utm_campaign, utm_content, utm_term.

Quick Reference: UTM Parameter Cheat Sheet

ParameterStatusWhen to UseExample Value
utm_sourceREQUIREDAlwaysnewsletter, facebook, google
utm_mediumREQUIREDAlwaysemail, social, cpc, referral
utm_campaignRECOMMENDEDMultiple campaignsspring-sale, product-launch
utm_contentOPTIONALA/B tests, multiple linkshero-cta, video-ad
utm_termOPTIONALManual keyword trackingmarketing-software
utm_idOPTIONALCost importcampaign-12345

Conclusion

Minimum UTM requirements for GA4:

  • utm_source (REQUIRED)
  • utm_medium (REQUIRED)

Recommended for useful reporting:

  • utm_source (REQUIRED)
  • utm_medium (REQUIRED)
  • utm_campaign (RECOMMENDED)

Complete for advanced analysis:

  • utm_source (REQUIRED)
  • utm_medium (REQUIRED)
  • utm_campaign (RECOMMENDED)
  • utm_content (optional)
  • utm_term (optional)

The rule: Always include source + medium. Add campaign for better reporting. Add content/term only when you need that level of detail.


Related: GA4 UTM Parameter Documentation