What each UTM parameter means
- utm_source (required): who sent the traffic -- "google", "facebook", "newsletter".
- utm_medium (required): the marketing channel -- "cpc", "paid_social", "email", "organic".
- utm_campaign (required): the specific campaign name -- "spring_sale", "black_friday_2026".
- utm_term (optional): originally for the paid search keyword that triggered an ad.
- utm_content (optional): tells apart two links pointing at the same place, like two buttons in one email.
- utm_id (optional): links the URL to a specific campaign ID in some ad platforms.
Example: with source google, medium cpc and campaign spring_sale, https://example.com/spring-sale becomes:
https://example.com/spring-sale?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale
Existing query strings and #hash links are preserved
A UTM builder should never clobber a link's existing parameters or its #hash. Tagging a link that already has its own query string and hash, plus an optional term and content, gives:
https://example.com/shoes?color=red&utm_source=newsletter&utm_medium=email&utm_campaign=weekly_digest&utm_term=running-shoes&utm_content=header_link#reviews
GA4 notes
In GA4 (Google Analytics), tagged traffic appears under Reports → Acquisition → Traffic acquisition, grouped by session source/medium and session campaign. GA4 needs at least utm_source and utm_medium to attribute a session correctly -- without utm_campaign it still records the source/medium but groups the campaign as "(not set)." Keep casing and separators (dash vs. underscore) consistent across every link for the same campaign, since GA4 treats different casings as different values.
More marketing calculators
- CPM calculator: cost per 1,000 impressions for the campaigns you're tagging.
- CTR calculator: click-through rate once the tagged traffic starts arriving.
- ROAS calculator: return on ad spend and break-even ROAS for a campaign.
Frequently asked questions
What is a UTM parameter?
A UTM parameter is a small tag added to a URL's query string that tells your analytics tool where a visit came from. The three required ones are utm_source (who sent the traffic, e.g. "google"), utm_medium (the channel, e.g. "cpc") and utm_campaign (which specific campaign, e.g. "spring_sale"). Built on https://example.com/spring-sale?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale, that URL becomes https://example.com/spring-sale?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale.
What does UTM stand for?
"Urchin Tracking Module" -- named after Urchin, the web analytics company Google acquired in 2005 that became the basis for Google Analytics. The name stuck even though most people today just know it as "UTM parameters" or "UTM tags."
What are the 5 UTM parameters?
utm_source, utm_medium and utm_campaign are required in almost every setup. utm_term (originally for paid search keywords) and utm_content (to tell apart two links or ads pointing to the same place, like two buttons in the same email) are optional. A less common sixth, utm_id, ties a URL to a specific campaign ID in some platforms.
Does adding UTM parameters break my existing links?
No -- a UTM builder should only add its own utm_* parameters and leave everything else on the URL untouched. An existing query string and #hash are both preserved: https://example.com/shoes?color=red&utm_source=newsletter&utm_medium=email&utm_campaign=weekly_digest&utm_term=running-shoes&utm_content=header_link#reviews keeps its "color=red" parameter and "#reviews" hash exactly, alongside the new utm_ tags.
Should UTM values be lowercase?
It's strongly recommended, though not strictly required. Google Analytics (GA4) treats utm_source=Google and utm_source=google as two different values, which silently splits one campaign's traffic into two rows in your reports. Turn on the lowercase option above (or just type in lowercase) and stay consistent across every link for the same campaign.
Should I use dashes, underscores or spaces in UTM values?
Never leave literal spaces in a UTM value -- browsers percent-encode them as %20 or "+", which is hard to read in reports. Dashes (spring-sale) and underscores (spring_sale) both work; pick one convention and use it consistently so campaigns group correctly in your analytics tool.
How do I see UTM data in Google Analytics (GA4)?
In GA4, UTM-tagged traffic shows up under Reports > Acquisition > Traffic acquisition, grouped by "Session source/medium" and "Session campaign." GA4 needs at least utm_source and utm_medium to attribute a session correctly; without utm_campaign it will still show the source/medium but group the visit under "(not set)" for campaign.
Do I need UTM parameters for every link?
No -- add them to links you share OUTSIDE your own site where analytics can't otherwise tell the channel apart: social posts, email campaigns, ads, partner sites, QR codes, PDFs. Internal links on your own site don't need them, and clicks within your own domain will overwrite session-level UTM data if you tag them, which usually isn't what you want.
Why does my URL need to start with https://?
This builder requires a full, absolute https:// URL (not just "example.com" or a relative path) so the result is always a complete, shareable link and so the URL API used to build it can safely parse and preserve any existing query string or #hash.
Is my data saved or sent anywhere?
Your entries and your last 5 built URLs are saved only in your own browser (localStorage) so they are there next time. Nothing is sent to our servers. Use "Clear history" to remove the saved list at any time.