Paste an HTTP or HTTPS URL to see its host, path, fragment and every query value. Fill source, medium, campaign, term and content to build the campaign link, empty a field to drop that tag, and copy or download the result without visiting the destination.
Runs locally in your browserThe workbench reads one absolute HTTP or HTTPS URL as text and answers with the parts it is made of: protocol, host, path, fragment and every query parameter with its value. The five classic campaign tags — utm_source, utm_medium, utm_campaign, utm_term and utm_content — can then be added, replaced or dropped, and the result is offered as a normalized link to copy or download.
Nothing is requested. In a measured session no request left the page except the site's own analytics, which is why a link that is not public yet, an internal staging address or a link with embedded credentials can be inspected as it is. The workbench reports what the URL says, not what the server would answer.
The breakdown is built by the browser's own URL parser, so the values are the ones a browser would use: the scheme and host are lower-cased, a space inside a path or a value becomes %20, a non-ASCII host appears in its punycode form (例え.jp becomes xn--r8jz45g.jp), and a trailing # with nothing behind it disappears. A ? that ends a URL with no parameter after it is kept.
Every parameter is listed with its value in the order it appears, and a name that appears twice stays in the URL twice and is reported as a duplicate. When a link carries more parameters than the list holds, the report says how many of how many are shown, and the normalized URL beside it keeps all of them.
Only the five utm_ names answer to the tag fields. Every other parameter is copied through untouched, including ref, gclid and any name a site uses of its own, and a parameter whose name differs only in case — UTM_SOURCE next to utm_source — counts as a different parameter to the browser. A tag that is already present is overwritten rather than added twice.
A tag that came from the URL is shown in its field so it can be edited. A value you have typed keeps its place when the next URL is inspected, which is how the same campaign link is built for several destinations; emptying the field removes that tag from the URL. Clear empties the URL field and all five tags at once.
It never requests the address. A host that does not resolve, a page that answers 404, a redirect chain and an expired certificate all look exactly like a working link here, because no connection is made; checking that a link still works is a different job.
A URL nobody edits is printed back exactly as it was written, percent-encoding included. As soon as a campaign tag is written, the browser rewrites the whole query in the form-encoded style, so a space stored as %20 becomes +, a / inside a value becomes %2F and an = inside a value becomes %3D — the same values read back by any standard parser. The field expects an absolute HTTP or HTTPS address: a relative path, a mailto: link and an ftp:// URL are refused with a message, and a missing scheme is not guessed. One URL is handled at a time.