Reading your UTM data in GA4

The most-used UTM parameter answers a single question: which site or platform sent this visitor? Here is what it means, how it differs from utm_medium, and how all five standard parameters fit together.

Guide · LinkTag

Where UTM data lands in GA4

Google Analytics 4 translates your UTM parameters into its own dimensions. The mapping is the first thing to learn, because GA4 rarely shows the raw parameter names:

Your UTM parameterGA4 dimensionExample
utm_sourceSession sourcenewsletter, google, instagram
utm_mediumSession mediumemail, cpc, social
utm_campaignSession campaignspring-launch
utm_termSession manual termrunning shoes
utm_contentSession manual ad contenthero-button

The "Session" prefix matters: these dimensions describe the session's first attributed source. GA4 also offers "first user" variants (the very first source that ever brought the user) — useful for lifetime analysis, confusing if you mix them with session-scoped numbers in one report.

The traffic acquisition report

Start at Reports → Acquisition → Traffic acquisition. This is GA4's home base for UTM reading. The default table groups by "Session default channel group" — GA4's own categorization, driven mostly by your utm_medium. To read your actual tags, change the primary dimension: click the dimension dropdown and switch to Session source, Session medium, or Session campaign. Add a secondary dimension (the "+" button) to cross-tabulate — source by campaign is the classic view for judging which efforts delivered.

Pay attention to the metrics beyond sessions: engaged sessions, engagement rate, and conversions per source tell you about quality, not just volume. A source sending thousands of sessions with near-zero engagement is a targeting problem wearing a traffic costume.

Building a custom exploration

When the standard report cannot answer the question, use Explore → Free form. A practical setup for campaign analysis:

  1. Rows: Session campaign, then Session source / medium as nested rows.
  2. Columns: leave empty or add device category for a split.
  3. Values: Sessions, engaged sessions, engagement rate, key events (conversions).
  4. Filters: Session campaign contains your campaign prefix, to isolate the test.

Explorations also let you use the manual term and ad content dimensions that the standard reports hide — this is where utm_term and utm_content finally become visible for creative-level analysis. For Google Ads traffic, the bigger question is whether to tag manually at all: GA4's auto-tagging can replace utm_term entirely — this manual vs. auto-tagging comparison lays out the trade-offs.

Source vs. medium vs. campaign: reading the hierarchy

Read the three dimensions as a hierarchy, not as rivals. Medium answers "which channel type works" (email vs. paid social). Source answers "which property within the channel" (newsletter vs. partner email). Campaign answers "which specific effort" (spring-launch vs. webinar). A healthy analysis moves down the hierarchy: medium shows email outperforming social, source shows the newsletter driving it, campaign shows which send. Each level suggests a different action — reallocate budget, double down on a partner, or repeat a winning creative. If the medium vocabulary itself is unfamiliar, this guide to the UTM parameters explained breaks down what each parameter identifies and how they combine.

Common "why is my data weird" fixes

SymptomLikely causeFix
Traffic shows as (direct)Links shared without tags, or tags stripped by redirectsTag at the source; test the full redirect chain
(not set) in campaign rowsSessions with no campaign parameter — normal for untagged trafficFilter it out of campaign analysis; tag more links
Email and email as separate rowsCase inconsistency in taggingStandardize on lowercase; document the vocabulary
Self-referrals from your own domainMissing domain in data stream settings, or untagged subdomainsConfigure unwanted referrals and cross-domain tracking
One campaign, wildly different results by weekValue reuse — same campaign name for different effortsGive each effort a unique, dated campaign value

(unassigned) and other mysteries

GA4's (unassigned) channel group collects sessions its rules cannot categorize — often from unusual medium values or missing parameters. It is not broken data; it is uncategorized data. Reduce it by keeping your medium vocabulary to standard values (email, social, cpc, referral, organic) and creating custom channel groups under Admin → Channel groups for the oddballs you genuinely need. Some unassigned will always remain — apps and dark social do not always pass referrers — so treat it as a known unknown, not a crisis.

Tagging correctly in the first place prevents most of these mysteries. Build clean, consistent URLs with our UTM source generator, and review the naming conventions in our UTM naming conventions guide.

Frequently asked questions

Why does GA4 show "Session source" instead of utm_source?

GA4 renames UTM parameters into its dimension system. Session source is the session-scoped version of utm_source; "first user source" is the user-scoped equivalent. They answer different questions, so check which one your report uses.

How long until tagged traffic appears in GA4?

Real-time reports show it within seconds — always verify new campaigns there first. Standard reports typically reflect the data within a day.

Can I see utm_content in standard reports?

Not directly — use Explore with the "Session manual ad content" dimension. Standard reports expose source, medium and campaign; the optional parameters live in explorations.

What is the difference between traffic acquisition and user acquisition?

Traffic acquisition attributes by session (what brought this visit); user acquisition attributes by first touch (what brought this user ever). For campaign analysis, traffic acquisition is usually the right one.

Do UTMs work if the visitor uses an ad blocker?

UTMs are just URL parameters — blockers do not strip them. But if the blocker prevents GA4 itself from loading, the session is never recorded at all, tagged or not.