The Problem
You've done the hard part. You built proper UTM links, used consistent naming, added them to your social posts and emails. Now you open Google Analytics 4 to see the results - and you can't find them. Or you find a report, but half the traffic shows as "(not set)" and you have no idea why. GA4's interface is genuinely different from the old Universal Analytics, and knowing where campaign data lives is not obvious.
This guide picks up exactly where building the links leaves off. If you haven't built your UTM links yet, start with how to create UTM tracking links first - this guide assumes they're already live.
Where UTM Data Lives in GA4
Each UTM parameter maps to a specific dimension in GA4. Knowing the names matters, because they're not always what you'd guess:
- utm_source shows up as Session source
- utm_medium shows up as Session medium
- utm_campaign shows up as Session campaign
- utm_content shows up as Session manual ad content
- utm_term shows up as Session manual term
Step-by-Step: Finding Your Campaign Data
Step 1: Open the Traffic Acquisition report
In the left-hand menu, go to Reports, then Acquisition, then Traffic acquisition. This is the main report for understanding where sessions come from.
Step 2: Change the primary dimension
By default, this report groups traffic by "Session default channel group" - broad categories like "Organic Social" or "Email." That's useful for a high-level view, but it hides your specific UTM values. Click the dropdown at the top of the table and change it to Session source / medium.
Now you'll see rows like "facebook / social" and "newsletter / email" - your actual UTM values, exactly as you set them.
Step 3: Switch to campaign view
To see individual campaigns instead of sources, change the same dropdown to Session campaign. Each utm_campaign value gets its own row, so you can directly compare "summer-offer-2026" against "spring-sale-2026."
Step 4: Add a secondary dimension for detail
Next to the primary dimension dropdown, there's a small plus button. Click it to add a secondary dimension - for example, primary "Session campaign" plus secondary "Session source / medium" lets you see which platforms drove each campaign. This is where the real insight lives.
Step 5: Check utm_content and utm_term
Use the same secondary dimension button, and search for "Session manual ad content" or "Session manual term." This is how you compare different links within one campaign - your header button vs. your footer link, for instance.
Session vs. First User: A GA4 Distinction That Matters
You'll notice GA4 offers two versions of most acquisition dimensions: "Session source" and "First user source." They mean genuinely different things, and picking the wrong one leads to confusing results.
For campaign tracking, you almost always want the Session versions - they show what each individual campaign actually drove, regardless of how someone originally discovered you.
Why Your UTM Data Might Be Missing
This is the most common frustration, and it usually has one of a handful of causes:
It shows as "(not set)"
This usually means a UTM parameter was missing or malformed. If you set utm_source and utm_campaign but forgot utm_medium, GA4 may struggle to classify the session cleanly. Double-check that every tracked link has all three required parameters - source, medium and campaign.
The data isn't there at all
Standard GA4 reports aren't real-time - there's typically a processing delay of several hours, and some reports can take up to a day or more to fully populate. If you just launched a campaign, wait before assuming something's broken. Use the Realtime report if you need to confirm tracking is working right now.
Traffic appears under the wrong channel
GA4 assigns sessions to default channel groups using rules based on your source and medium values. If your utm_medium doesn't match a recognised value - for example, you used "social-media" instead of "social" - GA4 may file it under "Unassigned" rather than "Organic Social." Using standard medium values (social, email, cpc, referral) helps the automatic categorisation work correctly.
Redirects stripped the parameters
If your UTM link points to a URL that then redirects elsewhere, some redirect setups drop the parameters along the way. Test your final link in a browser and confirm the parameters survive all the way to the landing page.
Comparing Campaigns Properly
Once your data is flowing, resist the urge to just look at session counts. A few metrics tell a much more useful story:
- Sessions - raw volume, useful but shallow on its own
- Engaged sessions - sessions where the visitor actually did something meaningful, rather than bouncing immediately. A campaign sending 100 engaged sessions often beats one sending 300 that all leave instantly.
- Engagement rate - the percentage of sessions that were engaged. This is the quickest way to compare campaign quality, not just quantity.
- Conversions / key events - if you've set up conversion tracking, this is the number that actually matters: which campaign drove signups, purchases, or whatever your goal is.
Building a Reusable Campaign Report
If you check campaign performance regularly, rebuilding the same view every time gets tedious. GA4's Explore section lets you build a custom report once and save it. A simple, useful setup:
- Go to Explore and create a new blank exploration
- Add dimensions: Session campaign, Session source / medium
- Add metrics: Sessions, Engaged sessions, Engagement rate, and any key event that matters to you
- Set Session campaign as the row dimension and your metrics as values
- Name it something obvious like "Campaign performance" and it'll be there next time
Common Mistakes
- Looking at "First user" dimensions for campaign analysis. Use the Session versions, as explained above.
- Judging campaigns on sessions alone. Engagement and conversions matter far more than raw visits.
- Expecting instant data. Standard reports have a processing delay - use Realtime to confirm tracking, standard reports for analysis.
- Non-standard medium values. Stick to social, email, cpc, and referral so GA4's automatic channel grouping works.
- Inconsistent naming across links. "facebook" and "Facebook" appear as two separate rows, splitting your data. Consistent naming when building the links prevents this entirely.
Build Consistent Links With WaqarWeb
Most GA4 reporting problems trace back to how the links were built in the first place. The UTM Builder includes one-click platform presets that fill in correctly-formatted, consistent source and medium values - so "facebook / social" is always exactly "facebook / social," never a near-miss variant that fragments your reports.
Frequently Asked Questions
How long does it take for UTM data to appear in GA4?
Realtime reports show activity within seconds. Standard reports typically take several hours to process, and can take up to 24-48 hours to fully finalise, so don't panic if a brand-new campaign isn't showing in standard reports yet.
Can I see UTM data for a specific landing page?
Yes - in the Traffic acquisition report, add "Landing page" as a secondary dimension alongside your campaign or source/medium dimension. This shows which page each campaign's traffic actually arrived on.
Why does the same campaign show up on multiple rows?
Almost always inconsistent naming - different capitalisation, a stray space, or a typo in one version of the link. GA4 treats each variation as a separate value. The fix is consistent link-building going forward; historical data usually can't be merged retroactively.
Do I need Google Tag Manager for this to work?
No - basic UTM tracking works with a standard GA4 installation. Tag Manager is useful for more advanced setups, but it's not required for reading campaign data.
What's the difference between "Traffic acquisition" and "User acquisition" reports?
Traffic acquisition shows sessions (individual visits) and their sources. User acquisition shows new users and where they first came from. For campaign tracking, Traffic acquisition is the one you want.
Ready to put this into practice?
Use our free QR Code Generator โ no signup required.
Open QR Code Generator โReady to put this into practice?
Use our free UTM Builder โ no signup required.
Open UTM Builder โReady to put this into practice?
Use our free Hashtag Generator โ no signup required.
Open Hashtag Generator โ