CruxDevCruxDev Tools Prompts
network Utility • Zero-Server Privacy • 100% Client-Side

UTM Campaign URL Builder

Build Google Analytics UTM links with source, medium, campaign, term and content - keeps existing query params and warns about inconsistent values.

Overview

Builds campaign links with UTM parameters for Google Analytics and other analytics tools. Enter your page URL plus source, medium and campaign, and optionally term and content, and the tagged link is ready to copy. Existing query parameters and #fragments are kept, and the tool warns about values that would split your reports.

How It Works

Paste the page address into Website URL, including https://. Fill in source, medium and campaign; these three are marked with an asterisk because analytics tools expect them together. Term and content are optional. The tagged URL updates as you type, with a Copy button. Medium suggests common values such as email, cpc and social. Force lowercase is on by default. Warnings appear under the link if a value contains spaces or a required field is empty, and an error appears if the URL is not a valid web address.

Step-by-Step Usage Guide

  1. Paste the full page URL, including https://.
  2. Enter utm_source, utm_medium and utm_campaign.
  3. Add utm_term or utm_content if you need to distinguish keywords or links.
  4. Check any warnings, then copy the tagged link.

Technical Specifications & Standards

UTM parameters are query-string tags that tell an analytics tool where a visit came from. utm_source names the site or sender, such as google or newsletter; utm_medium names the channel type, such as email, cpc or social; utm_campaign names the promotion. utm_term records a paid search keyword and utm_content tells apart two links in the same email or ad. Google Analytics 4 reads all of these, and the source and medium values feed into its default channel groupings, so using standard medium names such as email and cpc puts traffic in the right channel. Analytics tools treat values as exact text, which is the most common way UTM reporting goes wrong. Email, email and E-mail become three separate sources, which is why lowercase is forced by default. Spaces are encoded as + in the URL and are valid, but they make reports harder to read and easy to mistype, so the tool warns about them and suggests hyphens or underscores. The builder uses the browser's URL parser, so the result is always correctly encoded: special characters in values are escaped, other query parameters stay where they were, and a #fragment stays at the end where it belongs. If the URL already has utm_ parameters, they are replaced rather than duplicated. UTM tags belong on links from outside your site. Adding them to internal links between your own pages starts a new session in some tools and overwrites the original source.

Targeted Use Cases

  • Tagging links in a newsletter so analytics shows which issue drove signups.
  • Separating paid, organic and partner traffic for the same landing page.
  • Comparing two buttons or banners in one email with different utm_content values.
  • Tracking QR codes on printed material by giving each placement its own campaign.

Notes & Gotchas

  • Agree on lowercase naming rules for source, medium and campaign and keep a shared list.
  • Use standard medium values such as email, cpc and social so analytics groups channels correctly.
  • Never add UTM tags to internal links on your own site.
  • Shorten long tagged links with a link shortener when they will be shown to people.

Frequently Asked Questions

Which UTM parameters are required?

Technically none, but analytics tools expect utm_source, utm_medium and utm_campaign together. Leaving one out produces incomplete or unassigned traffic, so the tool warns when any of them is empty.

Why force lowercase?

Analytics tools compare values exactly, so Newsletter and newsletter would appear as two different sources. Lowercasing everything keeps reports consistent.

What happens to existing query parameters?

They are kept as they are. Only utm_ parameters are replaced, and a #fragment stays at the end of the URL.

Is the link sent anywhere?

No. The URL is built in your browser, and nothing is sent to a server or a link shortener.