Campaign traffic that shows up as direct is wasted budget, and it usually traces back to a hand typed link with a broken parameter. This utm builder assembles the link for you: enter the destination URL, fill in source, medium, and campaign, and the tracked URL appears below with every value encoded correctly. Marketers use it as a campaign url builder before every send, and as a utm link generator when a partner needs a tagged link they can't mangle. It applies the same five parameters as the google utm builder from the Analytics team, so GA4 parses the result with zero custom setup. Term and content fields are there when you split test creatives or track paid keywords.
Start with the full landing page address including https. The field is required, and if the URL can't be parsed, the tracked output stays empty until you fix it.
02
Fill in source, medium, and campaign
These three drive GA4 attribution. Follow the helper hints: google or newsletter for Source, cpc, email, or social for Medium, and a name like spring_promo for Campaign.
03
Copy the tracked URL
The output rebuilds live as you type, with spaces and special characters percent encoded. Add Term for paid keywords or Content to tell two ads apart, then hit copy.
Why UTM Builder
All fields tracked in Google Analytics / GA4.
Validates URL syntax, no broken links.
Encodes special characters correctly.
Common questions
Which UTM parameters does GA4 treat as required?
Technically only utm_source is required for attribution to register, but a link without utm_medium and utm_campaign produces reports you can't segment. Treat all three as mandatory, the way this form presents them, and leave term and content for when they earn their place.
What's the difference between utm_source and utm_medium?
Source is where the click came from, a specific site or platform like google, facebook, or your newsletter name. Medium is the channel type, like cpc, email, or social. GA4 groups traffic by the pair, so source=facebook with medium=cpc is paid social while medium=social is organic.
When should I fill in utm_term and utm_content?
Term traditionally holds the paid search keyword, and content distinguishes two creatives pointing at the same page, like banner_a versus banner_b. Both are optional in the tool and in GA4. Skip them unless you'll actually filter reports by them.
Does the utm builder encode spaces and special characters?
Yes, values pass through the browser's URL parser, so a campaign named spring sale 2026 becomes spring%20sale%202026 in the output. Encoding is the failure point of hand typed links; still, using underscores instead of spaces keeps reports cleaner.
Should UTM values always be lowercase?
Yes, because GA4 is case sensitive: Email, email, and EMAIL land in three separate rows of the same report. Pick lowercase for every value and write it into your tagging convention so nobody splits data by accident.
Can I put UTM parameters on internal links?
Don't. When a visitor clicks an internal link carrying utm_source, GA4 starts a new attribution touchpoint and you overwrite the campaign that actually brought them. Reserve UTM tagging for links that live outside your site: emails, ads, social posts, partner pages.
Is this utm parameter generator compatible with Google's Campaign URL Builder?
Fully. Both produce standard utm_ query parameters, and analytics platforms can't tell the outputs apart. The only differences are conveniences: this one validates the destination URL as you type and keeps everything in one compact form.
Why is the tracked URL box still empty?
The destination URL isn't parseable yet, usually because the protocol is missing. Type the address with https:// at the front and the output appears immediately along with whichever parameters you've filled in.