UTM Builder
Add campaign tags to any link so Google Analytics can tell you where a visit actually came from. Everything is encoded correctly, and nothing you type leaves your browser.
Build your campaign link
URL, source, medium and campaign are required.
Your campaign URL
Generated in your browser as an SVG — sharp at any print size, and the URL is never sent anywhere.
What each parameter does
utm_source
The specific place the traffic came from — the individual site, publication or list. This is the one parameter Google Analytics genuinely needs. google · newsletter · linkedin · partner-blog
utm_medium
The type of channel, not the individual site. GA4 uses this to sort traffic into its default channel groups, so unusual values end up in "Unassigned". email · cpc · organic_social · referral · affiliate
utm_campaign
The campaign these links belong to. Every link in one campaign must use the identical value or your reporting splits in two. spring-launch-2026 · black-friday · webinar-may
utm_term
The paid keyword that triggered the ad. Mostly relevant to search advertising; Google Ads fills this in automatically when auto-tagging is on. digital+marketing+consultant
utm_content
Separates two links that are otherwise identical. Use it to tell apart the header and footer button in the same email, or two creatives in the same ad set. header-button · variant-a · image-1
Example use cases
Email newsletter
source newsletter, medium email, campaign march-update, content hero-cta. The content value lets you see whether the top button or the sign-off link did the work.
Instagram bio link
source instagram, medium organic_social, campaign bio-link. Without this, Instagram traffic frequently arrives as direct because the in-app browser strips the referrer.
Printed flyer or poster
source flyer, medium qr, campaign store-opening. Generate the QR from the tagged URL above and offline becomes measurable.
Meta Ads
source facebook, medium cpc, campaign matching your ad set name. Meta can populate these dynamically with URL parameters, which avoids the naming drift that comes from typing them by hand.
How it works
- Paste the page you want people to land on. A bare domain is fine —
example.combecomeshttps://example.com. - Fill in source, medium and campaign. These three are what Google Analytics needs; term and content are optional.
- Watch the preview build as you type. Spaces, ampersands and accented characters are percent-encoded for you, so the link never breaks when it is pasted into an email or an ad.
- Copy the finished URL, or download the QR code if the link is going onto something printed.
Why this matters
Without campaign tags, most of your traffic lands in Google Analytics as direct or referral — which tells you nothing about which post, email or ad actually worked. UTM parameters are the only way GA4 can attribute a visit to a specific campaign you ran.
The usual failure is not missing tags, it is inconsistent ones. Facebook, facebook and FB are three different sources in your reports, and they will split one campaign across three rows. Pick a convention — lower case, hyphens instead of spaces — and stick to it. This tool lower-cases source and medium for you by default for exactly that reason.
The second failure is hand-built links. A campaign name with a space or an ampersand in it will silently truncate the URL, and you will lose the data without ever seeing an error. Encoding it properly is the whole point of using a builder.
Questions
Which UTM parameters are actually required?
Google Analytics needs utm_source at minimum, and in practice you want utm_medium and utm_campaign too. Those three answer "where from, what kind of channel, which campaign". utm_term and utm_content are optional extras for paid keywords and A/B variants.
Should I put UTM tags on links between my own pages?
No. An internal link with UTM parameters starts a brand new session in GA4 and overwrites the original source, so a visitor who arrived from Google gets re-attributed to your own newsletter. Only tag links that arrive from outside your site.
Do UTM parameters hurt SEO?
Not if the page has a self-referencing canonical tag, which it should anyway. The canonical tells Google that /page/?utm_source=x and /page/ are the same page, so ranking signals stay together. You can generate one with the canonical tag generator.
Is my data sent anywhere?
No. The URL is assembled in JavaScript in your browser, and so is the QR code. Nothing is uploaded, logged or stored.
How does the QR code work without an API?
The QR code is generated in your browser by a small encoder written for this site — Reed-Solomon error correction, mask selection and all. It produces an SVG, so it stays sharp at any print size. No image service is involved and the URL never leaves the page.