UTM parameters are the foundation of campaign attribution in GA4 — and they're also one of the most reliably broken things we find in analytics audits. The mistakes aren't exotic. They're mundane: inconsistent capitalization, missing parameters on email campaigns, UTMs applied to internal links, no naming convention across the team. Each one is easy to make and quietly devastating to the accuracy of your attribution data. GA4's channel groupings depend entirely on correctly formatted UTM parameters to classify traffic — which means every mistake ripples through your entire reporting stack.
Mistake 1: Inconsistent Naming Conventions
GA4 treats UTM parameter values as case-sensitive strings. utm_source=Facebook, utm_source=facebook, and utm_source=fb are three distinct sources in your reports. If different team members — or different tools — are building UTM links without a shared naming convention, your campaign data is fragmented across dozens of slightly different source values that should all be the same thing.
This problem compounds over time. Six months of inconsistently tagged Facebook campaigns might produce 15 different "Facebook" variants in your source report, none of which represents total Facebook performance. When someone in finance asks how Facebook is performing, you have no clean answer.
The fix is a documented UTM naming convention applied consistently across your entire organization — consistent casing, a defined word separator, standardized medium values (cpc, email, social, organic-social), and a single canonical source name per platform. Enforce it by having everyone use a UTM builder tool that references a locked-down list of approved values rather than typing parameters by hand. The MMP UTM Buddy is built specifically for this.
Mistake 2: Adding UTMs to Internal Links
UTM parameters on internal links won't always blow up your session attribution — but they will overwrite event-level attribution, and that creates inconsistencies across GA4's attribution reporting that are hard to diagnose and easy to misread.
Here's what actually happens: when a user clicks an internal link carrying UTM parameters, GA4 updates the traffic source attribution on any events that fire after that click. So a user who arrived from a paid Google Ads campaign, then clicks an internal banner tagged with utm_source=internal&utm_medium=banner, will have their subsequent events attributed to that internal source — not to the Google Ads click that brought them in. In the Acquisition reports this can look fine at a session level, but in event-scoped and conversion-scoped attribution reporting, the source of those events has been overwritten. The result is GA4 reports that disagree with each other depending on which attribution model or report scope you're looking at.
UTM parameters belong only on links from external sources to your website. If you need to track internal clicks — banner engagement, navigation testing, cross-sell links — use GA4 custom events or GTM click tracking instead. That captures the interaction data without touching attribution.
Mistake 3: Missing utm_medium or Using the Wrong Values
GA4's default channel groupings — Organic Search, Paid Search, Email, Organic Social, Paid Social, etc. — are built on a set of classification rules that evaluate utm_source and utm_medium together. When utm_medium is missing or uses a non-standard value, traffic falls into the Unassigned channel — which is the black hole of GA4 reporting.
Common violations:
- Email campaigns with
utm_medium=newsletterinstead ofutm_medium=email— GA4's email channel rule requires the value "email" - Paid social campaigns with
utm_medium=paidinstead ofutm_medium=paid-socialorcpc - Display campaigns with
utm_medium=display-adinstead ofutm_medium=display - SMS campaigns with no
utm_mediumat all
The fix: before setting any UTM medium value, check it against GA4's default channel grouping definitions. The medium value must match the expected string exactly for the traffic to land in the right channel. If you've been using non-standard medium values, you can create custom channel groupings in GA4 to reclassify that historical traffic — though it doesn't retroactively fix the underlying data.
Mistake 4: Not Tagging All Paid Campaigns
Google Ads traffic is automatically tagged via gclid when auto-tagging is enabled, so it doesn't strictly require UTMs. But every other paid channel — Meta, LinkedIn, TikTok, Microsoft Ads, programmatic display, sponsored newsletters — requires manual UTM tagging or it will arrive without clear attribution. In GA4, untagged paid social traffic often appears as Referral or Organic Social, which makes your paid campaigns look worse than they are and your organic channels look artificially strong.
The discipline required: every campaign link, in every platform, for every channel, gets UTM parameters before it's published. No exceptions. Build UTM generation into your campaign launch checklist, not as an afterthought but as a prerequisite for launch approval.
Mistake 5: No Consistent Formatting Convention
Spaces, hyphens, and underscores are all valid word separators in UTM values — GA4 handles URL encoding fine when it's applied consistently. The problem isn't which separator you use. The problem is mixing them. spring-promo, spring_promo, and spring promo are three distinct values in GA4 reports. If different team members are building links with different formatting, the same campaign ends up split across multiple rows and you lose the ability to aggregate performance cleanly.
The same applies to capitalization and casing. Pick a casing convention — most teams go all lowercase for simplicity — and apply it everywhere. Summer-Sale and summer-sale are different values. Document your convention once: what separator you use, what casing, what medium values are valid, what your source naming looks like per platform. Then enforce it by routing all link building through a shared UTM builder that applies those rules automatically rather than relying on people to remember them.
The only characters to avoid regardless of convention: ampersands, quotes, apostrophes, and parentheses. These cause genuine encoding issues that break parameter parsing. Everything else is a matter of picking a convention and sticking to it.
How to Audit Your UTM Setup
The fastest way to find UTM problems in your GA4 account is to look at the Traffic Acquisition report and sort by the Unassigned channel — every row there represents traffic that either has no UTMs, has invalid medium values, or has some other attribution problem. Then check the Source/Medium report for variants of the same platform: look for any source that appears multiple times with slightly different capitalization or spelling.
For a deeper audit, use GA4's DebugView while clicking through your own tagged links to verify parameters are being read correctly. Check your email platform, social scheduling tool, and paid media platforms for stored UTM templates — inconsistencies are often baked into templates that have been in place for years without anyone checking them against current standards.
If your attribution data is messy enough that you're not confident in channel-level reporting, our GA4 implementation service includes a full UTM audit and convention rebuild as part of every engagement.
UTM discipline is a team problem, not a technical one. The best UTM naming convention fails if three people are building links in different ways with different tools. The solution is a single shared UTM builder, a documented convention, and a campaign launch checklist that treats UTM tagging as a requirement — not an optional step.
Frequently Asked Questions
Inconsistent UTM parameters cause GA4 to treat the same campaign as multiple different sources. For example, "facebook", "Facebook", and "fb" all appear as separate sources in your reports, fragmenting the data and making it impossible to see total campaign performance accurately.
No. UTMs on internal links overwrite event-level attribution in GA4, causing your acquisition reports and attribution reports to tell different stories about where conversions came from. Use GA4 custom events or GTM click tracking to measure internal engagement — it captures what you need without corrupting attribution.
utm_source and utm_medium together are most critical — they feed directly into GA4's default channel groupings. Incorrect values cause traffic to fall into the Unassigned channel and become invisible in channel-level reporting. utm_campaign is important for campaign-level analysis but doesn't affect channel classification.
Is your attribution data fragmented by UTM mistakes?
A GA4 audit surfaces UTM problems, Unassigned traffic, and channel grouping issues — and gives you a clean convention to move forward with. Book a free call to get started.
Schedule a Free Call