Open Tools LibraryOpen Tools Library
SEO Tools

UTM & Campaign URL Builder

Everything Google's tool doesn't have: saved history, naming-consistency checks, bulk links, and a QR code — no account needed.

Also known as: UTM link generator, Campaign URL builder, UTM tag generator, Google Analytics campaign builder

100% FreeNo Signup RequiredLocal Campaign HistoryBulk Link Generation
100% local — nothing you enter here ever leaves this browser tab
Loading tool…
Step by step

How it works

  1. 1Enter your destination URL, then click a channel preset (or fill in source and medium manually) to get started.
  2. 2Fill in your campaign name, term, and content — autocomplete suggests values you've used before to keep naming consistent.
  3. 3Review any validation warnings — missing fields, stray spaces, or casing that doesn't match your past campaigns.
  4. 4Copy your tagged link, save it to your local history, get a QR code for it, or select multiple channels to bulk-generate a whole campaign's links at once.
Why OTL

Why use UTM & Campaign URL Builder

Actual campaign history, unlike Google's tool

Every link you save is stored locally and stays searchable, renamable, and reusable — Google's Campaign URL Builder forgets everything the moment you close the tab.

Catches the mistakes that fragment your reports

Flags casing drift against your own naming history ("Newsletter" vs "newsletter"), stray spaces, and missing required fields — the specific errors that quietly split one campaign into multiple rows in analytics.

Bulk-generate a whole campaign at once

Select every channel a campaign runs on and get all the tagged links in one pass, sharing the same campaign name, term, and content.

Instant QR code for any link

Get a scannable QR code for a tagged URL immediately — useful for print, packaging, or in-person events — with a link to the full QR Code Generator for more styling.

Share naming conventions without an account

Export your naming dictionary as a file and hand it to a teammate to import — a genuine team-consistency workaround with no login system required.

Nothing ever leaves your browser

Every link, every saved campaign, and your entire naming history stays local — no server, no account, no data collection.

Real-world use

Who uses UTM & Campaign URL Builder

Tagging links for a multi-channel campaign launch

Bulk-generate tracking links for every channel a launch runs on — paid search, social, and email — in one pass.

Keeping UTM naming consistent across a team

Export a shared naming dictionary so everyone tagging links uses the same source and medium values, without needing a shared account.

Adding a trackable QR code to print materials

Tag a landing page URL, then generate a QR code for it instantly to put on a flyer, poster, or business card.

Auditing your own past campaign links

Search your local campaign history to find and reuse the exact tagging from a previous, similar campaign.

Catching a naming mistake before it fragments your data

Get warned the moment a new campaign's source or medium value differs only in casing from something you've used before.

Deep dive

About UTM & Campaign URL Builder

Search for a free UTM builder and the same tool comes up first: Google's own Campaign URL Builder. It's genuinely useful, and it's also missing almost everything past the single core function — no history, no way to see what you tagged last week, no bulk generation, nothing that remembers your team's naming conventions. Build a link, and the moment you close the tab, it's gone. The tools that do add those features are almost universally paid, with history and team features specifically locked behind a subscription.

This tool starts from the assumption that a UTM builder should actually remember what you've built. Every link you save is stored locally in your browser — searchable, renamable, reusable, exportable as CSV — with nothing sent to a server and no account required to make that possible. It's the same approach this site uses everywhere: real functionality, not a stripped-down free tier designed to get you to upgrade.

The validation is built around the specific ways UTM tagging actually goes wrong in practice, not generic form-field checking. Google Analytics treats "Newsletter" and "newsletter" as two completely separate values, silently splitting one campaign's data into two rows in every report — a mistake that's nearly invisible until someone's trying to figure out why a campaign's numbers look wrong. This tool checks every value you type against everything you've used before and flags exactly that kind of casing drift, along with stray spaces (which get URL-encoded into an ugly "+" or %20 in the final link) and required fields left empty.

For campaigns that run across several channels at once — a launch that's live on Google Ads, Instagram, and a newsletter simultaneously — the bulk generator builds every channel's link in one pass, sharing the same campaign name, term, and content, so a whole campaign's tracking gets set up in one step instead of rebuilding the same fields five times. And because there's no account system to enable real team collaboration, the naming dictionary — every source, medium, and campaign name you've used — can be exported as a file and shared directly with a teammate, who imports it to merge it into their own suggestions. It's a workaround for not having accounts, and it works.

Compare

UTM & Campaign URL Builder vs. other options

How Open Tools Library compares to desktop software and other online tools.

FeatureOpen Tools LibraryDesktop softwareOther online tools
Saved campaign historyYes, local and unlimitedN/AUsually a paid-only feature
Naming-consistency validationBuilt in, checks your own historyRareRare, even on paid tiers
Bulk link generationFree, unlimited channelsN/AOften a paid feature
QR code for the tagged linkBuilt in, instantN/AUsually a separate tool
Account requiredNeverN/ARequired for any history or team features
Pro tips

Pro tips

  • Keep casing consistent — Google Analytics treats "Facebook" and "facebook" as two different sources, silently splitting one campaign's traffic into two separate rows in every report.
  • Use hyphens instead of spaces in campaign names — a space gets URL-encoded as a "+" or %20, which looks broken when a link is shared in plain text or read aloud.
  • The three fields that matter most for GA4 reporting are source, medium, and campaign — leave any of them blank and that traffic shows up as "(not set)" in your reports.
  • For a launch running on several channels at once, use the bulk generator instead of building each link individually — it guarantees the campaign name, term, and content stay identical across every channel.
  • Export your naming dictionary occasionally as a backup — since everything is stored only in this browser, clearing site data or switching devices means starting your naming history over.
  • A QR code encodes the full tagged URL, so scanning it and clicking a shared link both flow into the exact same UTM-tagged analytics data.
Under the hood

Technical specs

UTM parameters supported
5 standard + 4 GA4 extended + unlimited custom
Channel presets
19, across 6 categories
Bulk generation
Any number of channels at once, from one campaign
Campaign history
Local, unlimited search, CSV export
QR code generation
Instant, downloadable PNG
Processing location
100% local, in your browser

Privacy & security

A UTM builder sees every landing page and campaign name in your marketing plan before it launches — reason enough for it to never leave your browser.

Every link, saved campaign, and naming value is stored only in your browser's local storage — never uploaded anywhere.

No account, email, or login is ever required to use any part of this tool.

Naming-dictionary sharing happens by exporting and sending a file directly — never through a server this site controls.

Equally private whether you're tagging one link or managing hundreds of saved campaigns.

FAQ

Frequently asked questions

Is my campaign data uploaded anywhere?

No. Every link, every saved campaign, and your naming history is stored only in your browser's local storage — nothing is ever sent to a server.

Do I need an account to save my campaign history?

No — saving, searching, renaming, and exporting your campaign history all work with zero account or signup.

What's the difference between the standard and advanced UTM fields?

Source, medium, campaign, term, and content are the original five UTM parameters every analytics platform recognizes. utm_id, utm_source_platform, utm_creative_format, and utm_marketing_tactic are newer fields GA4 added for more granular reporting — optional, and hidden by default.

Can I generate links for multiple channels at once?

Yes — select every channel a campaign runs on in the bulk generator, and it builds one tagged link per channel, sharing the same campaign name, term, and content.

How do I share consistent naming with my team without an account system?

Export your naming dictionary as a JSON file and send it directly to a teammate — importing it merges those values into their own suggestions without overwriting anything they've already got.

Stuck?

Troubleshooting

My saved campaigns disappeared

History is stored only in this browser's local storage. Clearing your browser's site data, using a private/incognito window, or switching browsers or devices will not carry your history over — export it as CSV periodically if you want a backup.

Why is my custom parameter missing from the generated link?

Custom parameters need both a key and a value to be included, and a key can't reuse a standard UTM field name (like utm_source) — use the dedicated field for that instead.

The casing warning keeps appearing even though I think I'm being consistent

It's comparing against every value you've ever used in this browser, including early or one-off campaigns. Export your naming dictionary, remove anything outdated from the file, and re-import it if your history has gotten cluttered.

Can I import a teammate's naming dictionary without losing my own history?

Yes — importing always merges additively into your existing naming values rather than replacing them, so your own history is preserved.

Ready to use UTM & Campaign URL Builder?

Free, private, and ready right now — no signup required.

Scroll to UTM & Campaign URL Builder