A UTM parser that audits tagged links before they cost you data
This UTM parser takes one tagged link or thousands — pasted, buried in any text, or picked from a CSV column — and splits each into utm_source, utm_medium, utm_campaign, utm_term, utm_content and utm_id, plus ad click IDs such as gclid, fbclid, msclkid and ttclid and every other parameter. Each link is checked for the mistakes that quietly break campaign reports, and you get a clean version with the tracking removed.
It is the mirror of the UTM Builder: the builder makes links, this tool audits the ones already out there — in a newsletter template, an ads spreadsheet, a partner’s brief or an export from a social scheduler. Everything runs in your browser, so client links and campaign plans stay on your device.
How to check UTM parameters
- Paste your links into the box, one per line — or any text, such as an email or a document; the URLs are found in it.
- For a spreadsheet, choose CSV column, paste the CSV (or press Open .csv or .txt) and check that Column with the URLs picked the right column.
- Read Tagging problems first: errors break tracking, warnings split or misfile data, notes are worth a look.
- Use Parameters by URL to see every value, and Source / medium to see how the links would be grouped in reports.
- Copy the Clean URLs, or press Download CSV for the full table.
UTM Parser features
Every tracking parameter, sorted
The six standard UTM tags get their own columns; GA4’s utm_source_platform, utm_creative_format and utm_marketing_tactic, 17 ad-platform click and linker IDs and common email-platform IDs are recognised and named.
Mistake detection
Missing source or medium, misspelt names (utm_souce), capitals in names, repeated parameters, “&” without “?”, a second “?”, tags after “#”, empty values, spaces, double encoding and broken % escapes.
Consistency across links
The same value written with different capitals in different links — “Facebook” and “facebook” — is flagged on every link involved, because reports count them separately.
Channel check
Mediums that Google Analytics 4’s default channel groups don’t recognise are flagged before the traffic lands in “Unassigned”.
Clean URLs
UTM tags are always removed; click IDs and email-platform IDs are removed too unless you untick them. Other parameters keep their original order.
CSV in and out
Comma, semicolon or tab-separated files with quoted cells; the URL column is detected automatically, and the export has one row per link with every value and issue.
Worked example: the sample links
Lines 1 and 2 tag the same newsletter, but one says utm_source=newsletter and the other Newsletter. The parser warns on both, and the Source / medium table shows them as two separate rows, exactly as a report would. Line 3 has no utm_medium — an error, because the visit can’t be given a channel — and a campaign written Spring+Sale, which decodes to “Spring Sale” with a space.
Line 4 is fine: source google, medium cpc, campaign wallets, a gclid from Google Ads and an ordinary color=brown parameter, which survives cleaning as https://shop.example.com/p/wallet?color=brown. Line 5 misspells utm_souce, so the source is effectively missing, and line 6 puts its tags after the #, where Google Analytics never sees them.
Tracking parameters it recognises
| Parameter | Set by | Meaning |
|---|---|---|
| utm_source, utm_medium, utm_campaign | You | Where the visit came from, the channel type and the campaign name |
| utm_term, utm_content, utm_id | You | Paid keyword, which link or ad was clicked, and a campaign ID for cost-data import |
| utm_source_platform, utm_creative_format, utm_marketing_tactic | You | Extra campaign dimensions in GA4 |
| gclid, gbraid, wbraid, dclid | Google Ads, Display & Video 360 | Click identifiers added by auto-tagging |
| fbclid, msclkid, ttclid, twclid, li_fat_id | Meta, Microsoft Advertising, TikTok, X, LinkedIn | Click identifiers added by each platform |
| mc_cid, mc_eid, _hsenc, _hsmi, mkt_tok, _kx | Mailchimp, HubSpot, Marketo, Klaviyo | Email campaign and subscriber identifiers |
Why clean URLs matter
- Share the clean version when you copy a link from an ad or newsletter, so other people’s visits aren’t credited to your campaign.
- Subscriber IDs such as
mc_eidand_hsenccan identify the person who received an email — strip them before posting a link publicly. - Canonical tags and internal links should point to clean URLs; tagged versions belong only where the traffic starts.
- To inspect other parts of a URL — host, path, port, fragment — use the URL Parser; to decode an escaped string, the URL Encoder.
UTM Parser FAQ
How do I check the UTM parameters in a URL?
Paste the URL into this UTM parser. Each tag appears in its own column, and problems such as a missing utm_medium, a misspelt parameter or tags after “#” are listed with the line they’re on.
Which UTM parameters are required?
Google Analytics needs utm_source and utm_medium to attribute a visit, and utm_campaign to group it under a campaign. utm_term, utm_content and utm_id are optional.
Are UTM parameters case-sensitive?
Yes, in two ways. The names must be lower case — UTM_SOURCE is not read — and values are reported exactly as written, so “Email” and “email” become two different mediums.
What are gclid, fbclid and msclkid?
Click identifiers that Google Ads, Meta and Microsoft Advertising add to links automatically. They let each platform match a visit to an ad click; they are not UTM tags and need no editing.
Why do my tagged visits show as “Unassigned”?
Usually the medium is missing, or isn’t one that GA4’s default channel groups recognise — “mailing” instead of “email”, for example. The parser flags both.
Is it safe to paste client links here?
Yes. Parsing happens in your browser, and nothing you paste or open is uploaded.