Google Analytics 4 automatically captures UTM parameters from your URLs, but getting accurate campaign data requires proper implementation. This guide walks through the complete process: from understanding parameters to building reports that show which campaigns drive conversions.
UTM Parameter Basics
UTM (Urchin Tracking Module) parameters are tags added to URLs that tell Google Analytics where traffic came from. When someone clicks a UTM-tagged link, GA4 captures these parameters and associates them with that user's session.
The Five UTM Parameters
| Parameter | Purpose | Required | Example |
|---|---|---|---|
| utm_source | Where traffic originates | Yes | google, facebook, newsletter |
| utm_medium | Marketing channel type | Yes | cpc, email, social, organic |
| utm_campaign | Campaign identifier | Yes | spring_sale, product_launch |
| utm_term | Paid keyword | No | running+shoes, marketing+software |
| utm_content | Ad variation identifier | No | blue_button, header_link |
Source vs Medium
The distinction matters. Source answers "where did this come from?" (google, facebook, mailchimp). Medium answers "how did it arrive?" (cpc, organic, email). Together they create the source/medium combination that appears in GA4 reports.
Example UTM-Tagged URL
Here's what a complete UTM-tagged URL looks like:
https://example.com/landing-page?utm_source=facebook&utm_medium=cpc&utm_campaign=spring_sale&utm_content=video_ad
When a user clicks this link, GA4 records: Source = facebook, Medium = cpc, Campaign = spring_sale, Content = video_ad. This data flows into your reports automatically.
GA4 Setup Verification
Before creating UTM links, confirm your GA4 property is correctly capturing UTM data. GA4 handles this automatically, but verification prevents wasted effort on broken tracking.
Step 1: Test with Realtime Report
The fastest way to verify UTM tracking:
- Create a test URL with UTM parameters (use Campaign URL Builder)
- Open the link in an incognito/private browser window
- In GA4, go to Reports → Realtime
- Look for your visit in the traffic source breakdown
- Verify source, medium, and campaign display correctly
Step 2: Check Data Collection Settings
Ensure your GA4 data stream is configured properly:
- Go to Admin → Data Streams → Select your web stream
- Verify "Enhanced measurement" is enabled
- Check that page views are being collected
- Review any exclusion filters that might affect UTM data
Cross-Domain Tracking
If users navigate between domains (e.g., main site to checkout), configure cross-domain measurement in GA4. Without this, UTM parameters may be lost during domain transitions, causing attribution gaps.
Building UTM URLs
Creating UTM-tagged URLs requires precision. Typos and inconsistencies fragment your data, making analysis difficult. Use tools instead of manual construction.
Google Campaign URL Builder
Google provides a free tool for creating UTM URLs. Find it by searching "Google Campaign URL Builder" or at Google's developer documentation. Enter your destination URL and parameter values, and it generates the tagged URL.
URL Building Best Practices
- Use lowercase only: UTM parameters are case-sensitive
- Avoid spaces: Use underscores or hyphens instead
- Keep values concise: "fb" works as well as "facebook"
- Be consistent: "facebook" everywhere, not "fb" sometimes
- URL-encode special characters: Tools handle this automatically
Example: Building a Facebook Ad URL
| Parameter | Value | Reasoning |
|---|---|---|
| utm_source | Traffic platform | |
| utm_medium | paid_social | Paid vs organic distinction |
| utm_campaign | q1_2025_promo | Specific promotion |
| utm_content | video_testimonial | Ad creative type |
Result: ?utm_source=facebook&utm_medium=paid_social&utm_campaign=q1_2025_promo&utm_content=video_testimonial
UTM Naming Conventions
Consistent naming is critical. Without it, "facebook", "Facebook", and "fb" appear as three different sources in GA4, fragmenting your data and complicating analysis.
Recommended Source Values
- google - Google Ads, Google organic
- facebook - Facebook ads and posts
- instagram - Instagram ads and posts
- linkedin - LinkedIn ads and posts
- twitter - X/Twitter content
- email - Email newsletter campaigns
- partner - Affiliate or partner links
Recommended Medium Values
Paid Channels
- cpc - Cost per click ads
- paid_social - Paid social ads
- display - Display advertising
- retargeting - Remarketing campaigns
Organic Channels
- organic - Organic social posts
- email - Email campaigns
- referral - Partner referrals
- affiliate - Affiliate traffic
Campaign Naming Structure
Use a consistent structure that's both human-readable and filterable. A common pattern:
[timeframe]_[audience]_[offer]
Examples: q1_2025_smb_free_trial, jan_enterprise_demo_request
Document Your Convention
Create a shared document with approved values for each parameter. This prevents team members from creating inconsistent tags. Tools like marketingOS UTM Tracker can enforce naming conventions automatically.
GA4 Campaign Reports
GA4 displays UTM data in several standard reports. Understanding where to find this data helps you monitor campaign performance without building custom reports.
Traffic Acquisition Report
Navigate to Reports → Acquisition → Traffic Acquisition. This report shows sessions by source/medium combination, which directly reflects your UTM tags.
- Default dimension: Session default channel grouping
- Change to "Session source/medium" for UTM-specific view
- Add secondary dimension "Session campaign" for campaign breakdown
- Filter to specific sources or mediums to isolate campaign data
User Acquisition Report
Reports → Acquisition → User Acquisition shows first-touch attribution. This tells you what campaign initially brought users to your site, even if they convert on a later visit.
Channel Groupings
GA4 categorizes traffic into channel groups (Paid Search, Paid Social, Email, etc.) based on source and medium values. Your UTM tags must follow GA4's expected patterns for correct channel classification:
| Channel | UTM Requirements |
|---|---|
| Paid Search | medium contains "cpc" or "ppc" or "paid" |
| Paid Social | medium contains "paid" and source is social platform |
| medium = "email" | |
| Affiliates | medium = "affiliate" |
Building Custom Explorations
GA4 Explorations let you create custom reports combining UTM dimensions with any metrics. This is where you get campaign-specific insights beyond standard reports.
Creating a Campaign Performance Exploration
- Go to Explore → Create new exploration
- Choose "Free form" template
- Add dimensions: Session campaign, Session source/medium
- Add metrics: Sessions, Conversions, Revenue
- Drag dimensions to Rows, metrics to Values
- Apply filters to focus on specific campaigns
Useful UTM-Based Explorations
- Campaign comparison: Side-by-side performance of different campaigns
- Content analysis: Which utm_content values drive best results
- Channel efficiency: Cost per conversion by source/medium
- Time-based trends: Campaign performance over weeks or months
Save and Share
Save explorations for repeated use. Share them with team members who need campaign visibility. This prevents everyone from rebuilding the same reports.
Understanding GA4 Attribution
GA4 uses data-driven attribution by default, which distributes conversion credit across touchpoints based on their actual influence. This affects how your UTM-tagged campaigns receive credit.
Attribution Settings
Configure attribution in Admin → Attribution Settings:
- Reporting attribution model: Choose data-driven, last click, or others
- Lookback windows: How far back to credit touchpoints
- Acquisition vs behavior: Different reports use different attribution
Conversion Paths Report
Go to Advertising → Attribution → Conversion paths to see how UTM-tagged campaigns contribute to conversions across the customer journey. This shows:
- Which campaigns appear early in the path (awareness)
- Which campaigns close conversions (last touch)
- How many touchpoints typically precede conversion
- Time lag between first touch and conversion
Attribution Limitations
GA4 attribution only works when users can be tracked across sessions. Users who clear cookies, switch devices, or use privacy browsers may not be attributed correctly. UTM data itself is always captured, but multi-touch attribution requires user identification.
Troubleshooting UTM Issues
Common UTM tracking problems and their solutions:
Problem: Traffic Showing as (not set)
Causes and fixes:
- Missing parameters: Ensure all links have utm_source, utm_medium, utm_campaign
- Typos in parameter names: Check for "campain" instead of "campaign"
- Redirects stripping parameters: Test final destination URLs
- URL shorteners: Some remove parameters; test before deploying
Problem: Duplicate Sources
Seeing "Facebook", "facebook", and "fb" as separate sources? This is a naming consistency issue:
- Create and enforce a naming convention document
- Use UTM management tools that validate inputs
- Audit existing links and update to standard values
- Consider regex filters in GA4 to consolidate (advanced)
Problem: Self-Referrals
Your own domain appearing as a traffic source usually indicates:
- UTM parameters on internal links (remove them)
- Missing referral exclusions for payment processors
- Cross-domain tracking not configured properly
- Subdomain to subdomain navigation issues
Problem: Data Discrepancies
Numbers don't match ad platform reports? Normal causes:
- Click vs session: GA4 counts sessions, platforms count clicks
- Bot filtering: GA4 filters invalid traffic
- Timing differences: GA4 uses user timezone, platforms use account timezone
- Sampling: Large datasets may be sampled in GA4
Frequently Asked Questions
Related Resources
UTM Tracking Tool
Build, manage, and validate UTM links with enforced naming conventions.
ArticleUTM Naming Conventions
Best practices for consistent UTM parameter naming across teams.
ArticleHow to Build UTM Links
Step-by-step guide to creating UTM-tagged URLs for any campaign.
FeatureMarketing Dashboard
Unified campaign reporting across all channels and platforms.
Stop Wrestling with UTM Spreadsheets
marketingOS manages UTM links with enforced naming conventions, team collaboration, and direct integration with GA4 reporting. No more fragmented data from inconsistent tags.