Five parameters, and only three of them matter
A campaign URL is an ordinary link with a handful of query parameters bolted on, which any analytics tool reads to work out where a visit came from. There are five conventional parameters and they are not equally important.
Source names where the traffic came from, medium names the kind of channel, and campaign names the specific push. Those three are what make a visit attributable, and a link missing any of them reports incompletely. Term and content are refinements, originally for paid search keywords and for distinguishing two links in the same email, and plenty of campaigns never use either.
This builder flags the first three when they are empty and stays quiet about the last two, which is the distinction that actually reflects how the parameters are used.
Building a link
- Enter the base URL. A bare domain is fine.
- Fill in source, medium and campaign. The builder tells you if one is missing.
- Add term and content only if you have a reason to.
- Copy the generated link, which updates as you type.
- Switch to bulk mode when you need one link per campaign name.
Why the URL is assembled rather than concatenated
The most common way to produce a broken tracking link is to build it as a string. It works until a value contains a space, an ampersand or an accented character, at which point the link either breaks outright or silently truncates a parameter at the ampersand.
Here the parameters are set through the browser’s own URL handling, which encodes each value as it is written. A campaign name containing spaces, punctuation, non ASCII characters or even emoji comes out correctly encoded, and an existing query string on the base URL survives untouched rather than being clobbered.
The bare domain case is the one place a deliberate guess is made. Typing a domain with no scheme is a genuine mistake people make constantly, and treating it as https is what they meant. A URL that already declares some other scheme is refused by name instead, because guessing there produces an address that looks plausible and goes nowhere.
Bulk mode, and the interpretation it commits to
Bulk generation could mean several things and this one picks a specific interpretation, which is worth stating because it will not fit every workflow.
You give one base URL, one shared set of source, medium, term and content, and a list of campaign names. Each name produces its own link with everything else held constant. That covers the situation that actually recurs, which is one landing page and several differently named campaigns on the same channel, and it fits in a single text box.
Names can be separated by commas, by newlines or by both, so pasting a column out of a spreadsheet works as well as typing a list. Order is preserved and duplicates are kept, on the basis that a repeated name is far more likely to be a mistake you want to notice than something the tool should quietly deduplicate.
Consistency is the real benefit
Analytics tools treat parameter values as literal strings, so email and Email are two different mediums and will appear as two separate rows in every report from then on. Nothing warns you. The numbers simply split.
Keeping a history of previously built links, held locally on your device, helps with exactly this. Before starting a new campaign you can see what you actually used last time rather than what you think you used, which is the cheapest possible way to avoid a taxonomy that fragments over a year.
Related link and SEO tools
To inspect or hand encode a value rather than build a whole URL, URL Encode does the conversion directly. To turn a finished campaign link into something scannable for print, QR Code Generator produces the image, and WhatsApp Link Generator covers click to chat links with a prefilled message.
For the other side of the site’s marketing surface, Schema Markup Generator writes structured data, Robots.txt Generator controls crawling, and Social Character Counter checks a post fits. The rest are on the dev tools hub.

