Skip to main content
Free tool

UTM link builder

Tag one campaign across email, social and ads in a single pass - with the capitalisation and spacing problems that split your reports fixed before they happen.

Your campaign

A query string or a #section already on it is handled.
What groups the clicks together.

Where you are sharing it

One link per row. Leave rows blank if you have fewer.

Content and term (rarely needed)

An example

One campaign across three channels, on an address that already has a query string and a #section - so you can see the hard part before typing anything.

newsletter via email
https://example.com/summer-offer?ref=card&utm_source=newsletter&utm_medium=email&utm_campaign=summer-offer-2026#book
facebook via social
https://example.com/summer-offer?ref=card&utm_source=facebook&utm_medium=social&utm_campaign=summer-offer-2026#book
google via cpc
https://example.com/summer-offer?ref=card&utm_source=google&utm_medium=cpc&utm_campaign=summer-offer-2026#book
Keep the tags consistent and the reports stay readable. Pick one spelling for each source and reuse it forever - that is the whole discipline. Webkio records these against a signup, each tag truncated at 120 characters, so you can see which campaign produced an account.

Questions

Because capitalisation and spaces split a campaign. "Facebook", "facebook" and "FaceBook" are three separate sources in every analytics tool, and "summer sale" arrives encoded differently depending on who clicked the link - so a month later your one campaign is spread across four rows and the totals mean nothing. Everything it changed is listed, so nothing happens behind your back.

Source and campaign. Source is where the click came from ("newsletter", "facebook") and campaign is what groups them ("summer-offer-2026"). Medium is the kind of channel ("email", "social", "cpc") and is worth adding. Content and term are for telling two versions of the same ad apart, and most small businesses never need them.

That is handled, and it is the thing most builders get wrong. An existing query string is kept and extended with "&". A "#fragment" is moved to the end - appended naively, the tags land inside the fragment, are never sent to the server and are recorded by nothing at all. Tags already on the link are replaced rather than duplicated, because two utm_source values on one URL is undefined and different tools read a different one.

For getting the tag recorded here, yes: Webkio stores each one truncated to 120 characters, so anything longer is cut off when somebody signs up. Other analytics tools have their own limits. Short tags are easier to read in a report anyway.

Yes - these are the five standard utm parameters, which GA4 and effectively every other analytics tool read natively. Nothing here is specific to Webkio except the 120-character note above.

More free tools

See all free tools