A UTM builder adds tracking tags to a link so Google Analytics 4 can tell you exactly which campaign, platform and ad sent each visitor. Enter your page URL and three values (source, medium and campaign name) and the tool builds the tagged link for you.
Loading the tool…
How to use the UTM builder
- Paste the page you want people to land on into Website URL. Any existing query string or #anchor is kept.
- Fill in source (where the click comes from, such as
facebook), medium (the type of traffic, such aspaid_social) and campaign name. - Add term or content only if you need them: term for a paid keyword, content to tell two ads or links apart.
- Copy the finished link and use it in your ad, email or post. Click Open link to check the page loads.
What each UTM parameter means
| Parameter | What it records | Example |
|---|---|---|
utm_source |
The site or platform that sent the visit | google, facebook, newsletter |
utm_medium |
The type of traffic | cpc, paid_social, email |
utm_campaign |
The campaign or promotion | spring_sale_2026 |
utm_id |
A campaign ID, used when importing cost data into GA4 | sp26 |
utm_term |
The paid keyword | running_shoes |
utm_content |
The ad, creative or link variant | video_a, header_link |
Naming rules that keep GA4 reports clean
GA4 treats Facebook, facebook and fb as three different sources, so a messy naming habit splits one campaign into several rows. A few rules prevent that:
- Use lowercase everywhere. The tool does this for you by default.
- Use underscores instead of spaces.
- Pick one word for each platform and medium and write it down in a shared sheet.
- Use the mediums GA4 recognises for its default channel groups, such as
cpc,paid_social,email,social,display,affiliateandreferral. A made-up medium lands in “Unassigned”. - Never put UTM tags on links between pages of your own site. They start a new session and overwrite the original source.
Example: a shop runs the same spring sale on Facebook, tagging one ad utm_source=Facebook and another utm_source=fb. GA4 reports them as two different sources, so the campaign’s results are split across two rows and each looks smaller than the real total. Agreeing that the only value is facebook, and writing it in a shared naming sheet, fixes it from the next click onwards. Earlier data stays split, so add both rows together when you compare periods.
Worked example
Say you’re running a Meta ad for a spring sale, with two creatives. Your landing page is https://example.com/sale.
- Source:
facebook - Medium:
paid_social - Campaign:
spring_sale_2026 - Content:
video_afor one ad andcarousel_bfor the other
The link for the first ad becomes:https://example.com/sale?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale_2026&utm_content=video_a
In GA4, open Reports › Acquisition › Traffic acquisition and change the primary dimension to Session campaign or Session manual ad content to compare the two ads.
Frequently asked questions
Do I need UTM tags on Google Ads links?
Usually not. If your Google Ads account is linked to GA4 with auto-tagging on, the gclid parameter already passes campaign data. Adding manual UTMs on top can overwrite it.
Are UTM parameters bad for SEO?
No, as long as you only use them on links in ads, emails and social posts. Don’t add them to internal links or links you want search engines to index.
Is utm_id required?
No. It’s only needed if you import cost or campaign data into GA4 and need a key to match it.
Why does my campaign show as (not set) in GA4?
Most often the link lost its parameters through a redirect, or the medium wasn’t one GA4 recognises. Open the tagged link yourself and check the parameters are still in the address bar when the page loads.
Is this UTM builder free?
Yes. It’s free, works in your browser and doesn’t store the links you build.
Sources
- Google Analytics Help: URL builders, collect campaign data with custom URLs
- Google Analytics Help: Default channel group
Last updated: