How to Audit Your UTMs in GA4: A Complete Diagnostic Guide
Most GA4 properties that have never been formally audited carry the same set of attribution errors: paid social sessions classified as Organic Social, Google Ads sessions reporting (organic) as the campaign name, and email clicks sitting in Direct or Referral with no campaign context.
UTM tracking breaks through copy-paste errors, platform quirks, team inconsistency, and tool misconfigurations, and GA4 issues no warning when it happens. A UTM audit is the systematic check that surfaces those errors. This guide covers why auditing matters, the seven diagnostic areas an audit covers, how to run one against your own GA4 data, and what to do with the results.
TL;DR — A UTM audit is a systematic review of campaign parameters in GA4 that identifies untagged ad traffic, syntax errors, and misattributed sessions before they corrupt reporting. Run one quarterly, and monthly if you launch dozens of campaigns a week. The free Looker Studio audit covers seven diagnostic areas against your own property with no signup.
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 across different teams are building campaign URLs, inconsistency creeps in fast. One person uses utm_medium=email, another uses utm_medium=Email, a third uses utm_medium=newsletter. GA4's channel rules are case-insensitive, so email and Email both classify as Email — but they remain two distinct medium values, splitting one campaign across two rows in any source/medium report. newsletter matches no channel rule at all and falls into Unassigned.
Auto-tagging with no UTM fallback. Google Ads passes campaign data through gclid rather than UTM parameters. When that identifier does not survive the click — stripped by a redirect, a link shortener, or a landing page that rewrites the query string — GA4 has nothing left to read, because no manual UTMs were applied as a backup. The session arrives with no campaign data at all.
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 whose source and medium combination matches none of the default channel grouping rules. The most common cause is a medium value outside GA4's expected patterns — utm_medium=newsletter, utm_medium=partner, utm_medium=qr, and utm_medium=webinar all match no rule and fall straight through.
Swapped values produce the same outcome. utm_source=cpc with utm_medium=google inverts the two fields, so GA4 evaluates google as the acquisition method, finds no rule for it, and files the session in Unassigned while the real source sits in the medium column.
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 cause is auto-tagging breaking with no UTM parameters in place as a fallback. Google Ads carries campaign data in gclid, and when that identifier is stripped in transit — by a redirect, a link shortener, or a landing page that rewrites the query string — GA4 receives a paid click with no campaign data attached and records (organic) or (not set). These sessions still count against your Google Ads budget while reporting as though they were organic traffic.
Applying manual UTMs alongside auto-tagging is the insurance policy. If the gclid survives, GA4 uses it; if it does not, the UTM values are still there to identify the campaign.
🔧 4. UTM Syntax Errors
Five specific URL construction mistakes are worth checking for explicitly:
Double-tagged: A UTM parameter appears twice in the same URL. GA4 reads the first occurrence and ignores the rest, so a URL carrying utm_source=facebook followed later by utm_source=newsletter is recorded as facebook. Nothing looks broken in the report — the intended value is simply dropped without warning.
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.
7. 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.
8. Preventing the Errors an Audit Finds
An audit is a detection tool. It tells you which sessions were misclassified and roughly how many, but every error it surfaces was created earlier — at the moment somebody built a campaign URL. The sessions already in your property cannot be reclassified, which is why a clean audit result is a tagging problem solved upstream rather than a reporting problem solved in GA4.
The errors that show up most often in audit results all originate the same way:
- A medium that matches no channel definition —
utm_medium=adsorsocialinstead ofcpcorpaid_socialsends the session to Unassigned. - Casing and spelling drift —
Facebookin one campaign andfacebookin another creates two dimension values in GA4 that can never be merged. - Partial tagging — a
utm_sourcewith noutm_mediumstops GA4 falling back to the referrer, which is worse than sending no parameters at all. - No preview before launch — the classification is only visible after traffic arrives, by which point the sessions are already filed wrong.
UTM Buddy is a UTM generator and UTM builder for GA4 built to catch those problems before a link goes out the door:
- GA4 attribution preview — see the exact default channel group a URL will land in before you publish it.
- Spell check and validation — flags misspellings and casing drift that would create permanent duplicate dimension values.
- Saved parameter templates — lock source and medium per platform so every campaign inherits the same convention.
- Bulk URL builder — generate dozens of correctly structured campaign URLs from one template.
- Team workspaces — hold naming conventions steady across brands, clients, and contributors.
- All nine UTM parameters — including
utm_id,utm_source_platform,utm_marketing_tactic, andutm_creative_format.
Newer ad platforms raise the stakes, because several ship with no auto-tagging at all — OpenAI Ads is one of them, where an untagged campaign reports as organic AI referral traffic rather than paid.
Audit to find out what is already broken. Tag correctly so the next audit has less to find.
Frequently Asked Questions
A UTM audit reviews seven diagnostic areas: untagged ad traffic, Unassigned traffic, Google Ads campaign misattribution, UTM syntax errors, UTM pollution, untagged email traffic, and parameter utilization across all nine UTM parameters. Each area maps to a specific way campaign tracking breaks between the click and the GA4 report.
Quarterly is the right cadence for most teams. Run the audit at the start of each quarter before reviewing the prior period's attribution data. Teams running dozens of campaigns per week benefit from monthly audits, particularly on the untagged ad traffic and syntax error diagnostics where new issues compound quickly.
No. Source, medium, and campaign values are written at collection time and GA4 does not reprocess historical sessions. A misspelled source stays in your property permanently as its own dimension value. Custom channel groups can reclassify sessions into different channels retroactively, but they cannot correct the underlying parameter values.
Usually because the click arrived without UTM parameters and GA4 fell back to the referrer. A Facebook ad clicked without tagging arrives as facebook.com / referral and lands in Organic Social. Broken auto-tagging produces the same result on Google Ads, where sessions report (organic) as the campaign name.
No. The audit reads data already collected in your GA4 property through the standard reporting interface or a connected Looker Studio report. Viewer access to the property is enough. No tag changes, code deployment, or data export is required.
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 →