A source/medium report should give you a clean picture of which channels drive traffic. When cardinality is high, hundreds or thousands of distinct source/medium combinations, the report becomes a wall of noise where meaningful channels are buried under hundreds of one-session entries.
What is cardinality and why does it matter?
Cardinality refers to the number of distinct values a dimension can take. In GA4,source/mediumis a combined dimension derived fromutm_sourceandutm_mediumparameters on incoming URLs. In a healthy property, you expect dozens of distinct values, one per channel or campaign type. In a high-cardinality property, you can see thousands.
When cardinality exceeds GA4's threshold for a report, low-traffic rows get collapsed into an(other)bucket. This means real channel data disappears from your reports, not because the data wasn't collected, but because GA4 can't surface it without bucketing it away — a closely related symptom to(not set) valuesin attribution dimensions.
cardinality can push rows into (other)
discipline matters more than a universal threshold
are one of the main causes to review first
Common causes of high cardinality
Cardinality problems almost always originate from UTM parameters being generated dynamically or inconsistently. A documentedUTM governance standardis the most reliable defence — without one, the most frequent causes include session IDs or timestamps embedded in UTM values, URL shorteners appending unique tracking codes, email platforms auto-generating per-recipient source values, and developers testing with arbitrary utm_source strings.
A single email send to 50 to 000 recipients where each recipient gets a unique utm_source value will generate 50 to 000 new rows in your source/medium report. After a few campaigns, the report is unusable.
High cardinality warning signs
- More than 100 distinct source/medium values in your Traffic Acquisition report
- (other) row appearing in source/medium reports with significant traffic
- Source values containing numbers, IDs, or timestamps (e.g. email_12839471)
- utm_source values that change per-user or per-send rather than per-campaign
- Multiple spelling variants of the same source (google, Google, GOOGLE)
- utm_medium values outside the standard set (cpc, email, referral, display, affiliate, social)
- Missing utm_campaign on paid traffic, all sessions merge into generic medium
- All paid campaign UTMs follow a consistent, documented naming convention
How to audit cardinality in GA4
The fastest way to detect cardinality problems is to open the Traffic Acquisition report in GA4, switch the primary dimension to Session source / medium, and count the number of rows. If you see more than 50 to 100 rows with a mix of recognisable and unrecognisable values, you have a cardinality issue — and a likely follow-on cause ofsource/medium flipping to Directas misshapen UTMs fall out of channel rules.
For deeper analysis, connect GA4 to BigQuery and query theevents_*table for distinct values oftraffic_source.sourceandtraffic_source.medium. This bypasses the reporting cardinality limit and shows you the full, uncollapsed distribution — though you should still cross-check againstBigQuery export paritybefore treating the raw values as authoritative.
Source/Medium cardinality audit plan
Validate
- Count distinct source/medium values in Traffic Acquisition report, flag if over 50
- Check for (other) row in reports and estimate its traffic share
- Search for source/medium values containing numbers, dates, or IDs
- Review UTM tagging from email platforms for per-recipient vs per-campaign parameters
- Check for case inconsistency across source values (google vs Google vs GOOGLE)
Fix
- Replace dynamic per-recipient utm_source with static campaign-level values
- Implement a UTM naming convention doc and enforce it across all teams
- Use lowercase-only UTM values. GA4 is case-sensitive for source/medium
- Add UTM validation to your campaign launch checklist to catch bad values before launch
- Use GA4 channel groupings to re-map malformed sources into correct channels where possible
Watch for
- New email campaigns, check UTM values before each send
- (other) row growing as a percentage of total traffic
- New UTM sources appearing from third-party integrations or affiliate platforms
- Paid campaign UTMs being auto-generated by platforms without coordination
Related guides to read next
Why Your Source/Medium Changed to Direct
Understand how UTM stripping and redirect chains cause attribution to shift to direct.
GA4 Direct Traffic Too High
High direct traffic is often a symptom of the same UTM tagging problems that cause cardinality.
GA4 Attribution Models Explained
Once cardinality is resolved, understand how GA4 attributes credit across your clean source/medium data.
Ready to audit your GA4 property?
Run a full GA4 audit in under 2 minutes. Free to start.