Skip to main content
WizTools123
WizTools123
Free Online Tools

Tool Categories


Developer Tools New Tool

Free Online UTM Builder and Parser with Batch Mode

Tag a URL with the five standard UTM parameters and utm_id, using channel presets and a naming convention that is remembered. Paste a tagged URL to read it back in plain English with a warning for the usual mistakes, or tag a table of rows in one go.

Free Forever Nothing Uploaded Build, read and batch Runs in your browser
Free Online UTM Builder and Parser with Batch Mode
Share this tool
Advertisement Slot (Top Banner) Google AdSense Unit • Responsive Banner
UTM Builder & Parser Everything happens in this tab. Nothing you paste is sent anywhere.
URL, or rows for batch
Result
Doing what

The parameters

Campaign naming

Tokens: {year}, {month}, {quarter}, {source}, {medium}, {name}. Remember it here stores the pattern in this browser only, so the next visit starts with it.

Batch

Paste a table into the box on the left, with a header row. Recognised column names are url, source, medium, campaign, term, content and id, with or without the utm_ prefix. Rows with no url column use the base below. The delimiter is detected.

0 characters 0 UTM parameters 0 rows 0 things worth checking

What the URL says

Parameter Value In plain English
Buy Us A Coffee

Enjoying WizTools123? Help keep our server infrastructure 100% free and open for everyone.

Buy Us A Coffee
Sponsored Content (Below Tool) Google AdSense Placement

Source, Medium, Campaign: Which Is Which

Getting these two the wrong way round is the most common tagging mistake there is.

ParameterAnswersGood values
utm_sourceWhich specific place?newsletter, facebook, google, partner-acme, in-store-poster
utm_mediumWhich kind of channel?email, cpc, social, paid-social, affiliate, referral, qr
utm_campaignWhich effort?2026-q1-spring-sale, black-friday, launch-v2
utm_termWhich paid keyword?blue+widgets, or left empty outside paid search
utm_contentWhich version or which link?hero-button, footer-link, variant-b
utm_idWhich campaign, by id?The campaign id from your ad platform, so the cost data joins up

The test that settles it: there are only ever a handful of mediums in a whole organisation, and a great many sources. If your utm_medium is facebook then you have put a source in it, and your channel report now has a separate line for every platform instead of grouping paid social together. Medium is the bucket; source is the specific thing inside the bucket.

Analytics tools also react to particular medium values. Google Analytics 4 groups cpc, ppc and paidsearch as paid search, email as email, and anything it does not recognise as unassigned or referral, which is where badly tagged traffic goes to be ignored. Pick a short list of mediums, write it down, and make everyone use it. That is worth more than any tool.

How to Build and Read UTM Links

A few steps, and nothing is uploaded.

1
Paste the page URL The address you are sending people to. Any parameters it already has are kept and the UTM ones are added after them.
2
Fill in the parameters Source, medium and campaign at minimum. A channel preset fills in the usual pair for email, social, paid search, affiliate or a QR code.
3
Or read one back Switch to Read and paste a tagged URL to get a table with a plain English reading and a warning for mixed case, a source in the medium field or an unencoded space.
4
Or do a whole table Switch to Batch, paste rows with a header, and take the tagged URLs away as CSV. The delimiter is detected, so a paste from a spreadsheet works.

What to Know About UTM Parameters

Including what must never go in one.

UTM parameters are visible in the address bar, so they must never carry anything private. They are shared, pasted into chats, copied into documents, kept in browser history, written into server logs and passed to every analytics and advertising script on the destination page. Putting an email address, a customer number, a phone number or an order reference in utm_content hands that identifier to everyone in the chain, and it is a data protection problem rather than a style one. This page warns when a value looks like one of those.
UTM values are case sensitive, so Facebook and facebook become two rows in your report. Google Analytics does not normalise them, and neither does anything else that reads them, which is why a year of tagging by hand produces a channel report with Email, email and E-mail in it. The normalising switch here lower cases the values and turns spaces into hyphens, which is the convention almost everyone lands on eventually.
Source and medium mean different things, and swapping them is the usual mistake. Medium is the kind of channel and there are only a few of them: email, cpc, social, affiliate, referral. Source is the specific place: newsletter, google, facebook, partner-acme. A utm_medium=facebook gives you a separate channel line for every platform instead of one paid social group, and the reading below says so when it sees it.
This page does not shorten, track, validate or send anything. No request is made, so there is no check that the URL resolves, no redirect is followed and no link is registered anywhere. It also cannot tell you whether your analytics is configured to read these parameters, whether your platform strips them on redirect, or whether a campaign name has already been used. It builds and reads text.

Key Features & Capabilities

What this tool does, and what it deliberately does not.

All six parameters The five standard ones plus utm_id, with presets for the common channels.
Values normalised Lower case and hyphens, so one channel does not become three report rows.
Reads a URL back A table with a plain English reading and the usual mistakes named.
Batch from a table Paste rows with a header, get tagged URLs out, copyable as CSV.
Private data warning A value that looks like an email address or a customer id is flagged.
Nothing is sent No request, no shortener, no account. The URLs stay in your tab.

About the UTM Builder

UTM parameters are five pieces of text appended to a URL, and the whole system works on the assumption that everyone who ever tags a link spells them the same way. That assumption fails immediately. Someone writes Email, someone writes e-mail, someone puts facebook in the medium field, and six months later the channel report has forty lines that should have been six. None of it is recoverable afterwards, because the tools store what you sent them.

So this page does both halves. Building is the easy half: the six fields, presets for the channels most organisations use, and a normalising switch that lower cases and hyphenates so the same value comes out the same way every time. There is also a naming convention with tokens for the year, quarter, medium and name, which can be remembered in this browser, because a convention nobody can find is a convention nobody follows.

Reading is the more useful half. Paste a tagged URL and each parameter is shown with its value and a sentence saying what it claims, plus a warning where something is wrong: a source sitting in the medium field, a raw space that should have been encoded, the same parameter twice, capital letters that will split your report, or a value that looks like an email address or a customer number and should never have been in a URL at all. The batch mode exists because tagging is rarely one link.

Frequently Asked Questions

Source against medium, case, utm_id and batch tagging.

Medium is the kind of channel and there should only be a handful across your whole organisation: email, cpc, social, paid-social, affiliate, referral. Source is the specific place within that channel: newsletter, google, facebook, partner-acme. If your medium is the name of a platform, the two have been swapped, and your channel grouping is broken until you fix it.

Because nothing normalises these values for you. Google Analytics stores Facebook and facebook as different sources, so they appear as separate rows and every number about that channel is split between them. There is no way to merge them retrospectively without editing the data. Pick lower case with hyphens, which is what the switch on this page does, and apply it to everything.

It carries your advertising platform's campaign id, so analytics can join what it sees on your site to the cost and impression data from the ad platform. In Google Analytics 4 it is what the data import for campaign cost matches on. It is optional, it is only useful if you actually import that data, and it should be the platform's id rather than a name you invented.

No. It would work, and it is a bad idea. The URL is visible in the address bar, ends up in browser history, is passed to every script on the destination page, appears in server logs and is pasted into chats and documents when someone shares the link. Personal identifiers in a URL are a data protection problem. Use your email platform's own per-recipient tracking, which keeps the identifier out of the address.

A table with a header row, pasted into the box on the left, with any of the columns url, source, medium, campaign, term, content and id, with or without the utm_ prefix. The delimiter is detected, so a paste straight out of a spreadsheet works. Rows without a url column use the base URL field, and the output is CSV with the tagged URL in the first column.

Other Developer Tools

Advertisement Slot (Bottom Banner) Google AdSense Unit • Responsive Banner