What This Rule Detects
Identifies URLs containing utm_source parameter but missing utm_medium or utm_campaign. GA4 requires BOTH utm_source AND utm_medium to properly classify traffic into Default Channel Groups. Partial UTM tagging results in "Unassigned" channel classification, making the traffic invisible in channel-based reports.
š Want to scan for this issue automatically?
UTMGuard checks for this and 39 other validation rules in 60 seconds.
Try Free AuditWhy It Matters
Business Impact:
- "Unassigned" channel traffic - Cannot analyze by channel (Paid Search, Email, Social)
- Incomplete attribution context - Know WHERE traffic came from but not HOW it got there
- Channel comparison impossible - Cannot compare email vs social vs paid performance
- Budget allocation decisions fail - Missing critical channel classification data
Technical Impact:
- GA4 Default Channel Grouping requires both utm_source AND utm_medium
- utm_source alone = "Unassigned" channel (appears in reports but no channel classification)
- Cannot distinguish paid ads from organic posts from email campaigns from same source
- Breaks all channel-based attribution models
Real Example:
- Campaign URL:
?utm_source=facebook(missing utm_medium) - You know traffic came from Facebook
- But was it: Paid ad? Organic post? Influencer link? Email sent via Facebook?
- GA4 classification: Unassigned (no channel grouping possible)
- Channel report: Shows 0 sessions in "Paid Social" or "Organic Social"
- Impact: Cannot compare Facebook performance to other channels
Common Scenarios
Scenario 1: Abbreviated UTM Tagging
Using only utm_source to save time:
Scenario 2: Manual Shortlink Creation
Creating short links with minimal parameters:
Scenario 3: Partner/Affiliate Links
Partners using incomplete UTM parameters:
š° 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
How to Fix
Step 1: Understand Required UTM Parameter Hierarchy
Minimum required for proper GA4 tracking:
REQUIRED (always include together):
āāā utm_source ā WHO/WHERE (platform or source name)
āāā utm_medium ā HOW (method of traffic delivery)
āāā utm_campaign ā WHAT/WHEN (specific marketing initiative)
OPTIONAL (but recommended):
āāā utm_content ā Which creative/link variation
āāā utm_term ā Which keyword (paid search)
Rule: NEVER use utm_source alone. Always include utm_medium and utm_campaign.
Step 2: Identify All Orphaned UTM Parameters
Use UTMGuard audit to find incomplete tagging:
- Run audit scan on your GA4 property
- Filter for "Orphaned UTM Parameters" issue
- Review affected URLs and traffic sources
- Identify campaigns using incomplete tagging
Manual check in GA4:
- Reports ā Acquisition ā Traffic acquisition
- Add secondary dimensions: "Session source", "Session medium", "Session campaign"
- Look for rows where source has value but medium shows "(not set)"
Step 3: Complete UTM Parameters for Each Traffic Source
Template for all campaigns:
Email campaigns:
?utm_source=`{email_platform}`
&utm_medium=email
&utm_campaign=`{campaign_name}`
Example: ?utm_source=mailchimp&utm_medium=email&utm_campaign=weekly-newsletter-jan
Social media (organic):
?utm_source=`{platform}`
&utm_medium=social
&utm_campaign=`{campaign_name}`
Example: ?utm_source=linkedin&utm_medium=social&utm_campaign=product-launch
Paid advertising:
?utm_source=`{platform}`
&utm_medium=cpc
&utm_campaign=`{campaign_name}`
Example: ?utm_source=google&utm_medium=cpc&utm_campaign=black-friday-2024
Referral/partner traffic:
?utm_source=`{partner_name}`
&utm_medium=referral
&utm_campaign=`{partnership_name}`
Example: ?utm_source=partner-blog&utm_medium=referral&utm_campaign=guest-post-jan
Display advertising:
?utm_source=`{ad_network}`
&utm_medium=display
&utm_campaign=`{campaign_name}`
&utm_content=`{banner_variant}`
Example: ?utm_source=google-display&utm_medium=display&utm_campaign=retargeting-q1&utm_content=banner-300x250
Step 4: Update All Active Campaign Links
Platform-specific fixes:
Social media posts:
- Edit scheduled/active posts
- Replace incomplete URLs with full UTM parameters
- Use URL builder tools to generate complete URLs
- Verify all three core parameters present
Email campaigns:
- Review email templates and scheduled sends
- Update all links to include utm_medium=email and utm_campaign
- Test send to yourself to verify parameters
- Check all buttons, text links, and image links
Partner/affiliate links:
- Contact partners with incomplete UTM usage
- Provide them with properly formatted links
- Include instructions: "Always use all three: source, medium, campaign"
- Monitor for compliance
QR codes and print materials:
- Regenerate QR codes with complete UTM parameters
- Update print-ready files before next print run
- Document proper tagging for design team
Step 5: Implement Quality Control Process
Pre-launch checklist:
Before launching any campaign, verify:
ā utm_source present and specific
ā utm_medium present and GA4-recognized
ā utm_campaign present and descriptive
ā All three parameters use lowercase
ā No spaces (use hyphens instead)
ā Test URL in browser to verify parameters appear
ā Check GA4 Real-Time report to confirm tracking worksUse URL builder tools:
- Google Campaign URL Builder: https://ga-dev-tools.google/campaign-url-builder/
- Automatically ensures all required parameters are present
- Validates format and encoding
Examples
ā Incorrect Examples
Orphaned utm_source only:
?utm_source=twitter
Result: Appears as "Unassigned" channel in GA4
Impact: Cannot tell if paid ad or organic post
Channel Report: Missing from all channel groups
Orphaned utm_source + utm_campaign (missing medium):
?utm_source=linkedin&utm_campaign=job-posting
Result: Still appears as "Unassigned" (medium required for channel grouping)
Impact: Cannot classify into LinkedIn channel group
Channel Report: Traffic exists but not categorized
Orphaned utm_medium only (missing source):
?utm_medium=email
Result: Knows it's email but not which email platform
Impact: Cannot distinguish Mailchimp vs Constant Contact vs SendGrid
Channel Report: May appear in Email channel but no source breakdown
ā Correct Examples
Complete email tracking:
?utm_source=mailchimp&utm_medium=email&utm_campaign=weekly-newsletter-jan-2024
Result: Properly classified as "Email" channel
Impact: Can analyze email campaign performance
Channel Report: Appears in Email channel with full attribution context
Complete social tracking:
?utm_source=linkedin&utm_medium=social&utm_campaign=product-launch-q1
Result: Classified as "Organic Social" channel
Impact: Can compare social performance across platforms
Channel Report: Appears in Social channel, can filter by source (LinkedIn)
Complete paid tracking:
?utm_source=google&utm_medium=cpc&utm_campaign=black-friday-shoes-2024&utm_content=text-ad-a
Result: Classified as "Paid Search" channel
Impact: Can analyze campaign ROI and ad creative performance
Channel Report: Full attribution with campaign and creative breakdown
GA4 Impact Analysis
Channel Grouping:
- Without utm_medium: Traffic classified as "Unassigned"
- With complete UTMs: Properly classified (Paid Search, Email, Social, etc.)
- Channel reports: Incomplete data vs complete channel breakdown
Session Attribution:
- First-click attribution: Source identified but channel context missing
- Last-click attribution: Incomplete - cannot determine channel type
- Multi-touch attribution: Partially broken - source visible but channel classification fails
Revenue Tracking:
- E-commerce conversions: Attribution incomplete (source yes, channel no)
- Campaign ROI: Cannot calculate channel-level ROI
- Budget optimization: Missing channel performance comparison data
Default Channel Group Rules:
- GA4 requires BOTH source AND medium for channel classification
- utm_source alone ā Unassigned channel
- Both parameters ā Proper channel grouping (Email, Social, Paid Search, etc.)
Detection in UTMGuard
UTMGuard automatically detects orphaned UTM parameters:
- Scans all page URLs in your GA4 traffic data
- Identifies URLs with utm_source but missing utm_medium or utm_campaign
- Counts sessions with incomplete tracking
- Calculates percentage of traffic without proper channel classification
- Reports specific URLs and campaigns to fix
Audit Report Shows:
- Total sessions with orphaned parameters
- Missing parameter breakdown (medium vs campaign)
- Traffic sources affected
- Priority ranking by session volume
Related Validation Rules
Related Validation Rules
Missing Campaign on Paid Traffic
Paid traffic without utm_campaign makes ROI tracking impossible
Non-Standard utm_medium Value
utm_medium doesn't match GA4 channel grouping patterns
UTM Parameters on Internal Links
Internal navigation with UTMs destroys original attribution
Reserved Keyword Source
Using null, undefined, or (none) as utm_source
Frequently Asked Questions
Q: Is utm_campaign really required or just best practice?
A: REQUIRED for meaningful analysis. Without it, you cannot compare campaign performance, measure ROI per campaign, or optimize budget allocation. Technically GA4 will track the session, but you lose critical campaign-level insights.
Q: Can I use utm_source and utm_medium without utm_campaign?
A: Technically yes, but strongly not recommended. You'll get channel classification but cannot distinguish between different marketing initiatives from the same source/medium combination. All your email campaigns will look like one campaign.
Q: What happens if I only include utm_campaign without source/medium?
A: GA4 will record the campaign name but classify traffic as "Direct" or "Referral" based on referrer. Channel grouping fails because it requires utm_source + utm_medium.
Q: How do I fix orphaned parameters in historical data?
A: You cannot modify historical data. The fix only applies to future traffic. For analysis of past data, you may need to manually reclassify "Unassigned" traffic based on campaign names if they're descriptive enough.
Q: Can UTMGuard automatically add missing parameters?
A: No. UTMGuard detects the issue and reports which URLs need fixing, but cannot modify your campaign links. You must update the links at the source (email platform, social posts, ad campaigns).
Q: Should I always include all 5 UTM parameters?
A: Minimum 3 required: source, medium, campaign. Include utm_content for A/B testing ad creatives. Include utm_term for paid search keyword tracking. The other two are optional but highly recommended for paid campaigns.
Q: What if I'm using platform auto-tagging (gclid, fbclid)?
A: Platform auto-tagging provides source/medium/campaign data automatically. However, adding manual utm_campaign alongside auto-tagging gives you human-readable campaign names in reports. Never add utm_source or utm_medium with auto-tagging (creates conflicts).
Q: Why does GA4 require both source and medium for channel grouping?
A: Because utm_source alone doesn't indicate the channel type. Example: "facebook" could be paid ads (Paid Social), organic posts (Organic Social), or links in Facebook emails (Email). GA4 uses utm_medium to determine the channel.
ā 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
Join 2,847 marketers fixing their tracking daily
External Resources
- Google: Campaign URL Builder
- GA4: Default Channel Group Definitions
- Best Practices for UTM Parameters
- GA4: Traffic Source Dimensions
orphaned_source