You've been meticulously tagging every campaign link with UTM parameters. You open GA4's Traffic Acquisition report and... nothing. Your paid campaigns show as (direct) / (none) or Unassigned. The UTM parameters are right there in the URL, but GA4 pretends they don't exist.
This is one of the most frustrating GA4 issues, and it's almost always caused by one of these 8 problems.
1. You're Looking at the Wrong Report
GA4 has two traffic acquisition reports that show different things:
- User Acquisition: Shows the source of the user's first ever visit. If they first came via organic and later clicked your UTM link, the UTM won't show here.
- Traffic Acquisition: Shows the source for each session. This is where your UTM parameters should appear.
The fix: Navigate to Reports → Acquisition → Traffic Acquisition. Use the "Session source / medium" dimension to see UTM data.
2. UTM Parameters Are Case-Sensitive
This trips up so many teams. utm_source=Facebook and utm_source=facebook are treated as completely different sources in GA4. If your team uses inconsistent casing, your campaign data gets fragmented across multiple line items.
The fix: Standardize on lowercase for all UTM values. Create a UTM builder spreadsheet or use Google's Campaign URL Builder. Enforce a naming convention across your team.
3. Redirects Are Stripping UTM Parameters
This is the #1 silent killer. Your URL has UTMs, but a redirect (301, 302, or JavaScript redirect) between the link click and the landing page strips the query parameters. Common culprits:
- HTTPS redirects (http → https)
- www vs non-www redirects
- Trailing slash redirects (/page → /page/)
- Short URL services (bit.ly, link shorteners)
- Marketing platforms with their own redirect chains
The fix: Test your full UTM URL by pasting it in an incognito browser. Check if the UTM parameters survive all the way to the final landing page URL.
4. Missing Required UTM Parameters
utm_source and utm_medium are the minimum required parameters. If you only use utm_campaign without source and medium, GA4 may not attribute the session correctly.
The fix: Always include at minimum: utm_source, utm_medium, and utm_campaign. Remember to use recognized medium values like cpc, email, social, referral to map correctly to GA4's default channel groupings.
5. Self-Referrals Overwriting UTM Data
If your own domain appears as a referral source, it can overwrite the original UTM attribution mid-session. This happens when users pass through subdomains, payment processors, or authentication flows that trigger a new session.
The fix: Add your domain (and subdomains, payment gateways, etc.) to the unwanted referrals list under Data Streams → Configure Tag Settings → List unwanted referrals.
6. Data Processing Delay
GA4 standard reports can take 24-48 hours to fully process. If you're checking for today's UTM data in standard reports, you won't see it yet. Use the Realtime report to verify that UTM parameters are being captured right now.
7. Google Ads Auto-Tagging Conflicts
If you're using both Google Ads auto-tagging (gclid) and manual UTM parameters on the same URL, there can be conflicts. GA4 prioritizes gclid for Google Ads traffic, which may override your UTM values.
The fix: For Google Ads, rely on auto-tagging and the GA4 ↔ Google Ads link. Use UTM parameters for non-Google paid channels (Meta, LinkedIn, TikTok, email, etc.).
8. UTM Parameters in Hash Fragments
If your UTMs appear after a # in the URL (like page.html#utm_source=email), GA4 cannot read them. Hash fragments are never sent to the server and are not parsed by the GA4 tag. UTMs must be in the query string after ?.
Campaign Health Check
NiceLookingData audits your GA4 campaign tracking setup, identifies self-referral issues, and checks for UTM configuration problems. Run a free audit to see if your campaign data is reliable.
Key Takeaways
- Always use the Traffic Acquisition report (not User Acquisition) to see UTM data per session.
- Test your UTM URLs in incognito to verify parameters survive redirects.
- Standardize on lowercase UTM values across your organization.
- Add your own domains to the unwanted referrals list to prevent self-referral attribution.
- Allow 24-48 hours for data to appear in standard reports; use Realtime for immediate verification.
Run a free GA4 audit on your property
Connect your Google Analytics 4 property. Our auditor runs 36+ checks and gives you an instant health score with a plain-English action plan.
