How to Audit Your UTMs in GA4: A Complete Diagnostic Guide
You set up UTM tracking. You're tagging campaigns, linking sources, and watching GA4 fill up with data. Everything looks fine — until you dig in and realize your paid social traffic is showing up as Organic, half your Google Ads sessions have (organic) as the campaign name, and a chunk of your revenue attribution is sitting in Direct with no context at all.
This isn't a rare edge case. It's the default state for most GA4 accounts that haven't been formally audited. UTM tracking breaks quietly and constantly — through copy-paste errors, platform quirks, team inconsistency, and tool misconfigurations — and GA4 gives you no warnings when it does.
This guide covers exactly why you should audit your UTMs, what the audit looks for, and how to run one on your own GA4 data right now for free.
In This Guide
1. Why UTM Auditing Matters
Most marketing teams treat UTM setup as a one-time task. Build a spreadsheet, define naming conventions, tag your links, done. The problem is that UTM tagging isn't a one-time setup — it's an ongoing operational process across every team, platform, and campaign. And operational processes break.
When UTM tracking breaks, the consequences aren't obvious. Your session count doesn't drop. Your revenue doesn't disappear. Everything in GA4 still looks like it's working. The damage is purely in attribution — your data silently shifts into the wrong buckets.
A UTM audit is how you find out how bad it actually is — and what specifically to fix. Most teams that run one for the first time are surprised by what they find.
2. What Actually Breaks UTM Tracking
Understanding why tracking breaks makes it easier to know what to look for in an audit. The causes fall into a few predictable categories.
Human error at scale. When multiple people are building campaign URLs across different teams and time zones, inconsistency creeps in fast. One person uses utm_medium=email, another uses utm_medium=Email, a third uses utm_medium=newsletter. GA4 treats all three as different mediums — only one matches the channel grouping rule for Email.
Platform auto-tagging conflicts. Google Ads uses gclid for auto-tagging. When manual UTMs are also present on the destination URL, conflicts can cause campaign data to break — showing (organic) or (not set) instead of the actual campaign name. This is one of the most common and damaging issues in GA4.
Missing UTMs on paid placements. Ad platforms like Meta attach click IDs (fbclid) to URLs automatically when someone clicks an ad — but that doesn't add UTMs. If the ad wasn't built with UTM-tagged URLs, the session arrives in GA4 with fbclid in the landing page but no utm_source, no utm_medium. GA4 falls back to the referrer and attributes it as Organic Social or Referral.
URL construction errors. Copy-paste errors cause double-tagged parameters. Template mistakes produce URLs with two ? characters. UTM params get appended after a # anchor. Encoding issues turn utm_medium into a parameter that absorbs everything after it. Each of these breaks quietly at the session level.
Third-party tools and redirects. Link shorteners, redirect chains, and third-party platforms sometimes strip UTM parameters mid-journey. The original tagged URL never reaches GA4.
3. The 7 Things to Check in a UTM Audit
A thorough UTM audit covers seven distinct diagnostic areas. Each surfaces a different type of attribution problem.
❌ 1. Untagged Ad Traffic
This is the most impactful issue for most paid media teams. Platforms like Meta, TikTok, LinkedIn, Microsoft Ads, Pinterest, Snapchat, and X all append click ID parameters to landing page URLs when someone clicks an ad. The audit checks for these click IDs — fbclid, ttclid, li_fat_id, msclkid, twclid, epik, ScCid — in the landing page + query string dimension.
When a click ID is present but UTMs are missing, and GA4's default channel group is not the expected paid channel, that's an untagged ad session. It's being attributed to the wrong place entirely.
Target: < 0.5% untagged ad sessions of total⚠️ 2. Unassigned Traffic
GA4's "Unassigned" channel is a catch-all for sessions where the source/medium combination doesn't match any of the default channel grouping rules. The most common cause is non-standard medium values — things like utm_medium=social, utm_medium=paid, or utm_medium=ad that aren't in GA4's ruleset.
High Unassigned traffic means GA4 has essentially given up on categorizing a portion of your sessions. Anything above 1% of total sessions warrants investigation. Look at the source/medium breakdown for Unassigned — you'll usually find a handful of rogue medium values responsible for the bulk of it.
Target: < 1% Unassigned sessions
3. Google Ads Campaign Misattribution
In GA4, sessions from google / cpc should have a meaningful campaign name. When you see (organic) or (not set) as the campaign value for google / cpc sessions, something is wrong with how GA4 is receiving campaign data.
The typical cause is a conflict between auto-tagging (gclid) and manual UTMs. When both are present and the Google Ads account isn't linked properly to GA4, or when manual UTMs override auto-tagging, campaign data breaks. These sessions count against your Google Ads budget but report as if they were organic traffic.
Target: < 1% of total CPC sessions🔧 4. UTM Syntax Errors
Five specific URL construction mistakes are worth checking for explicitly:
Double-tagged: A UTM parameter (e.g., utm_source) appears twice in the same URL. GA4 may capture both values concatenated, producing a source like "facebook.comfacebook.com".
Missing ?: UTM parameters were appended to the URL without the ? separator that starts the query string. The parameters get treated as part of the path and GA4 never sees them.
Unexecuted encoding: Characters like spaces or special symbols weren't URL-encoded before being placed in a UTM value. This can cause the query string to break mid-parse.
Double query (multiple ?): The URL contains two ? characters. The second one and everything after it is usually ignored or mishandled.
Broken anchor (#): UTM parameters were appended after the # symbol. Everything after # is processed by the browser, not sent to the server — GA4 never receives it.
Target: 0 errors in every category☣️ 5. UTM Pollution
UTM pollution happens when a broken URL structure causes one parameter to absorb the values intended for other parameters. The most common example: a URL where utm_medium is constructed without proper encoding, causing it to capture the entire remainder of the query string — including click IDs, other UTM values, and arbitrary parameters.
The result is utm_medium values that look like entire URLs. GA4 can't classify these sessions, and they usually land in Unassigned. Pollution is harder to spot in GA4's standard reports because the junk values are buried in source/medium breakdowns.
Target: 0 polluted sessions🌳 6. UTM Tree — Traffic Flow Mapping
The UTM Tree isn't a diagnostic with a specific error to fix — it's an exploratory view of your full traffic structure. The report shows the flow from Channel Group → Source → Medium → Campaign → Landing Page, and lets you click any element to filter and trace how sessions move through each layer.
This is invaluable for spotting patterns that don't trigger a specific error but are clearly wrong — a channel with unexpected sources feeding into it, campaigns with dozens of inconsistent naming variations, or mediums that should be cpc but are landing in the wrong channel group because of a capitalization inconsistency.
Exploratory — use it to spot naming & structure issues📈 7. UTM Utilization
Standard UTM tracking uses five parameters (source, medium, campaign, content, term). GA4 supports four additional parameters: utm_id, utm_source_platform, utm_marketing_tactic, and utm_creative_format. Most teams use zero of these four.
The utilization audit counts distinct values for all nine parameters across your tagged traffic. This tells you where gaps exist — for example, if you're running paid campaigns but have 0 utm_id values, you're missing the link between GA4 session data and your campaign management system.
Exploratory — identify parameter coverage gaps4. How to Run the Audit in GA4
You can surface most UTM audit findings manually using GA4's Explore reports — but it takes time and knowing exactly what to look for. Here's the core approach for each area.
For untagged ad traffic: In GA4 Explore, create a free-form exploration using Landing page + query string as a dimension and Sessions as the metric. Filter the landing page dimension to contain "fbclid=" (or other click IDs). Then add Session default channel group and look for any rows where the channel is not Paid Social. Those are your untagged Meta ad sessions.
For unassigned traffic: In Reports → Acquisition → Traffic acquisition, filter the Session default channel group to "Unassigned". The session source/medium breakdown will show you the non-standard values causing the issue.
For Google Ads misattribution: In Traffic acquisition, filter to Session medium = cpc. Add Session campaign as a secondary dimension and sort by Sessions. Any rows with (organic) or (not set) as the campaign name are misattributed CPC sessions.
For syntax errors: In Explore, use Landing page + query string as a dimension. Apply a filter for pages containing "utm_". Scan the results for URLs with double parameters, missing ?, UTMs after #, or double query strings. This is tedious to do manually at scale.
5. Run the Free Audit Tool
The UTM Buddy GA4 Audit is a free Google Data Studio (Looker Studio) report built specifically to run all seven diagnostics at once against your own GA4 data. There's no signup required and no data is stored or shared — the report connects directly to your GA4 property and reads live data in your browser.
To use it:
- Open the report and click "Click to select your data" in the top bar
- Choose your GA4 property from the data source selector
- Set your date range (30–90 days recommended; avoid the last 48 hours due to GA4 processing lag)
- Navigate each of the 7 diagnostic pages to review your results
Each page shows a benchmark, an explanation of what the diagnostic measures, key metrics, and a detailed table of affected sessions so you know exactly what to fix.
📊 Free GA4 UTM Audit
Connect your GA4 property and get a full diagnostic across 7 UTM audit areas — completely free, no account required.
Launch Free Audit →6. What to Do With What You Find
A UTM audit gives you a prioritized list of attribution problems. Here's how to act on the most common findings.
Untagged Meta/paid social traffic: Add UTMs to all ad-level destination URLs in Meta Ads Manager. Use a tool like UTM Buddy to ensure consistent naming and validate GA4 channel attribution before publishing. Don't rely on fbclid alone for attribution — GA4 won't classify it correctly without utm_source and utm_medium.
Google Ads campaign misattribution: First, verify that Google Ads auto-tagging is enabled in your Google Ads account settings. Then check whether manual UTMs in your ad destination URLs are overriding gclid. In most cases, you should either use auto-tagging alone or add manual UTMs that are consistent with GA4's channel grouping rules. Don't use both unless you understand the interaction.
Unassigned traffic from non-standard mediums: The fix is standardizing medium values across your campaigns. GA4's default channel grouping rules define which medium values map to which channels — cpc maps to Paid Search, email maps to Email, social maps to Organic Social. Rogue values like "ad" or "paid" or "newsletter" won't match any rule and land in Unassigned.
UTM syntax errors: Each error type has a specific fix. Double-tagged URLs need template corrections to remove the duplicate parameter. Missing ? errors need the separator added before UTM params. Broken anchor errors require the UTM string to be moved before the # in the URL. Build validation into your UTM creation process — not as a retroactive audit step.
UTM pollution: Trace the affected source/medium combinations back to the campaign and platform that generated them. The issue is usually in how a tracking template or third-party tool is constructing the URL. Rebuild the URL structure from scratch using proper encoding and test it before deploying.
How Often Should You Audit?
For most teams, a quarterly UTM audit is the right cadence. Run it at the start of each quarter before reviewing attribution data for the previous period. If you launch a new major campaign, integrate a new marketing platform, or onboard a new team member, run a targeted audit shortly after.
Teams with high campaign volume — running dozens of campaigns per week across multiple channels — benefit from monthly audits, particularly on the untagged ad traffic and syntax error diagnostics where new issues compound quickly.
The goal isn't perfect data retroactively. It's catching problems quickly enough to minimize the damage and fix them before they corrupt an entire quarter of attribution reporting.
Wrapping Up
UTM tracking is only as good as its weakest link — and in most organizations, the weakest links are the processes, templates, and team habits around link creation and platform setup. The audit doesn't fix those things on its own, but it tells you exactly where the gaps are and how many sessions they're affecting.
If you haven't audited your UTMs in the past 90 days, it's worth doing now. The issues the audit surfaces are almost always fixable once you know where to look.
Run the Free GA4 UTM Audit
Seven diagnostics, your own data, no signup required. Find out what your GA4 attribution is getting wrong.
Launch Free Audit →