LogoTools
Runs entirely in your browser - nothing is uploaded

Campaign tagging works when every link in a campaign spells its parameters the same way. Analytics platforms compare those values as plain strings, so Facebook and facebook become two rows, and one campaign turns into two half campaigns that nobody trusts. This builder assembles the tagged URL and checks it for the spelling problems that cause the split.

Everything runs in the browser. The destination URL is parsed locally with the browser's own URL API and never requested, so you can tag a staging link or an unlaunched page without it leaving your machine.

What each parameter carries

utm_source names the specific sender: a newsletter, a partner site, an ad network. utm_medium names the channel type it belongs to (email, cpc, social), and channel groupings are built from that field. utm_campaign ties the visit to one push, like spring-sale or launch-week.

The last two are optional. utm_term holds a paid keyword and is usually filled in automatically by the ad platform. utm_content tells two links in the same send apart, so you can see whether the header button or the footer link did the work.

The three problems this tool flags

Pasting a URL that already carries UTM parameters. It happens constantly, because the link you copied came from a previous campaign. The builder spots the existing parameters and replaces them instead of appending a second set.

Capital letters. This is the most common cause of a campaign showing up twice. Reporting tools treat Email and email as unrelated values, so your numbers arrive split down the middle with no warning that anything went wrong.

Spaces. They survive the click, because the browser encodes them as %20, but the value reads badly in every report and in every spreadsheet export. Hyphens travel better.

Agree on the conventions once

Pick lowercase, pick one separator, and write down the handful of medium values your team is allowed to use. A shared page with ten example links stops more reporting problems than any amount of cleanup later, because a mistyped parameter cannot be fixed retroactively. The data was already recorded under the wrong name.

Keep campaign names descriptive enough to recognise a year from now. march-digest tells you nothing in isolation; 2026-03-newsletter-digest does.

Frequently asked questions

Which UTM parameters do I need?

utm_source is the one your analytics platform cannot infer, so treat it as required. Add utm_medium and utm_campaign on any link you plan to report on: medium drives channel grouping, campaign groups the sends together. Term and content are optional extras for paid keywords and for splitting placements inside one send.

Do UTM parameters hurt SEO?

Tagged links create extra URLs that resolve to the same page, which raises a duplicate content question, not a penalty. A self-referencing canonical tag on the page handles it. The rule that matters more: never put UTM parameters on internal links, because the tag restarts the session attribution and rewrites where the visit appears to have come from.

Why does one campaign appear twice in my reports?

Almost always a spelling difference between links. Two people tagged the same campaign with Email and email, or with spring_sale and spring-sale, and the platform recorded both as written. Lowercasing everything and sticking to one separator removes most of it.

Hyphens or underscores in campaign names?

Either works technically. Hyphens are the more common choice and read more naturally when a URL is displayed in full. Whichever you pick, use it everywhere: mixing the two inside one campaign produces the same split reporting that mixed capitalisation does.

Does this send my URL anywhere?

No. The link is assembled in your browser using the built-in URL parser, and the destination page is never fetched or contacted. Nothing you type is uploaded, logged, or stored.