UTM audit report
UTM Health Score
4,820 UTM links · 318,402 sessions analyzed
Paid social and email traffic are fragmenting across four to five naming variants each, scattering roughly a third of your sessions into duplicate rows in GA4. Locking six sources and five mediums to a canonical taxonomy re-joins most of it.
Dimension Breakdown
What's splitting your reporting
Every row is a cluster of values GA4 treats as separate — costing you joins across campaigns, channels, and revenue.
All Issues
| Severity | Parameter | Variants | Canonical | Traffic | Fix |
|---|---|---|---|---|---|
| critical | utm_sourceAI · Semantic | 4 | 22% | Merge all Meta variants into `facebook`. | |
| critical | utm_mediumAI · Semantic | 4 | cpc | 18% | Standardize all paid clicks to `cpc`. |
| high | utm_mediumAI · Semantic | 4 | 14% | Collapse email variants into `email`. | |
| high | utm_sourceCase | 3 | 9% | Lowercase and dedupe to `google`. | |
| medium | utm_campaignFormat | 3 | q2-2026-spring-sale | 7% | Adopt one campaign slug pattern. |
| medium | utm_sourceAI · Semantic | 3 | 5% | Map Instagram aliases to `instagram`. | |
| high | utm_medium | 0 | — | 8% | 8% of tagged links are missing utm_medium entirely. |
| low | utm_mediumFormat | 3 | social | 4% | Unify organic social to `social`. |
The fix: one canonical taxonomy
Drift on the left, the value your team carries forward on the right.
Sources
facebook, google, instagram, linkedin, bing, direct
Mediums
cpc, email, social, organic, referral
Campaign pattern
{channel}-{yyyy}-{descriptor}
See your own UTM health score
Paste your GA4 export. Get the grade, the drift, and the clean taxonomy in 60 seconds.
Free first audit · 60-second result · no signup required.