---
title: "Free UTM Builder & Campaign URL Generator (2026)"
description: "Build tagged campaign URLs in your browser. Add utm_source, medium, campaign, term, and content without breaking existing query strings or anchors."
canonical_url: https://marketmaster.dev/utm-builder
html_url: https://marketmaster.dev/utm-builder
content_type: text/markdown
generated_from: utm-builder.html
---

> Build tagged campaign URLs in your browser. Add utm_source, medium, campaign, term, and content without breaking existing query strings or anchors.

Free UTM builder

# Tag the link properly, or the channel gets no credit.

Build a campaign URL that survives contact with a real website — one that already has query parameters, an anchor, and a mixed-case campaign name someone typed from memory. Everything runs in your browser.

[Build a link](https://marketmaster.dev/utm-builder#builder)
[What each tag does](https://marketmaster.dev/utm-builder#parameters)

No account, no upload, no stored history. The page never sends your URL anywhere.

A useful definition
A **UTM parameter** is a tag in a URL's query string that tells your analytics tool which campaign, channel, and creative earned the visit.

**Destination URL** +
**Consistent tags** +
**One naming convention** =
**Reporting you can trust**

On this page
[Builder](https://marketmaster.dev/utm-builder#builder)
[The five parameters](https://marketmaster.dev/utm-builder#parameters)
[Naming conventions](https://marketmaster.dev/utm-builder#conventions)
[Common mistakes](https://marketmaster.dev/utm-builder#mistakes)
[FAQ](https://marketmaster.dev/utm-builder#faq)

01 · The builder

## Build a tagged campaign URL.

Fill in the destination and at least a source, medium, and campaign. The builder appends tags to an existing query string instead of clobbering it, keeps any anchor at the end of the URL where it belongs, and encodes characters that would otherwise break the link.

Destination URL *****
_[Input: https://example.com/pricing]_
Existing parameters and #anchors are preserved.

Campaign source *****
_[Input: linkedin]_
Where it came from.

Campaign medium *****
_[Input: social]_
How it travelled.

Campaign name *****
_[Input: 2026-q3-launch]_
The initiative this link belongs to.

Campaign term
_[Input: marketing+automation]_
Paid keyword. Optional.

Campaign content
_[Input: hero-cta]_
Creative variant. Optional.

Campaign ID
_[Input: mm-4471]_
Optional utm_id for tools that join to an ad platform.

Normalise tags to lowercase and hyphens

Your tagged URL

**Action:** Copy link
**Action:** Clear

### What this link will report

Built locally in your browser. Nothing is uploaded, logged, or saved.

02 · The parameters

## What each tag actually reports.

Five parameters, three of which do the real work. Understanding which question each one answers is what stops a reporting table from turning into a pile of near-duplicate rows.

The standard UTM parameters and the question each one answers.

| Parameter
| Answers
| Example
| Needed?

| utm_source
| Which specific property sent the visit?
| linkedin
| Required in practice

| utm_medium
| What kind of channel was it?
| social Also: email, cpc, referral.
| Required in practice

| utm_campaign
| Which initiative does this belong to?
| 2026-q3-launch
| Required in practice

| utm_term
| Which keyword was bought?
| marketing+automation
| Paid search only

| utm_content
| Which creative or placement was it?
| hero-cta
| Optional, useful for tests

| utm_id
| Which ad-platform record does this join to?
| mm-4471
| Only if your tool uses it

Source is a name, medium is a category. Mixing the two is how one campaign quietly becomes six rows in a report.

03 · Conventions

## A convention beats a clever taxonomy.

UTM data degrades through inconsistency, not through wrong choices. Any scheme works if everyone uses the same one; the best scheme fails if half the team improvises.

- 1 **Lowercase everything** Analytics tools treat Email and email as different sources. Pick lowercase and never deviate.

- 2 **Hyphens, not spaces** A space becomes %20 or a plus sign depending on the tool, producing two versions of one campaign.

- 3 **Keep medium to a short list** Email, social, cpc, referral, affiliate. If your medium list is growing, those values probably belong in source or content.

- 4 **Date the campaign** Prefixing with a period like 2026-q3 makes campaigns sortable and stops last year's name being reused.

- 5 **Never tag internal links** An internal UTM restarts the session and overwrites the source that genuinely earned the visit.

- 6 **Write it down** One shared document of allowed values is worth more than any naming theory.

04 · Failure modes

## Four mistakes that corrupt the report.

Each of these produces data that looks fine until someone tries to make a decision with it. They are worth checking before a link is distributed, because a tagged link cannot be recalled once it is in someone's inbox.

**Silent split**

### Inconsistent casing

One person writes LinkedIn , another writes linkedin . The report shows two sources with half the traffic each, and the channel looks weaker than it is.

**Overwrite**

### Tagging internal links

A UTM on a link between your own pages starts a fresh attribution session. The newsletter that actually earned the signup is replaced by an internal navigation click.

**Breakage**

### Anchors in the wrong place

Appending parameters after a #anchor puts them in the fragment, where the server and most analytics tools never see them. The tags are simply lost.

**Leakage**

### Personal data in tags

Email addresses or customer IDs in utm_content end up in analytics reports, referrer headers, and server logs. Use an opaque identifier instead.

### Before you distribute a tagged link

- **Open it:** Does the URL still load the page you intended, anchor included?

- **Read it:** Is every value lowercase and hyphenated, with no stray spaces?

- **Check the medium:** Is it a category from your agreed list, not a second copy of the source?

- **Check the scope:** Is this an inbound link from a channel you do not own?

- **Check for people:** Is there anything in the tags that identifies an individual?

05 · In context

## Tagging is the last step of distribution, not the first.

A tracked link only matters once something is actually being distributed across more than one channel. That is where the naming discipline pays off: the same campaign going to email, LinkedIn, X, and a newsletter needs one campaign name and four different sources, applied consistently, or the comparison between them is meaningless.

One campaign **One campaign name** Every asset in the same push shares a single utm_campaign value.

Many channels **Distinct sources** Each destination gets its own source so channels can be compared.

Many creatives **Distinct content** Variant names in utm_content make A/B results legible.

One destination **One approved URL** The link a campaign points at should be decided before copy is written.

MarketMaster works the same way round: a campaign's destination is fixed as part of the brief, before any channel copy exists, and every generated asset carries that approved link. If you want the copy as well as the tracking, start from [one source and repurpose it](https://marketmaster.dev/ai-content-repurposing), then check the result against [each platform's character limits](https://marketmaster.dev/social-media-character-limits).

06 · Common questions
## UTM builder FAQ

### What are UTM parameters?
UTM parameters are five optional tags appended to a URL's query string — source, medium, campaign, term, and content. Analytics tools read them from the landing URL to attribute a session to a specific campaign, channel, and creative instead of filing it under direct or referral traffic.

### Which UTM parameters are required?
In practice: source, medium, and campaign. Analytics tools will accept a partial set, but most channel groupings key on medium, so a link without it lands in an unhelpful bucket. Term and content are optional.

### Are UTM parameters case sensitive?
Yes. Most tools treat Email, email, and EMAIL as three separate sources, splitting one campaign across several rows. Normalising to lowercase before the link ships avoids it — the builder above does this by default.

### Should I put UTM parameters on internal links?
No. Tagging a link between two of your own pages starts a new attribution session and overwrites the original source, so the campaign that earned the visit loses credit for it. Reserve UTM tags for inbound links from channels you do not control.

### Does this builder send my URLs anywhere?
No. It is a static page, and the link is assembled locally in your browser. No URL, campaign name, or keystroke is transmitted, logged, or stored.

From tagged link to full campaign

## The link is easy. The campaign around it is the work.

MarketMaster turns one source into reviewed email, social, carousel, newsletter, and short-video assets — all pointing at the destination you approved, all checked before you publish.

[Open the Studio](https://marketmaster.dev/studio)
[Read the distribution playbook](https://marketmaster.dev/playbook)

---

Canonical HTML: https://marketmaster.dev/utm-builder
