Does it only show the standard UTM fields?
No. UTM Extractor shows the five core UTM fields and also lists the extra non-UTM query params, so the full tracking context stays visible.
Does this change the URL?
No. UTM Extractor is inspection-first and does not rewrite the link. Use a cleaner or builder tool if you want to change parameters.
Can I export the result?
Yes. You can copy the parsed UTM values as plain text or as JSON for documentation or for use in another tool.
Does it upload my URL to a server?
No. UTM Extractor runs entirely in your browser. The link you paste is parsed locally on your device and never uploaded.
Is it free?
Yes. UTM Extractor is free to use with no account and no upload required.
Why is my utm_id listed under extra parameters instead of with the UTMs?
The tool matches five keys exactly: utm_source, utm_medium, utm_campaign, utm_term, utm_content. utm_id is a real GA4 campaign field but it is not in that list, so it is grouped with the other non-UTM query params. The value is still shown in full, it just sits in the extras block.
My campaign shows as 'spring sale' but I wrote 'spring+sale'. Which is right?
Both, depending on who is reading. In a query string, a plus is the legacy encoding for a space, so the tool decodes it that way and shows 'spring sale'. Most analytics back ends do the same. If you need a literal plus in a campaign name, encode it as %2B, otherwise it will keep turning into a space everywhere.
Can I paste a shortened link and see the UTMs?
No. A short link like a bit.ly URL carries no query string of its own, so the tool reports a host and a path and no UTMs. The tags live on the destination that the shortener redirects to. Expand the link first, then paste the expanded URL.
Does the URL get sent to a server?
No. Parsing runs in your browser with the built-in URL API, and the copy and download buttons write from memory. Nothing about the link, including any session token or email address hiding in a query param, leaves the tab.
What extra information does the JSON export carry over the text summary?
The JSON includes the origin, path, fragment, duplicate keys, empty-value keys, and bare keys, plus every parameter in its original order with four booleans: hasValue, repeated, utm, and tracking. The text summary is the five UTM rows and the extras list. Use JSON when you are feeding a script, text when you are pasting into a ticket.
The fragment says '(none)'. Should there be something there?
Usually not. The fragment is the part after a # and it is never sent to the server, so it cannot carry campaign data to analytics. An empty fragment on a campaign link is the normal case.