Source/Medium Cardinality in GA4: When Too Many Values Break Your Reports

Key Takeaway

High source/medium cardinality (hundreds of unique values) usually means dynamic UTM generation has gone wrong. Session IDs, timestamps, or user IDs appended to campaign names make channel reporting unusable.
Beginner

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.

High

cardinality can push rows into (other)

Naming

discipline matters more than a universal threshold

UTMs

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

Ready to audit your GA4 property?

Run a full GA4 audit in under 2 minutes. Free to start.

Audit findings should be reviewed by a qualified analyst before they are used for major reporting, media, or implementation decisions. Review your findings

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share