UTM Link Builder

Build campaign URLs with utm_source, utm_medium, utm_campaign and the other Google Analytics parameters. Validation, presets, and one-click copy.

Runs in your browser — nothing uploaded
Landing URL
UTM parameters
Where the visit came from — domain, partner, or platform name.
Marketing channel category. Use consistent values across campaigns.
The specific campaign or promo — short, lowercase, no spaces.
Paid keyword or audience segment. Optional for non-paid traffic.
Distinguish two ads, links, or A/B variants in the same campaign.
Optional unique campaign identifier matching your CRM or ad-platform ID.
Built URL
Type a valid landing URL and fill the required fields (source, medium, campaign).
Missing required fields: utm_source, utm_medium, utm_campaign.

Build clean, consistent UTM-tagged URLs for any campaign. Type the landing page, fill in source, medium, and campaign, and copy the ready-to-share link. Validates the URL and lowercases values by default so your Google Analytics reports don't fragment.

Private by design — your data never leaves your device

How to use it

No account, no upload — it all happens on your device.

1
Type or paste your landing URL (must start with http:// or https://).
2
Fill at least the three required fields: source, medium, and campaign.
3
Optionally add term, content, and id for finer-grained tracking.
4
Copy the assembled URL — paste it wherever the link will live.

The five (and a half) UTM parameters

Three required, two optional, plus utm_id for GA4.

ParameterRequiredHolds
utm_sourceYesWhere the visit came from — google, newsletter, partner-domain.com.
utm_mediumYesChannel category — email, cpc, social, referral.
utm_campaignYesThe campaign name — spring_launch, black_friday.
utm_termNoPaid keyword or audience segment.
utm_contentNoA/B variant or link position — hero_button, footer_link.
utm_idNo (GA4-only)A unique ID matching your CRM or ad-platform ID.

A naming convention that survives 18 months

Pick once, stick with it forever.

  • All lowercase. Case-sensitivity in analytics is the #1 cause of split reports. This tool enforces it by default.
  • Underscores, never spaces. Spaces become %20 in URLs and read as ugly tokens in reports.
  • Use the same value across channels. "newsletter" everywhere — not "email-newsletter" in some links and "nl" in others.
  • Don't put the landing page in the campaign name. The URL already shows it. Use utm_content to differentiate links that point at the same page from different ads.
  • Keep a shared spreadsheet of canonical source/medium values. New marketers, ad platforms, and agencies will invent new values otherwise.

Common pitfalls

  • Tagging internal links.If a user clicks a link inside your own site, the new UTM parameters overwrite their original source — making it look like they came from "the homepage" instead of "Google Search". Don't tag internal navigation.
  • UTMs in email signatures. Every reply your reps send will carry the same tag. Use utm_campaign=signature and accept that the data is noisy.
  • Shared social posts. Anyone re-sharing your tagged URL preserves the tag, so you may double-count a single original click. Consider stripping UTMs on the landing page after capture.
  • SEO and UTMs.UTMs don't hurt SEO — Google ignores them for ranking and treats the canonical-tagged URL as the same page. Just make sure your rel="canonical" is set so the un-tagged URL is the canonical version.

Frequently asked

What's the difference between utm_source and utm_medium?
utm_source is the specific origin — 'google', 'newsletter', 'twitter'. utm_medium is the category of channel — 'cpc' (paid search), 'email', 'social'. The pair answers 'which channel and which sender'. Google Analytics rolls up by medium for high-level reports, so consistent values here matter more than for source.
Why does the tool lowercase my values?
Google Analytics treats UTM values as case-sensitive — 'Newsletter' and 'newsletter' show up as two different sources, splitting reports. Auto-lowercasing keeps everything in one bucket. Untick the box if you have a strict naming scheme that needs mixed case.
Are URLs sent anywhere?
No. The URL is assembled in your browser using the native URL constructor. Nothing about your destinations, campaign names, or tagging strategy leaves the device.

Related tools

Color ConverterConvert any color between HEX, RGB, HSL, HWB, and OKLCH instantly. Includes a live swatch and one-click copy for each format.QR Code GeneratorGenerate QR codes for URLs, text, Wi-Fi, and more — entirely in your browser. Download as PNG or SVG. No tracking, no uploads.Unix Timestamp ConverterConvert Unix timestamps to human-readable dates and back. Supports seconds and milliseconds, UTC and local time. All in your browser.