URL / URI Tools

UTM builder

Build campaign links with explicit merge rules, one at a time or from CSV.

UTM builder

Input

Results

Processed in this browser; the destination address is never requested.

Options

The final source, medium and campaign must be nonempty. Blank optional fields keep old tags. Enter ordinary text; lowercase affects only values actually added.

CSV: 1 MiB / 1,000 records. URL: 100,000 UTF-16 units / 1,000 existing query entries. Each new value: 2,000 units. Each export: 4 MiB.

Enter a destination and campaign values, or load an example.

A UTM builder is useful when the same landing page appears in a newsletter, an advert and several creative placements. Decide the names your reports should use before generating links, so one campaign does not become several accidental variants.

This campaign URL builder keeps the destination address visible beside the result. Switch to a CSV batch when each placement needs its own content or campaign value; each record is handled independently.

Why use this UTM builder

Keep the destination intact

The UTM builder adds your campaign tags ahead of the fragment and retains untouched query segments. A product identifier, repeated filter or existing + stays as supplied. The summary shows the effective supported tags after merging.

A link retains gray query tags and a blue fragment while three campaign tags are appended.

Review an entire campaign batch

A UTM generator should make missing rows obvious. Each CSV record produces exactly one link, and a bad record blocks the complete export. Resolve the reported error before distributing the batch; the tool never silently skips a failed placement.

Several spreadsheet rows become corresponding links; an invalid row blocks the batch export.

Set naming rules before sharing

01

Use raw values, not encoded snippets

Enter Summer Sale or a creative name directly. New values are trimmed and encoded once; an ampersand becomes data inside the value. A literal %20 is encoded as %2520, so do not pre-encode form fields.

02

Decide how existing tags win

Replace changes only keys with a new nonempty value. Keep retains an existing value, even if it is empty. An untouched duplicate supported tag is an error; select Replace and enter that value to resolve it explicitly.

03

Treat each CSV row as a complete assignment

Use the exact url and utm_* headers shown in the example. Batch rows do not inherit the single-link form. Automatic generation waits 350 ms; turn it off to run with the button or Ctrl/Cmd + Enter.

Campaign tags, merge controls and batch checks

Seven supported fields

Source, medium and campaign identify the referral. Term and content distinguish keywords and creatives; campaign ID and source platform support more detailed campaign naming. The final link must have the three core values.

Values retain their meaning

Choose preserved case or lowercase for values you actually add. The lowercase option never changes the path, fragment, ordinary query values or an old value retained by Keep. Spaces remain spaces after decoding, rather than being replaced with underscores.

Existing parameters stay recognizable

Non-UTM parameter order, repeated keys, flags, plus signs and escape spelling survive unchanged. Standard UTM names are case-sensitive: UTM_Source is not a replacement for utm_source.

Complete UTM tracking links

Copy newline-separated links or download row,url CSV for a batch. Displaying the first 50 links does not shorten the export. Single-link downloads use plain text. Input changes disable both export actions until generation succeeds.

Accepted input and deliberate limits

Web addresses only
Supply an explicit http:// or https:// address. Relative links, credentials, raw spaces, backslashes, control characters, malformed percent escapes and invalid UTF-8 are rejected. International text may be used in campaign values.
Empty fields do not delete tags
Only nonempty new values participate in merging. Required values may come from the original URL. Each of the seven supported keys must occur at most once after merging; the tool does not guess which duplicate an analytics service would use.
Strict CSV, one record per link
Import UTF-8 CSV with an optional BOM, or paste it. Headers are exact and unique: url plus any supported utm_* columns. Quotes and embedded commas are supported; blank lines are skipped. Unknown headers, uneven rows or any invalid record block the whole batch. File import validates before offering a replacement preview.
Explicit processing budgets
CSV input is limited to 1 MiB and 1,000 data records. An address may contain 100,000 UTF-16 units and up to 1,000 existing query entries; each entered UTM value may contain 2,000 units. Link-text and CSV exports each have a 4 MiB UTF-8 ceiling. Nothing is silently truncated.
Static tagging, no analytics setup
No short links, QR codes, account history, advertising macro expansion or tracking installation are provided. Creative format and marketing tactic have no new-entry controls; existing parameters with those names stay intact. Results do not confirm that a destination collects campaign data.
Check signed links and redirects separately
Adding tags may invalidate a signature, so add them before signing. The original fragment stays after the query. No request checks whether redirects preserve parameters or whether the destination exists. Example, clear and file replacement require a preview and support one undo.

UTM builder questions

Which UTM fields are required?

The resulting link needs nonempty utm_source, utm_medium and utm_campaign. A value already present in the destination can satisfy that requirement. Term, content, ID and source platform are optional; leave them blank when the campaign does not use them.

What happens to existing query parameters?

Untouched parameters retain their original text and order. Replace removes all old occurrences only for a nonempty field you supply, then appends one encoded value. Keep leaves an existing supported value alone. Unresolved duplicate supported tags stop generation.

Are UTM values case-sensitive?

Yes. Google Analytics treats differently capitalized values as distinct. The default preserves your spelling. Choose lowercase if that matches your team convention; it applies only to new values actually added to the output.

How are spaces and special characters encoded?

New field values use UTF-8 component encoding. Spaces become %20, a literal plus becomes %2B and an ampersand becomes %26. Existing untouched query text is not re-encoded. Enter ordinary text rather than an already encoded value.

Can these links work with GA4?

These standard parameters can be read by GA4 when the destination has the appropriate measurement setup. Generating a link does not install Analytics, prove collection or guarantee attribution. Review the receiving property after a real campaign visit.

Something looks wrong?

Prepare the next campaign link

Use the UTM builder with the example, review the effective tags and adopt consistent names before copying your final campaign links.