Ankore
Generators & Utilities · Free

UTM Parameter Builder

Build properly URL-encoded UTM-tagged campaign URLs in seconds. Live warnings on the conventions analytics tools care about, GA4-ready utm_id support, copy-to-clipboard output.

  • No signup, no email required
  • Works entirely in your browser
  • Output you can copy and paste directly
  • Built by a working SEO team, not gated by upsells

Campaign URL builder

Campaign URL

URL
// Enter a base URL plus utm_source, utm_medium, and utm_campaign to generate.
Quick reference
  • utm_source = origin site / list / channel name
  • utm_medium = channel type (email, cpc, social…)
  • utm_campaign = named promotion or initiative
  • utm_content = which variant inside the campaign
  • utm_term = paid keyword (legacy)
  • utm_id = unique campaign ID (GA4-recommended)

What it does

A UTM builder takes a destination URL, attaches the five (or six) UTM parameters most analytics tools track, and outputs a properly encoded campaign URL you can paste into emails, ad platforms, social posts, partner pages, or anywhere else you want to attribute traffic back to a specific source.

This builder runs entirely in your browser, validates the base URL, warns about case and whitespace conventions that quietly fragment your reports, and supports the GA4-recommended utm_id field most older tools do not bother with.

Why UTMs still matter in 2026

Even with consent-mode reporting, server-side tagging, and AI-driven attribution all gaining ground, UTMs remain the simplest, most portable, and most resilient form of campaign attribution. They work in every analytics platform — GA4, Plausible, Fathom, Heap, Mixpanel, your own server logs — without configuration. No JavaScript needed on the destination, no server-side install, no privacy-blocked third-party cookie dependency.

The catch is that UTMs are only as useful as your team's discipline in using them consistently. Inconsistent capitalization ("Newsletter" vs "newsletter"), accidental spaces, or campaign-name drift across teams all silently fragment your reports. The warnings this tool surfaces exist to catch those mistakes before they propagate.

The five (or six) UTM parameters explained

utm_source — required

The specific origin of the click. The newsletter name, the partner domain, the social network. Examples: newsletter, twitter, partner-acme, google. Pick a stable name and use it forever — if you send from your weekly newsletter, every link should use the same source name.

utm_medium — required

The marketing channel type. This is a controlled vocabulary — pick a small set (email, cpc, social, referral, organic, display, affiliate, podcast, qr) and never let team members invent new mediums on the fly. Inconsistent mediums are the single most common reason GA4 default reports look like someone has been hit by a truck.

utm_campaign — required

The named promotion. Be specific and include a date so you can reuse the convention next year: spring-2026-launch, black-friday-2026, q3-pricing-test. Slug-format (lowercase, hyphenated) is the standard.

utm_content — optional

Distinguishes variants within the same campaign. Use it when you have multiple links to the same destination from the same source — e.g. a header CTA vs a footer CTA in the same email (header-cta vs footer-cta), or two ad creative variants in the same paid campaign. If there is only one link, you can skip it.

utm_term — optional, mostly legacy

Originally for paid search keywords. Most paid platforms now auto-populate this from their own keyword field, so manual use is rare. Still safe to include if you have a use case (e.g. tracking which sponsored search term in a podcast ad drove the click).

utm_id — optional but GA4-recommended

A unique campaign identifier that joins your campaign data with imported data sources (Google Ads cost imports, offline conversion uploads, CRM joins). GA4 has a dedicated reporting dimension forutm_id; older tools may ignore it. Use it when you need that join; skip it for one-off social posts.

How to use this builder

  1. Paste the destination URL in the Base URL field. Must include https:// or http:// — the tool validates this.
  2. Fill the three required UTM fields: source, medium, campaign. Use lowercase, hyphen-separated values to match UTM conventions.
  3. Add content / term / id if relevant. Leave them blank if not — the tool excludes empty fields from the output.
  4. Watch for warnings on the right. Uppercase letters and spaces are the most common silent reporting killers, and the tool flags them.
  5. Copy the output URL. Done.

UTM naming best practices

  • Lowercase, always. Analytics tools treat Email and email as separate sources. Pick one (lowercase is the universal convention) and enforce it.
  • Hyphens, not spaces or underscores. URLs technically allow spaces (encoded as %20) but they look broken when shared. Hyphens read cleanly. Underscores are occasionally interpreted as word separators in URL-based analytics, which can cause weird grouping.
  • Lock down a controlled vocabulary for utm_medium. Keep it to ~10 stable values. Document them somewhere your team can find. Reject ad-hoc additions.
  • Include a date or quarter in utm_campaign.Future-you will need to distinguish this year's spring launch from next year's.
  • Do not put PII in UTMs. Email addresses, user IDs, names — never. UTMs end up in server logs, browser history, referrer headers passed to other sites, and analytics exports shared with vendors. Treat them as fully public.
  • Do not double-tag. If your ad platform auto-tags (Google Ads with auto-tagging on, Meta with fbclid), do not also add UTMs unless you have a specific reason — you can end up with conflicting or duplicate-counted data.
  • Strip UTMs from URLs you canonicalize. When UTMs accidentally end up indexed in Google, your canonical tag should point to the clean URL without query parameters.
  • Maintain a UTM template / spreadsheet. One source of truth where every campaign URL gets logged. Your future self comparing year-over-year performance will thank you.

Common UTM mistakes

  • Mixed case across the same campaign. Spring-2026 in one email, spring-2026 in another, Spring2026 in a third. Analytics treats all three as separate campaigns.
  • Spaces. A space in utm_campaign usually gets URL-encoded as %20 or + depending on the platform — sometimes both within the same session. The campaign appears under three different names.
  • Forgotten medium / source. A campaign tagged only with utm_campaignshows up as "direct" traffic in most analytics tools, defeating the entire point.
  • Using utm_source for the medium. utm_source=cpc instead of utm_medium=cpc. Confuses default channel groupings and breaks paid vs organic splits.
  • Hardcoded UTMs in pages crawled by Google. UTMs are for click-tracking, not for in-site links. If a UTM ends up in your sitemap or internal navigation, your own visitors get tagged as inbound traffic from your own site.
  • Letting UTM parameters survive cross-domain redirects. When tagged URLs redirect through your CDN or vanity domain, the UTMs sometimes get stripped. Test the full redirect chain after building the URL.
  • Forgetting to update the template each quarter. Last year's campaign names linger if no one prunes them.

How to validate UTM tracking is working

  1. Click the URL yourself from a private browser window. Visit the destination, then check your analytics tool in real-time / DebugView. You should see a session attributed to the correct source / medium / campaign within seconds.
  2. Use the GA4 DebugViewif you're in Google Analytics. With the GA Debugger Chrome extension or ?debug_mode=1 in the URL, every event including campaign attribution is visible in real time.
  3. Check for accidental encoding issues. Some email clients double-encode URLs. Click your sent campaign from your own inbox and confirm the destination URL still has clean UTMs in the address bar.
  4. Audit a sample after launch. A week into the campaign, look at the source/medium/campaign report and confirm every value matches your naming convention. Catching a typo on day three is better than discovering it after the campaign ends.

Frequently asked questions

What does UTM stand for?

Urchin Tracking Module — Urchin was a web analytics product Google acquired in 2005 that became Google Analytics. The UTM parameter convention came with it and outlived the original product by twenty years and counting.

Are UTM parameters case-sensitive?

Yes. Most analytics platforms treat 'Email' and 'email' as different sources. Pick lowercase as your standard and never deviate — it is the universal industry convention and the simplest rule to enforce.

Do UTMs work without Google Analytics?

Yes. UTMs are query parameters appended to URLs — every analytics platform reads them, including Plausible, Fathom, Heap, Mixpanel, Adobe Analytics, and your own server logs. They are platform-agnostic.

Will UTMs hurt my SEO?

No, when used correctly. UTMs on links pointing to your site (from external campaigns) are fine. UTMs on internal site links — links between pages on your own site — should be avoided, as they can fragment session data and tag your own visitors as inbound traffic. Keep UTMs at the perimeter, not inside the site.

Should I use a URL shortener with UTMs?

Often, yes — UTM-tagged URLs get long. A shortener (Bitly, Rebrandly, your own custom-domain shortener) keeps the displayed URL clean while preserving the tracking. Just make sure the shortener passes the parameters through correctly when redirecting.

What is utm_id and why does GA4 want it?

utm_id is a unique identifier for the campaign that GA4 uses to join your campaign data with imported data — Google Ads cost data, offline conversions, CRM imports. Older tools (Universal Analytics, most third parties) ignore it. Add it when you need cross-data joins; skip it for simple campaigns.

Can I edit a UTM after it goes live?

Editing the URL itself just changes future clicks — old links keep their original parameters and the data already collected does not change. If you renamed a campaign mid-flight, the analytics report will show both the old and new campaign name. Pick the right convention before launch.

Should I tag emails inside my own product?

Yes, with utm_medium=email and a source that distinguishes transactional from marketing emails (e.g. utm_source=product-onboarding vs utm_source=newsletter). It prevents legitimate product email clicks from being misattributed as marketing in your dashboards.

Will this tool log my URLs?

No. Everything runs in your browser — there is no server endpoint to log to. The URLs you build never leave your device unless you copy and paste them somewhere yourself.