Build trackable campaign links for Google Analytics — fill in where the click comes from, and this tool assembles a clean UTM-tagged URL you can paste into ads, emails, social posts and QR codes. Live preview, one-click copy, and it works in reverse too: paste an existing tagged link and it breaks back into its fields. Free, no sign-up, all in your browser.
Fill in the website URL and the three starred fields — the tagged URL builds itself as you type.
The Five Parameters, Explained
| Parameter | Answers | Examples |
|---|---|---|
utm_source * | Who is sending the traffic? | google, facebook, newsletter, partner_blog |
utm_medium * | What kind of link is it? | cpc (paid ads), social, email, banner, qr |
utm_campaign * | Which promotion is this? | black_friday_sale, product_launch |
utm_term | Which keyword? (paid search) | The exact keyword the ad bid on |
utm_content | Which version of the link? | header_button vs footer_text_link |
* The three starred fields are the standard minimum. A link with only some of them still works, but reports get patchy — Analytics groups traffic by exactly these values.
Naming Rules That Keep Reports Clean
Lowercase, always. Analytics is case-sensitive: Facebook, facebook and FACEBOOK appear as three different sources and split your numbers. This tool lowercases for you by default.
Underscores between words. black_friday_sale, not "Black Friday Sale". Spaces get encoded as %20, which works but is unreadable in reports and breaks when copied carelessly.
One name per thing, forever. Decide that your email tool is newsletter (or mailchimp) and never improvise a variant next month. Consistency is what makes month-to-month comparisons possible.
Medium describes the channel, campaign describes the push. If every sale email uses medium email and only the campaign name changes, you can compare campaigns cleanly — that separation is the whole point.
Where the Data Shows Up
In GA4, tagged traffic appears under Reports → Acquisition → Traffic acquisition, grouped by session source, session medium and session campaign — the exact three values from this form. Give a campaign a few clicks and a day to settle before judging it, and compare like with like: same medium, same naming style. If you are planning the keywords a campaign should target before you tag its links, the Keyword Combiner builds that list; for cleaning a list of links you already have, the URL Extractor pulls them out of any document. More in the Marketing guides hub.
Frequently Asked Questions
Is this UTM builder free? Are my links stored anywhere?
Free, no sign-up, no limits — and private. Links are built in your browser; nothing is uploaded, logged or saved. Close the tab and the fields are gone.
Do UTM parameters affect SEO or break the page?
No. The page loads identically — everything after the "?" is tracking information that servers and browsers pass along harmlessly. Search engines treat the untagged URL as the canonical page.
What if my website URL already has a "?" in it?
That is fine — the tool detects the existing query string and adds UTM parameters with "&" instead of a second "?". Any existing non-UTM parameters (like a product filter) are kept, in front.
What if my URL already has UTM parameters?
With "Replace" ticked (the default), old UTM values are removed and the new ones take their place — one clean set. Untick it only if you deliberately want both sets, which almost nobody does.
Can I paste a link I built earlier and edit it?
Yes — that is what the box at the top does. Paste the full tagged URL, click "Break Into Fields", and the base URL and each UTM value land in their own fields, ready to adjust and rebuild.
Should I shorten the tagged URL?
For print, QR codes and spoken links, often yes — but shorten after tagging, using any link shortener. The UTM values survive shortening untouched, because they are part of what the short link redirects to.
Why does my report show (not set) or direct traffic for a campaign?
Usually one of three causes: the link was shared without its parameters (some apps strip them), the campaign used different naming than you are filtering by (check case — Facebook vs facebook), or the click came through a redirect that dropped the query string. The fix is almost always consistent naming, which is what the presets and lowercase default are for.
Thanks for reading! UTM Link Builder you can check out on google.
