About the UTM Builder
The UTM Builder adds campaign tags to a link so your analytics can tell where visitors came from. Enter the page URL, the source, the medium and the campaign name, and copy the tagged link, ready for an email, a post or an ad.
UTM parameters work with Google Analytics 4 and almost every other analytics tool. Use them on links you control outside your own site: emails and newsletters, social posts, ads on platforms without automatic tagging, QR codes on print, partner and affiliate links, and podcast or video descriptions.
Besides the link itself, the tool predicts which GA4 default channel the visits will most likely be grouped under, keeps values consistent with lowercase and space handling, tags a whole list of links at once, and can keep a history of your links on this device. Nothing is sent to a server.
How to use it
- Paste the page URLThe address people should land on. If you leave out https://, the tool adds it. Existing query parameters and #anchors are kept.
- Fill in source, medium and campaignSource is who sends the visit (newsletter, facebook), medium is how (email, social, cpc), and campaign is why (spring_sale_2026). The buttons fill in common values.
- Add optional detailsTerm for paid keywords, Content to tell two links in the same message apart, and Campaign ID if you match campaigns with data from elsewhere.
- Check the channel noteThe note under the link names the GA4 channel these visits will most likely land in, or warns that they may show up as Unassigned.
- Copy, open or saveCopy the link, open it to test, or save it to the history on this device and download the history as CSV later.
Key features
All six UTM parameters
utm_source, utm_medium, utm_campaign, utm_term, utm_content and utm_id, in that order.
GA4 channel prediction
Follows the order of Google's manual traffic rules for the default channel group, from Paid Search and Display to Email, Affiliates, SMS and AI Assistant.
Consistent values
Lowercase everything and turn spaces into underscores, hyphens or %20, so "Spring Sale" and "spring_sale" do not split your reports.
Safe with existing parameters
Other query parameters stay; old utm_ values are replaced instead of being added twice.
Bulk tagging
Paste a list of page URLs and get each one back with the same tags, or "invalid" for lines that are not web addresses.
Private history
Up to 50 saved links in your browser's storage, with a CSV download. No account, nothing on our servers.
Examples
Where will the visits land in GA4?
| Source | Medium | Likely channel |
|---|---|---|
| newsletter | ||
| cpc | Paid Search | |
| paid_social | Paid Social | |
| cpc | Paid Social | |
| social | Organic Social | |
| youtube | video | Organic Video |
| partner_site | affiliate | Affiliates |
| newsletter | referral | Referral |
| flyer | qr | Unassigned |
GA4 checks its rules in a fixed order, so the source can matter more than you expect. With source google and medium email, the visits most likely count as Organic Search, because the search-engine rule comes before the Email rule. A campaign name with "shop" or "shopping" in it, like shop_the_look with medium cpc, moves paid traffic to Paid Shopping.
Messy input, clean link
With "Lowercase all values" on and "Spaces become -", the URL example.com/spring-sale?ref=home&utm_source=old#top, the default tags, term "ceramic mugs" and content "Header Button" give:
https://example.com/spring-sale?ref=home&utm_source=newsletter
&utm_medium=email&utm_campaign=spring-sale-2026
&utm_term=ceramic-mugs&utm_content=header-button#top
(One line in the real output.) https:// was added, ref=home was kept, the old utm_source was replaced, the #top anchor stayed at the very end, and "Header Button" became header-button.
Tagging a list
Paste these lines into "Tag many links at once":
https://example.com/a
example.com/b?x=1
not a url
The first two come back tagged (the second keeps x=1 in front of the UTM tags), and the third comes back as invalid: not a url.
Tips
- Write down a naming scheme and stick to it: always "facebook", never "Facebook" in one link and "fb" in the next. GA4 treats each spelling as a different source.
- Use utm_content to compare two links in the same email or post, such as header_button and footer_link.
- Never put UTM tags on links inside your own site. They replace the visitor's real source with your campaign, which skews your reports.
- For Google Ads, turn on auto-tagging and let Google pass the click details; use UTM tags for the platforms that do not do this for you.
- Long tagged links look untidy in print. Put them in a QR code with the QR Code Generator, or shorten them with a link shortener you trust.
Common mistakes and limits
- Inventing a mediumGA4 sorts visits into channels mainly by medium. Unusual values like "qr" or "print" end up as Unassigned. Use email, social, cpc, display, affiliate or referral where they fit, and put the detail in source or campaign.
- Mixing upper and lower caseutm_source=Newsletter and utm_source=newsletter are two rows in your reports. Keep "Lowercase all values" on.
- Tagging internal linksA banner on your home page that links to /sale with UTM tags makes those visits look like they came from a campaign, not from the person's real source.
- Putting personal data in tagsNever add email addresses, names or customer IDs to UTM values. They end up in analytics, server logs and browser histories.
- Expecting UTM tags to track ads automaticallyThey only describe the click. You still need analytics on the landing page, and ad platforms with auto-tagging may already send better data.