UTM Builder - Free UTM Link Generator for Campaign Tracking

Build UTM tracking URLs instantly with our free UTM builder. No sign-up needed, runs in your browser, keeps campaign data private. Tag links in seconds.

Campaign URL
Your tracking URL appears here…

Build a UTM tracking URL in seconds

Paste your destination URL, fill in a few fields, and this UTM builder hands you a ready-to-use campaign tracking link. No spreadsheets, no manual typing, no typos breaking your analytics.

Every link you create tells Google Analytics (or any compatible analytics platform) exactly where a click came from — which channel, which campaign, and even which ad or button. That means you stop guessing and start knowing what's actually driving traffic.

How to use the UTM builder

  1. Enter your destination URL — the page you want to send visitors to (e.g. https://example.com/pricing).
  2. Fill in Source — where the traffic is coming from (e.g. newsletter, google, linkedin).
  3. Fill in Medium — the marketing channel type (e.g. email, cpc, social).
  4. Fill in Campaign — a name for this specific campaign (e.g. summer-sale-2025).
  5. Optionally add Term and Content — useful for paid search keywords and A/B testing different ads.
  6. Copy your generated URL and use it anywhere you share a link — email, ads, social posts, QR codes.

What each UTM parameter does (quick reference)

Here is a real example URL and what each part means. This is the format every UTM link generator produces:

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=summer-sale-2025&utm_term=cloud+software&utm_content=header-cta
ParameterExample valueWhat it tells your analytics
utm_sourcenewsletterThe specific place sending the traffic (a publication, site, or app)
utm_mediumemailThe channel type — email, cpc, social, banner, etc.
utm_campaignsummer-sale-2025The campaign name so you can group all its traffic together
utm_termcloud+softwareThe paid keyword that triggered the ad (mostly for Google Ads)
utm_contentheader-ctaWhich version of an ad or link was clicked — great for A/B tests

Worked example: an email campaign link

Say you're sending a promotional email for a summer sale and linking to your pricing page. You want to know how many sign-ups come from that email specifically.

Your inputs:

  • URL: https://example.com/pricing
  • Source: mailchimp
  • Medium: email
  • Campaign: summer-sale-2025
  • Content: blue-button

Generated UTM URL:

https://example.com/pricing?utm_source=mailchimp&utm_medium=email&utm_campaign=summer-sale-2025&utm_content=blue-button

Drop that link into your email template. Inside Google Analytics, go to Acquisition → Traffic Acquisition and you'll see this campaign listed by name, showing sessions, conversions, and revenue — all tied to that one email.

How to build a UTM URL in code

Sometimes you need to generate campaign URLs programmatically — in a script, a CMS plugin, or an automation workflow. Here's how to do it properly in two common languages.

Python (uses the built-in urllib.parse module):

from urllib.parse import urlencode, urlparse, urlunparse

base_url = 'https://example.com/pricing'
params = {
    'utm_source': 'mailchimp',
    'utm_medium': 'email',
    'utm_campaign': 'summer-sale-2025',
    'utm_content': 'blue-button',
}

url_parts = list(urlparse(base_url))
url_parts[4] = urlencode(params)
tracking_url = urlunparse(url_parts)
print(tracking_url)
# https://example.com/pricing?utm_source=mailchimp&utm_medium=email&utm_campaign=summer-sale-2025&utm_content=blue-button

JavaScript (runs in Node.js or any modern browser):

const baseUrl = 'https://example.com/pricing';
const params = new URLSearchParams({
  utm_source: 'mailchimp',
  utm_medium: 'email',
  utm_campaign: 'summer-sale-2025',
  utm_content: 'blue-button',
});

const trackingUrl = `${baseUrl}?${params.toString()}`;
console.log(trackingUrl);
// https://example.com/pricing?utm_source=mailchimp&utm_medium=email&utm_campaign=summer-sale-2025&utm_content=blue-button

How it works

UTM parameters are plain query string values appended to any URL. When someone clicks your link, their browser sends the full URL — parameters included — to your destination page. Google Analytics (via the GA4 tracking script on the page) reads those values and logs them as the session's source, medium, and campaign dimensions.

The parameters don't change the page the visitor sees; they're invisible to visitors but fully visible to your analytics. Google's official guidance on UTM tracking is published in the Google Analytics campaign URL builder documentation.

When to use UTM parameters — and when to skip them

Use them when:

  • You're sharing links in emails, newsletters, or SMS — traffic from these often shows as 'direct' in analytics without UTM tags.
  • You're running paid ads on platforms that don't auto-tag (many social and display networks).
  • You want to compare two versions of a CTA button or ad creative (use utm_content for this).
  • You're sharing links in partner content, press releases, or influencer posts.

Skip them when:

  • Linking between pages on your own site — internal UTM links overwrite the original referral source and corrupt your data.
  • The ad platform already auto-tags clicks (Google Ads with auto-tagging on, for example — adding manual UTMs can conflict).
  • The URL will be indexed by search engines; UTM parameters can create duplicate-content issues if not handled with a canonical tag.

Tips for keeping your UTM data clean

  • Use lowercase everywhere. Analytics treats Email and email as two different sources. Decide on a convention and stick to it.
  • Use hyphens, not spaces. Spaces get encoded as %20 or +, which looks messy in reports. Hyphens stay readable.
  • Keep a shared naming spreadsheet. Inconsistent campaign names — spring_sale vs Spring-Sale vs springsale — fragment your data across three rows instead of one.
  • Don't put personally identifiable information (PII) in UTM values. Analytics platforms are not designed to store names or email addresses in URLs.

Your privacy is protected: this tool runs entirely in your browser. No URLs, campaign names, or any other data you enter are sent to our servers or stored anywhere.

Ready to tag your next campaign? Use the UTM builder above to generate a clean tracking URL in under a minute.

Frequently asked questions

What is a UTM parameter and why does it matter?+
A UTM parameter is a short tag you add to the end of any URL — for example ?utm_source=newsletter. When someone clicks that link, Google Analytics reads the tag and records exactly where the visit came from. Without UTM tags, many clicks — especially from emails and social posts — show up as 'direct' traffic, leaving you with no idea what's working.
Which UTM parameters are required?+
utm_source, utm_medium, and utm_campaign are the three required parameters — Google Analytics won't attribute the session to a campaign without all three. utm_term and utm_content are optional and mainly used for paid search keywords and creative A/B testing.
Is this UTM builder free? Do I need to create an account?+
Completely free, and no sign-up required. Open the page, fill in your fields, copy your URL, and you're done.
Does the tool store or upload my URLs?+
No. Everything runs in your browser. Your destination URL, campaign names, and generated link never leave your device or get sent to any server.
Should I use utm_source or utm_medium for the channel name?+
utm_source is the specific origin — the name of the website, newsletter, or app sending the traffic (e.g. mailchimp, twitter). utm_medium is the category of channel (e.g. email, social, cpc). Think of source as 'who sent it' and medium as 'how it was sent'.
Can I use UTM parameters with Google Ads?+
Yes, but be careful. If you have Google Ads auto-tagging enabled (which adds a gclid parameter automatically), manually adding UTM tags can sometimes conflict and cause double-counting or misattribution. The safest route is to use ValueTrack parameters inside Google Ads and let the platform handle tagging automatically.
Why should I never add UTM parameters to internal links?+
Tagging links between your own pages overwrites the original traffic source. If someone arrived from an email and then clicked a UTM-tagged internal link, their session would restart and be attributed to whatever internal source you put — erasing the email attribution entirely. Only tag external links pointing to your site.
What's the difference between a UTM builder and a URL shortener?+
A UTM builder adds tracking parameters to your URL for analytics purposes. A URL shortener makes a long URL shorter and shareable (like bit.ly). The two are often used together: build your UTM-tagged URL first, then shorten it. Just make sure the shortener passes the UTM parameters through to the destination page — most do.