UTM Parameters in Google Analytics 4: What Changed and What to Do
If you UTM-tagged links the same way in Universal Analytics and switched to Google Analytics 4, the data is in a different place — and some reports just disappeared. Here’s what GA4 actually does with UTM parameters, what’s new (utm_id, utm_source_platform), and where to find your campaign data.
The GA4 UTM checklist
| Parameter | GA4 dimension | Status |
|---|---|---|
| utm_source | Session source | Same as UA |
| utm_medium | Session medium | Same as UA |
| utm_campaign | Session campaign | Same as UA |
| utm_term | Session manual term | Same as UA |
| utm_content | Session manual ad content | Same as UA |
| utm_id | Session campaign ID | New in GA4 |
| utm_source_platform | Session source platform | New in GA4 |
| utm_creative_format | Session creative format | New in GA4 |
| utm_marketing_tactic | Session marketing tactic | New in GA4 |
What’s new and why it matters
utm_id
Used to tie a campaign to a Campaign ID from your ad platform. If you import cost data from Google Ads, Meta, etc., GA4 uses utm_id to match clicks to spend. If you don’t import cost data, it’s irrelevant.
utm_source_platform
Distinguishes “where the link was clicked” from “the platform that hosted the click.” Example: an Instagram ad placed via Meta Ads Manager — utm_source might be “instagram” but utm_source_platform = “meta_ads.”
utm_creative_format and utm_marketing_tactic
Niche. Useful only if you’re running large multi-format campaigns and need granular reports.
Where the UTM data appears in GA4
Three reports actually use it:
- Acquisition → Traffic acquisition. Shows session source/medium and campaign by default.
- Acquisition → User acquisition. Same dimensions, scoped to first-touch.
- Explore (custom reports). Build any UTM combination you need.
The “Default Channel Group” trap
GA4 groups your traffic by “default channel group” (Direct, Organic Search, Paid Search, etc.). It assigns a channel based on your UTMs. If your utm_medium doesn’t match GA4’s expected values, traffic falls into “Unassigned.”
Approved utm_medium values that map cleanly:
| utm_medium | Maps to |
|---|---|
| cpc, ppc, paidsearch | Paid Search |
| display, banner, expandable | Display |
| social, social-network, social-media, sm, social network | Organic Social |
| cpc + utm_source = facebook/instagram/etc. | Paid Social |
| referral | Referral |
| affiliate | Affiliates |
| video | Organic Video |
| audio | Audio |
| sms, push, mobile | Mobile Push Notifications / SMS |
Made up something like utm_medium=newsletter-may? GA4 puts it in Unassigned. Use utm_medium=email + utm_campaign=newsletter-may instead.
Reports that disappeared from UA
- Bounce rate (gone, replaced by Engagement Rate). Click context: bounces are now sessions under 10 seconds with no events. Engagement Rate is the inverse and arguably more meaningful.
- Multi-Channel Funnels. Replaced by GA4’s Attribution reports.
- Source/Medium → All Pages cross-tab. Build it in Explore now.
Customer Lifetime Source vs Session Source
GA4 splits attribution into:
- First user source / medium / campaign: the very first touch, attached to the user permanently.
- Session source / medium / campaign: the source of each individual session.
UA only had session-level data by default. GA4 gives you both. Use first-user for “what brings them in initially,” session for “what closes the deal.”
Best practices in GA4-land
- Use lowercase consistently. Still case-sensitive.
- Stick to GA4’s expected utm_medium values for default channel mapping.
- Skip utm_id unless you import cost data.
- Tag every external link. Internal links never.
- Document your conventions. A shared sheet or a strict generator stops naming drift.
Common mistakes
- Using utm_medium values that don’t exist in GA4’s channel map. Lands traffic in Unassigned.
- Tagging organic Google searches. Don’t. GA4 detects them automatically. Adding UTMs breaks attribution.
- Forgetting that GA4 strips parameters from the URL after capture. Don’t rely on UTMs being present in landing-page URLs for client-side analytics.
- Inconsistent capitalization. “Email” and “email” are still different sources.
FAQ
Does GA4 support gclid and fbclid automatically?
Yes — gclid (Google Ads) is auto-detected and used for paid search attribution. fbclid is captured but not auto-attributed; you still need utm parameters for Meta traffic.
How long does GA4 keep UTM data?
Up to 14 months for explore reports (default), longer if you’re on a paid plan. The UTMs themselves are written into events at capture time, so they’re not lost over time.
Should I use utm_id?
Only if you import cost data from your ad platform. Otherwise, skip it.
What about UTMs and BigQuery export?
All UTM data is in the collected_traffic_source nested fields in BigQuery. Useful for advanced custom reports.
Do UTM parameters affect SEO?
No. Google ignores them for ranking. UTMs are user-agent metadata, not page content.
Build clean UTMs in seconds
The UTM link generator outputs links with the GA4-friendly medium values built in. Standardize once, drop into emails, posts, and ads.