Free tool

UTM audit, in your browser

Paste your campaign URLs — or drop in a whole CSV export — and get an instant tagging audit: typo'd parameters, case splits, source synonyms, and mediums GA4 will bucket as Unassigned. The links never leave your machine.

Runs entirely in your browser — nothing is uploaded.

What the audit checks

UTM chaos is the most universal tracking debt there is — every agency inherits a link set where Facebook, facebook, and fb are three different sources. These are the checks the tool runs across your whole set at once, which is exactly what eyeballing a spreadsheet can't do.

Misspelled and miscased keys

utm_sorce, UTM_Source, utm-source — GA4 reads none of them. The attribution silently lands in direct/none.

UTMs after the # fragment

Parameters behind the fragment never reach analytics. Common on SPA links and copy-pasted app URLs.

Case splits

Facebook vs facebook are two different rows in every GA4 report. The tool finds every value that splits by casing.

Source synonyms

fb / facebook / meta as three utm_source values means every “top sources” view undercounts all three.

Mediums GA4 won’t map

utm_medium values outside the channel-grouping vocabulary land sessions in “Unassigned” — including platform names that belong in source.

Missing source/medium pairs

Tagged links without the minimum viable pair fall back to inference — usually somewhere you didn’t intend.

Duplicates and empty values

utm_source twice in one URL is tool-dependent attribution; utm_source= empty overwrites a good inferred value with (not set).

Coverage and hygiene

Untagged share, missing campaign names, spaces in values — the info layer that keeps the convention honest.

What it deliberately doesn't check

A link list describes intent, not behaviour. This tool proves your tagging is consistent; it can't prove the tagged sessions actually arrive attributed — redirects strip parameters, consent banners delay page_view, and platforms rewrite links in ways no static audit sees. That verification layer is the GA4 audit checklist and the verification-first discipline. And clean values matter most where they get joined: dirty utm_source is what breaks every cross-platform report in the BigQuery spend warehouse.

If you manage links for many clients, the convention is the real asset — and conventions live or die by being attached to the infrastructure they govern. That's the job of the tracking infrastructure map: every property, pixel, and naming convention modeled per client, with a verification cadence.

Frequently asked questions

Are my URLs uploaded anywhere?
No. The paste or CSV is parsed and audited entirely in your browser with client-side JavaScript — there is no upload endpoint. The analytics event we record carries counts only (how many URLs, how many findings), never URL content. Refresh and the result is gone.
What can I paste?
Almost anything: one URL per line, a comma-separated list, a CSV/TSV export from an ad platform or spreadsheet, even prose containing links. The tool extracts everything that starts with http:// or https:// (up to 5,000 unique URLs per run) and audits the UTM tagging across the whole set.
Why does case matter in UTM parameters?
GA4 treats both keys and values as case-sensitive. UTM_Source is not utm_source (the parameter is ignored entirely), and Facebook is not facebook (the reports split into two rows). The fix is a written convention: lowercase keys, lowercase values, one spelling per platform.
What makes a utm_medium “unmapped”?
GA4’s default channel grouping assigns sessions to channels by matching utm_medium against a documented vocabulary (cpc, email, social, referral, display and friends). A medium outside that vocabulary — including platform names like “facebook”, which belong in utm_source — lands the session in the Unassigned channel, where it’s invisible to every channel report.
Keep every client's tracking consistent

14 days free · No credit card · Starter tier free forever