Bulk UTM Code Builder

Tag a whole list of URLs with UTM parameters at once. Enter your source, medium, campaign, term, and content values, paste your URLs, and get a tagged list back.

Instructions

Use this tool to add UTM parameters to a list of URLs. Enter the desired UTM parameters and the URLs, then click "Generate URLs" to see the results.

  1. Fill in the UTM fields you want — UTM Source, UTM Medium, UTM Campaign, UTM Term, and UTM Content. Any field you leave blank is skipped entirely, so it will not appear in the output as an empty utm_term=.
  2. Paste your URLs, one per line.
  3. Click "Generate URLs" — every URL gets the same set of parameters appended.
  4. Copy the output — "Copy" puts the whole tagged list on your clipboard.

Everything runs in your browser. Your URLs are never uploaded to a server.

What UTM Parameters Are

UTM parameters are query-string key/value pairs you append to a link so your analytics platform can attribute the resulting visit to a specific campaign. They do nothing to the page itself — the destination ignores them — but analytics software reads them off the landing URL and records where the visit came from.

A tagged URL is just your normal URL with the parameters on the end:

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch

The Five Parameters

ParameterFieldAnswersExample
utm_sourceUTM SourceWhere is the traffic coming from?newsletter, google, linkedin
utm_mediumUTM MediumWhat kind of channel is it?email, cpc, social, referral
utm_campaignUTM CampaignWhich campaign or promotion is this?spring-launch, black-friday-2026
utm_termUTM TermWhich paid keyword was bought?url+encoder
utm_contentUTM ContentWhich link or variant was clicked?header-cta, variant-b

Source and medium are the pair that most reporting is built on — they are what populate the "source / medium" dimension in Google Analytics, and a link tagged with only one of the two produces a lopsided, hard-to-read row. Campaign groups a set of links together so you can total them. Term is a holdover from paid search and is usually left blank outside of ad campaigns. Content is the tiebreaker: use it when two links in the same campaign point to the same page and you need to tell them apart — the header button versus the footer button, or variant A versus variant B of a test.

Conventions Worth Following

  • Pick a casing and never deviate. Analytics platforms treat UTM values as case-sensitive strings, so Email and email become two separate rows that you then have to add together by hand. Lowercase everything.
  • Pick a word separator and never deviate. spring-launch, spring_launch, and spring launch are three different campaigns as far as your reports are concerned. Hyphens are the common choice.
  • Keep medium to a small, fixed vocabulary. Medium is the coarse channel bucket — email, cpc, social, affiliate. If every campaign invents a new medium, the channel report stops being a summary.
  • Don't tag internal links. UTMs are for traffic arriving from outside your site. Putting them on a link between two of your own pages overwrites the visit's original attribution, so the real source gets thrown away and replaced by your own tag.

How This Tool Handles Your URLs

  • Existing query strings are preserved. A URL that already carries ?ref=partner keeps it and gets the UTM parameters appended alongside.
  • Same-named parameters are overwritten. If a URL already has a utm_source, the value you enter replaces it rather than producing a duplicate key. This makes the tool safe to run over a list that is already partly tagged, and it means you can re-tag a list by pasting the previous output straight back in.
  • Values are encoded for you. Spaces and special characters in your field values are percent-encoded automatically, so a campaign named spring launch produces a valid URL.
  • Lines that aren't valid URLs pass through unchanged and are counted under "Invalid lines" — a stray heading or a bare domain without https:// won't break the rest of the batch, but it won't be tagged either.

The "URLs processed" count tells you how many lines were handled, so you can check it against the number of URLs you meant to paste.

These tools are how Elegant Atomics thinks about growth for B2B SaaS. Work with us. Work with us →