What are UTM parameters and how do they work?
UTM parameters are name and value pairs you add to the end of a link so analytics can record where a visit came from. Google Analytics defines nine, and its own help page says you should always use utm_source, utm_medium and utm_campaign; the other six are optional. The values are read literally: Google states that parameter values are case sensitive, so utm_source=Instagram and utm_source=instagram are two separate sources.
That literalness is where campaign data usually breaks. A space, a stray capital, or a second utm_source already on the URL you pasted won't throw an error anywhere. It will quietly split one campaign across several rows in your reports, weeks after the link went out. This builder checks all three before you copy.
How this builder works
- Paste your destination. Any utm parameter already sitting on that URL is replaced rather than duplicated.
- Fill the three. Source, medium and campaign are the ones Google's own documentation tells you to always set.
- Read the checks. Case, spaces, duplicates and fragments are flagged inline, then copy the exact string shown.
How the link is assembled
What this catches that a plain builder does not
- Duplicate parameters. Paste a URL that already carries utm_source and the builder replaces it, names what it replaced, and ships one value per parameter.
- Case that splits reports. A capital anywhere in a value is flagged as you type, and one button lowercases every field at once.
- Encoding you can see. Spaces become %20 in the visible output string. What you copy is exactly what your analytics will receive.
- All nine GA4 parameters. utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic sit behind one toggle, not in a blog post.
Nine documented parameters, and who actually offers them
We opened thirteen free UTM builders in August 2026 and counted which of Google's nine documented parameters each one gives you a real form field for, not just a paragraph explaining it.
The middle column comes from Google Analytics Help, URL builders: Collect campaign data with custom URLs (August 2026). Google's own Campaign URL Builder is one of the five offering utm_id and one of the thirteen offering none of the last three.
Four rules that keep data clean
- Lowercase everything, always. Google's help page states parameter values are case sensitive. One capital creates a second row in your reports.
- Pick medium from Google's list. Its Default channel group page files a visit as Organic Social only for six exact medium values.
- Put the tag on your own page. Parameters belong on the landing page you control; a redirect can drop a query string on the way.
- Write the campaign name down. Reports group on the exact string, so spring sale and spring-sale never merge back together later.
Three ways UTM links break
Tagging a redirect
A shortener or a profile link can drop the query string before the page you own ever sees it.
Mixing upper and lower case
Google reads Instagram and instagram as two sources, so one campaign lands in two separate report rows.
Leaving the old parameters on
A pasted URL often already carries utm_source, and appending a second gives analytics two values to choose between.
A UTM link fails silently. Nothing warns you that a capital letter, a space or a duplicate parameter just split one campaign into three report rows. Check the string before you send it, because you cannot fix attribution after the clicks arrive.
Track the click, then answer it
A tagged link tells you which post drove the visit. Inrō turns the comment behind it into a DM in seconds. The free plan covers 100 active contacts a month and 3 automations.
Start for free
Trusted by 10,000+ creators and brands
, including Walmart & Yoyomatch

Frequently asked questions
A UTM parameter is a name and value pair added to the end of a web address so analytics software can record where the visit came from. They live in the query string, after the question mark, and look like utm_source=instagram. Nothing about them is magic. The browser sends the whole URL, your analytics tool reads the parameters it recognises, and your web server usually ignores them entirely. Which means nothing anywhere validates what you typed. If you spell a value wrong, the click still lands on your page, and the wrong label is what your reports keep. Checking the string before you publish it is the only correction step you get.
Which UTM parameters are required?
Google Analytics will not reject a link for missing one, but its own documentation is specific about which three to set. The GA4 help page URL builders: Collect campaign data with custom URLs (August 2026) says that when you add parameters to a URL you should always use utm_source, utm_medium and utm_campaign. The same page strongly recommends utm_id and utm_source_platform alongside them, and treats utm_term, utm_content, utm_creative_format and utm_marketing_tactic as optional. In practice utm_source and utm_medium do the heavy lifting, because Google's channel grouping rules read those two to decide whether a visit is filed under Organic Social, Paid Social or something else. utm_campaign is what groups the visits together once they arrive.
Are UTM parameters case sensitive?
Yes, and this is the most common way campaign data quietly falls apart. Google's help page states that parameter values are case sensitive, giving utm_source=google and utm_source=Google as its own example, and adds that case sensitivity applies to each value you define. The practical result is that a link tagged Instagram in a story and instagram in a bio produces two rows in your reports for what you think of as one campaign, and no report merges them back together. There is no setting that repairs this after the clicks arrive. The habit that prevents it is simple: lowercase everything, every time. This builder flags a capital as you type and offers one button that lowercases every field at once.
Do UTM parameters work on Instagram DM links?
Not on the message link itself. We tested this on 2 August 2026 with a direct HTTP request: an ig.me message link carrying utm_source, utm_medium and utm_campaign returned a 302 redirect whose Location header pointed at the plain instagram.com address with the entire query string removed. The same happened with a second username, with Meta's own documented ref parameter, and across three repeat runs, while a control request to an ordinary website kept its query string. Two caveats: this measures the HTTP redirect, not what the Instagram app does after the handoff, and Meta can change it without notice. Either way the practical answer holds. Tag the landing page you own, and send that tagged link inside the conversation the DM link opens.
Where do I see UTM data in Google Analytics 4?
In GA4 the values arrive as acquisition dimensions. Session source, Session medium and Session campaign map directly to utm_source, utm_medium and utm_campaign, and you will find them in the Acquisition reports or as dimensions in any exploration you build. Two things tend to surprise people. First, the data is not instant, so a link you published an hour ago may not have settled into the reports yet. Second, utm_creative_format and utm_marketing_tactic are documented by Google but, as its own help page notes, are not currently reported in Google Analytics properties, so setting them costs nothing and shows nothing today. If a campaign turns up under Unassigned instead of Organic Social, the utm_medium value is almost always the reason.
What are utm_source_platform, utm_creative_format and utm_marketing_tactic?
They are the three parameters GA4 added beyond the classic five, and two of them do nothing visible yet. utm_source_platform names the platform that sent the traffic, useful when one ad network fronts several placements. utm_creative_format describes the creative type, with display, native, video and search as Google's own examples. utm_marketing_tactic records the targeting approach, such as remarketing or prospecting. Google's help page notes that utm_creative_format and utm_marketing_tactic are not currently reported in Google Analytics properties, worth knowing before you build a naming convention around them. Setting them today is a bet that reporting arrives later, not a way to see anything now. When we opened thirteen free UTM builders in August 2026, none offered a field for any of the three.
Should a space be %20 or a plus sign?
Both usually decode back to a space, but they do not mean the same thing. Percent encoding writes a space as %20, and every URL parser reads it that way. The plus sign only means a space under form encoding rules, the convention browsers use when submitting a form, so whether it survives depends on what reads the URL. This builder writes %20, which is why the default example shows utm_campaign=spring%20sale. Google's own Campaign URL Builder assembles its query string with URLSearchParams, which produces a plus sign instead. Neither is wrong. The safer habit is to sidestep the question entirely by using a hyphen or an underscore in campaign names, so no encoding decision is ever made on your behalf.
What happens if my URL already has UTM parameters?
Most builders simply add more, and you end up with a URL carrying utm_source twice. Analytics tools do not error on that. They pick one value, and which one is neither visible nor under your control. This builder reads the URL you paste first, removes any utm parameter already on it, names the ones it removed, then appends the values you typed, so one of each ships. Query parameters that are not UTM parameters are left alone and kept in front of the campaign block. Fragments are handled too: if your URL ends in a hash, the parameters go before it, where analytics reads them. None of the thirteen free builders we tried in August 2026 warned about any of this.
Is this UTM builder free, and does my link go anywhere?
It is free, ungated and entirely local. There is no account, no email step and no cap on how many links you build. The whole tool is one block of HTML and JavaScript running inside your own browser tab, so the destination URL you paste and every value you type stay on your device. Nothing is uploaded, logged, kept between visits, or shortened through a third party. You can confirm that yourself: open your browser's network tab, build a link, and you will see no outbound request at all. It also means the builder keeps working if your connection drops, and closing the tab clears everything you entered.
Kshitij runs the growth experiments and looks after client success from first trial to enterprise rollout at Inrō. The advice in these tools comes from funnels he has tested on real accounts, and from the support tickets that follow when a setup goes wrong.