UTM Bench › UTM Parser
UTM Parameter Parser
Paste any tagged URL to see its parameters broken out and checked. Useful for auditing links somebody else built, or for working out why a campaign is reporting under an unexpected channel.
● Runs locally. What you paste never leaves this page.
Auditing links you did not build
Most tagging problems are discovered weeks late, when a report looks wrong and nobody can say why. Parsing the actual published links is the fastest route to the answer, because the link is the record of what was decided.
Paste several at once. Beyond checking each URL individually, the report compares them against each other and flags values that differ only by case or spacing, which is precisely the failure that fragments a campaign across several rows without producing any error.
What gets flagged
- Missing source, medium or campaign. Without medium, the visit will not be grouped into a channel and typically lands in "other".
- Capitals in any value, since matching is case sensitive.
- Spaces, which appear as
%20or+and read badly in reports. - Surrounding whitespace, usually from a copy and paste, which creates a value that looks identical to the correct one but is not.
- UTM parameters after the fragment. Anything after
#is not sent to the server and most analytics implementations ignore it, so the link is effectively untagged. - Inconsistency between the links you pasted, listed separately at the end.
Why a link can arrive untagged
If a campaign is reporting as direct or referral despite being tagged, the usual causes are, in order of frequency: a redirect that drops the query string, parameters placed after the fragment, an email client or link shortener rewriting the URL, or the analytics tag firing before the parameters are readable on a single-page application.
The redirect case is worth checking first. A link to
example.com/promo that redirects to
www.example.com/promo/ will usually preserve the query string, but
plenty of redirect rules are written in a way that discards it. Test the
published link end to end rather than the destination in isolation.
Decoding
Values are shown decoded, so spring%20launch is displayed as
spring launch. That is what analytics will record, and seeing the
decoded form makes an encoding mistake such as a double-encoded
%2520 obvious.
Questions
Why is my tagged campaign showing as direct traffic?
Most often a redirect stripped the query string, or the parameters were placed after the hash fragment where they are never sent to the server. Test the exact published link end to end rather than the destination URL.
Can I check several links at once?
Yes, paste one per line. Beyond checking each link, the report compares them and flags values differing only by case or spacing, which is the mistake that splits one campaign into several report rows.
Do UTM parameters work after a hash fragment?
Generally no. Anything after the hash is not sent to the server, and most analytics implementations do not read it. Put UTM parameters in the query string, before any fragment.
Are the URLs I paste sent anywhere?
No. Parsing happens in your browser using the standard URL interface, so campaign links, which often reveal unlaunched campaign names, stay on your machine.