What are UTM parameters?
UTM parameters are short tags added to the end of a link that tell your analytics tool where a visitor came from. When someone clicks example.com/pricing?utm_source=newsletter&utm_medium=email, Google Analytics records the visit as coming from your newsletter, by email, instead of lumping it in with "direct" or "referral" traffic.
They work with Google Analytics 4, Adobe Analytics, Matomo, HubSpot, Plausible and almost every other analytics platform. The page itself ignores them, so visitors see exactly the same content.
| Parameter | What it answers | Example |
|---|---|---|
utm_source Required | Which site, platform or list sent the visitor? | google, newsletter, facebook |
utm_medium Required | What type of traffic is it? | cpc, email, paid_social |
utm_campaign Required | Which campaign or promotion? | spring_sale_2026 |
utm_id | Which campaign ID? Used to join cost data imported into GA4. | q2_042 |
utm_term | Which keyword or audience? | running_shoes |
utm_content | Which ad, link or version was clicked? | hero_button, video_a |
How to use this UTM builder
- Paste the landing page URL. Any existing query parameters, like
?ref=partner, are kept. If you leave outhttps://, it's added for you. - Pick a quick-fill preset such as Google Ads or Newsletter, or type your own source and medium.
- Name the campaign. Values are converted to lowercase and spaces become underscores by default, which keeps your reports tidy.
- Check the GA4 channel badge. It shows which default channel Google Analytics 4 will most likely assign the traffic to. If it says "Unassigned", change the medium.
- Copy the URL, or use Test link to open it and confirm the page loads with the parameters intact.
Need many links at once? The Bulk tab combines a list of pages with a list of sources and exports everything as a CSV. To check a link someone else built, paste it into the Parse URL tab to see every parameter, any problems, and a clean copy without tracking.
Example: tagging a newsletter link
Say your May newsletter links to a pricing page, and there are two links: a button at the top and a text link at the bottom. Tagging them separately with utm_content shows which one gets more clicks:
utm_source=newsletter · utm_medium=email · utm_campaign=may_2026_update
Button: …/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=may_2026_update&utm_content=top_button
Link: …/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=may_2026_update&utm_content=footer_link
In GA4, both appear under the Email channel, grouped by the campaign may_2026_update. Add "Session manual ad content" as a secondary dimension to compare the button and the link.
UTM naming conventions that keep reports clean
Analytics tools treat every different spelling as a separate value. Facebook, facebook and fb become three rows in your report, splitting the numbers you actually want to see. A few simple rules prevent this:
- Always use lowercase. This builder does it for you unless you switch it off.
- Use underscores or hyphens, never spaces. Spaces turn into
+or%20and are awkward to filter. - Keep a fixed list of sources and mediums. Decide once whether it's
facebookormeta, and whether paid social ispaid_socialorcpc, then stick to it. - Use a pattern for campaign names, such as
year_quarter_product_offer:2026_q2_pro_plan_trial. Patterns sort nicely and can be filtered with "contains". - Write the rules down. A shared spreadsheet with approved values stops each person on the team from inventing their own.
How GA4 assigns channels from your UTM tags
Google Analytics 4 sorts traffic into default channel groups, like Paid Search or Email, mainly by looking at utm_source and utm_medium. If the combination doesn't match any rule, the traffic lands in Unassigned, which makes it easy to overlook. These combinations match common channels:
| Source | Medium | GA4 default channel |
|---|---|---|
google, bing | cpc, ppc, paid_search | Paid Search |
facebook, instagram, linkedin, tiktok | paid_social, cpc | Paid Social |
youtube, vimeo | cpc, paid_video | Paid Video |
| Any | display, banner, cpm | Display |
facebook, linkedin, x | social, social-media | Organic Social |
| Any | email | |
| Any | affiliate | Affiliates |
| Any | referral | Referral |
| Any | sms | SMS |
The order of the rules matters. For example, google with the medium cpm counts as Paid Search, because "cpm" contains "cp" and the Paid Search rule is checked before Display. The badge in this tool follows the same order, using the most common source names. For the complete lists, see Google's default channel group documentation.
Channel rules last checked against Google's documentation in September 2026.
Common UTM mistakes to avoid
- Tagging internal links. Adding UTMs to links between pages on your own site overwrites how the visitor originally arrived, so sales get credited to your own website instead of the real channel. Use UTMs only on links that point to your site from elsewhere.
- Leaving out the medium. Without
utm_medium, GA4 can't assign a channel, and the traffic usually shows as Unassigned. - Overriding Google Ads auto-tagging. Google Ads adds a
gclidautomatically, and GA4 uses it to import detailed campaign data. Keep auto-tagging on. Manual UTMs on Google Ads are optional and should usegoogle/cpcso the two agree. - Putting UTMs after the #. In
example.com/#section?utm_source=x, analytics tools never see the parameters. They must come before the#. This tool puts them in the right place automatically. - Including personal information. Never put email addresses, names or phone numbers in UTM values. It breaks Google Analytics' terms and can expose customer data in shared reports.
- Not testing redirects. Some link shorteners, redirects and single-page apps drop query parameters. Click the final link once and check the parameters are still in the address bar.