Skip to main content
Free, no signup

Campaign URL Builder

Build the URL in ten seconds. Deciding what to call the campaign is the part that takes longer, and the part that decides whether the report is readable in six months.

Build a campaign URL

The page you want people to land on. Any query parameters already on it are kept.

Where the click comes from. A specific place: google, newsletter, linkedin, partner-name.

The kind of traffic it is. Keep this to a short agreed list: email, cpc, social, referral, affiliate.

The campaign this link belongs to. Everything in one campaign should share this exact value.

Optional. Which link it was, when one campaign has several: header-button, footer-link, variant-b.

Optional. The paid search keyword. Leave it blank unless you are tagging keyword-level links by hand.

The same builder, for teams agreeing a naming convention

This page uses the free TagPipes UTM Builder: five standard parameters, built in your browser, nothing sent anywhere and no account needed. What is different here is the explanation around it, written for teams agreeing a naming convention.

The builder is not the hard part

Every campaign URL builder does the same thing: it takes a destination and five parameters and joins them together. That is a solved problem, and the form above solves it.

What goes wrong is not the joining. It is that six people tagged links for the same campaign over three weeks and called it SpringSale, spring_sale, spring-sale-2026 and Spring Sale. The analytics tool is not being difficult when it shows you four campaigns: it was told four different names and has no way of knowing they were meant to be one.

So the useful thing a page like this can give you is not a form. It is a decision you make once, write down, and apply every time.

Decide these four things once

Write the answers somewhere the whole team can see them. Anywhere is better than nowhere.

DecisionA workable answerWhat happens if you skip it
Case and separatorLowercase, hyphens between words, no spaces and no underscores mixed inOne campaign appears as three or four rows, and every report has to be cleaned by hand before anyone can read it
The medium listA closed list: email, cpc, social, referral, affiliate, display, print. New value needs a conversationChannel groupings stop working, because paid-social, paidsocial and Paid Social are three different mediums
The campaign name patternSomething like season-offer-year, or quarter-initiative, applied the same way every timeNobody can find last year's equivalent campaign to compare against, because there is no pattern to search for
Who is allowed to invent a new valueOne person, or a short approval step. Not everyone with a keyboardThe taxonomy grows a new synonym every month and the cleanup job never ends

None of this is exotic. The reason it fails is that it lives in a document nobody opens at the moment the link is being made, which is usually five minutes before something goes out.

Before you send the link

A short check that catches most of the mistakes that cannot be undone once the email is out.

Worth checking every time

  • The destination URL actually loads, and is the page you meant, not a staging copy
  • The values match the case convention: all lowercase, hyphens, no stray capitals
  • Source and medium are the right way round: medium is the category, source is the specific place
  • The campaign name is character for character identical to the other links in this campaign
  • You are not tagging a link that points at your own site from your own site

Worth checking once per campaign

  • Somebody agreed the campaign name before anyone started building links against it
  • The medium you are using is on the agreed list, rather than a new one invented for this
  • Anyone else tagging links for this campaign has the same name in front of them
  • If the link is going into print or a QR code, the destination is one you can redirect later

Automated testing does not replace a manual accessibility review.

The four mistakes that cost the most

In rough order of how much reporting damage they do per occurrence.

Tagging internal links

A UTM parameter on a link between two of your own pages starts a fresh session and credits the visit to your own campaign. The record of how that person actually found you is overwritten. It is the only mistake on this list that destroys data rather than just splitting it.

Inconsistent case

Recoverable, but only by editing every report by hand, forever. Every analytics tool is case sensitive on these values and none of them will merge the rows for you.

Source and medium swapped

Putting email in source and newsletter in medium is not wrong enough to break anything visibly, which is why it survives for years and quietly ruins every channel grouping built on top of it.

No agreed owner

Without one person who decides what a campaign is called, the taxonomy is whatever the last person to build a link thought sounded reasonable.

Tagging the short link and not the destination

A short link redirects. The parameters have to be on the address the visitor ends up at, or they arrive with nothing attached.

The spreadsheet nobody updates

The convention exists, in a document, that the person building the link at 4:55pm on a Friday does not open. This is the failure the governance page is about.

Frequently asked questions

A convention in a document is a suggestion.

Relay applies the naming template at the moment the link is created. Build a URL above, then save it into Relay from the result and the template applies from the next one on.

Build a campaign URL

The builder stays free and needs no account. You register only when you save a link into Relay.