Build clean UTM links that GA4 can actually attribute
UTM parameters are short tags added to a link — utm_source, utm_medium, utm_campaign and friends — that tell Google Analytics 4 and other analytics tools exactly where a visitor came from. The UTM Builder appends them correctly to any URL, keeps existing query strings and #fragments intact, normalises capitals and spaces, and warns when a value will land in GA4’s “Unassigned” channel.
Presets fill in the right source/medium pairs for Google Ads, Facebook, Instagram, LinkedIn, X, newsletters, WhatsApp, YouTube, affiliates and printed QR codes. A bulk mode tags many URLs at once, and a history keeps your recent links in this browser so a team member’s “which link did we use?” has an answer. Nothing is sent to a server.
How to use the UTM Builder
- Paste the website URL you want people to land on (or switch to Bulk and paste one URL per line).
- Click a preset such as “Newsletter” or “Google Ads”, or type your own utm_source and utm_medium.
- Name the utm_campaign, and add utm_term, utm_content or utm_id if you need them.
- Check the warnings — they catch missing required fields, capital letters and mediums GA4 won’t recognise.
- Press Copy URL, save it to your history, or copy it into the QR Code Generator for print campaigns.
UTM Builder features
Correct URL handling
Parameters are inserted before any #fragment, existing query strings are preserved, old utm_ values are replaced and all values are percent-encoded.
GA4 channel checks
Warns when utm_medium is not one GA4 maps to a default channel group, so you don’t discover “Unassigned” traffic a month later.
Consistency rules
Lowercases values and replaces spaces with underscores by default, because GA4 treats “Email” and “email” as two sources.
Eleven presets
One click fills source and medium for the most common channels, including offline/QR for printed materials.
Bulk mode and CSV
Tag a whole list of landing pages with the same campaign and download original/tagged pairs as CSV.
Link history
Saves up to 50 links on this device so you can copy them again later.
What each UTM parameter means
| Parameter | Meaning | Examples |
|---|---|---|
| utm_source | Where the traffic comes from (the referrer) | google, facebook, newsletter, partner_name |
| utm_medium | The type of channel | cpc, email, social, paid_social, display, affiliate |
| utm_campaign | The promotion, product or launch | spring_sale_2026, black_friday, webinar_may |
| utm_term | Paid search keyword (optional) | running+shoes |
| utm_content | Which ad or link in the same campaign (optional) | hero_button, footer_link, variant_b |
| utm_id | Campaign ID used to join imported cost data in GA4 (optional) | cmp_1042 |
How GA4 turns UTMs into channels
GA4 reads utm_source and utm_medium and sorts each session into a default channel group using fixed rules. For example, a medium of cpc, ppc or paid from a search-engine source becomes Paid Search; email becomes Email; social or social-media from a social network becomes Organic Social, while paid_social becomes Paid Social; affiliate becomes Affiliates; display, banner or cpm become Display; and sms or push map to their own groups. Anything GA4 can’t match — a medium like mailing or blast — ends up as Unassigned, which is why this builder flags unfamiliar mediums.
Matching is case-sensitive, so keep everything lowercase and agree a naming convention with your team. For Google Ads, leave auto-tagging on and don’t add manual UTMs to the same ads: the gclid parameter carries richer data, and manual tags override it unless you allow it in GA4’s settings.
Tips for reliable campaign tracking
- Never put UTM tags on internal links on your own site — a click would start a new session and wipe the original source.
- Keep a shared spreadsheet or use the history here so the same campaign isn’t spelled three different ways.
- Shorten long tagged links for social posts and SMS; the UTM data survives a redirect.
- For printed material, generate a QR code from the tagged link so offline scans show up as
utm_medium=offlineorqr. - Test the link once: open it, then check the Realtime report in GA4 to confirm the source and medium appear as expected.
UTM Builder FAQ
What is a UTM builder?
A UTM builder is a form that adds Urchin Tracking Module parameters — utm_source, utm_medium, utm_campaign and optionally utm_term, utm_content and utm_id — to a URL so analytics tools can report where visitors came from. This one also validates the values for GA4.
Which UTM parameters are required?
GA4 needs utm_source and utm_medium to attribute a session, and utm_campaign to group it under a campaign name. utm_term, utm_content and utm_id are optional.
Should UTM values be lowercase?
Yes. GA4 is case-sensitive, so “Facebook” and “facebook” are reported as two different sources. The builder lowercases values and swaps spaces for underscores by default; you can switch either off.
Do I need UTMs for Google Ads?
Usually not. Google Ads auto-tagging adds a gclid parameter that gives GA4 more detail than manual tags. Use UTMs for everything you can’t auto-tag: email, social posts, partner sites, QR codes and other ad networks.
Why does my traffic show as “Unassigned” in GA4?
Because the utm_medium (or source/medium pair) doesn’t match GA4’s default channel definitions. Use standard mediums such as cpc, email, social, paid_social, display, affiliate or referral, or create a custom channel group in GA4.
Are my links stored anywhere?
Only in your own browser if you press “Save to history”. Nothing is uploaded, and “Clear history” removes the saved list.