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.
- 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=. - Paste your URLs, one per line.
- Click "Generate URLs" — every URL gets the same set of parameters appended.
- 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
| Parameter | Field | Answers | Example |
|---|---|---|---|
utm_source | UTM Source | Where is the traffic coming from? | newsletter, google, linkedin |
utm_medium | UTM Medium | What kind of channel is it? | email, cpc, social, referral |
utm_campaign | UTM Campaign | Which campaign or promotion is this? | spring-launch, black-friday-2026 |
utm_term | UTM Term | Which paid keyword was bought? | url+encoder |
utm_content | UTM Content | Which 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
Emailandemailbecome 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, andspring launchare 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=partnerkeeps 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 launchproduces 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 →