serps.io
All free tools

Content

UTM Campaign Builder

Build campaign URLs that report consistently

In build

Fill in source, medium, campaign, term and content and get a tagged URL back, with any existing query string preserved, casing normalised, spaces encoded, and a warning when a value differs from one you used before only by capitalisation.

Get early access

What it returns

  • The finished URL, encoded correctly, with existing query parameters kept and the fragment left at the end where it belongs.
  • Each parameter shown separately with its value, so a trailing space or a smart quote pasted in from a document is visible before the link ships.
  • A flag when a value matches one you used earlier except for case or punctuation, because Email, email and e-mail become three rows in a report that should have been one.
  • A batch view: a list of destination URLs in, the same tagging applied to all of them, and a CSV out for the people who have to paste them into a scheduler.

When this matters

The quarterly channel report shows twelve traffic sources and four of them are the same newsletter. One link was tagged by the designer, two by the person who scheduled the send, one by an agency that used utm_medium=e-mail, and now nobody can say what email did. The fix is not a better report, it is one place where the values get written and anything that looks like a near-duplicate of a previous value gets questioned.

How to answer this today

We do not tag campaign links, and no part of the product does. The content area covers the half of the question we can answer: how a page performs in organic search, which queries bring it impressions, and what changed after you published. Campaign attribution for paid, social and email belongs in your analytics platform, and the parameters this tool writes are what that platform reads.

Content

Why this is harder than it looks

Everything is case sensitive

utm_source=Google and utm_source=google are two sources in most analytics tools, and the split only becomes obvious a quarter later when a channel looks half the size it is. Lowercasing by default prevents more damage than it causes.

The parameters follow the link

Tagged URLs get shared, linked and indexed, which means campaign parameters end up in search results and in your own internal links. Canonical tags and parameter handling exist because of this, and a tagged URL is not a page you want ranking on its own.

Medium and source mean specific things

Analytics platforms derive channel groupings from utm_medium, so cpc, email and organic_social route traffic into named channels while a creative value routes it into Other. The vocabulary is constrained by the tool receiving it, not by you.

Appending is harder than concatenating

A destination that already has a query string, a fragment, or an existing utm parameter cannot be fixed by adding a question mark. Correct behaviour means parsing the URL, merging parameters, and deciding explicitly which value wins.