Campaign parameters appended to an address you were going to share anyway, with two checks a hand-built link never gets: which channel group the pair lands in, and whether an anchor will throw the tracking away.
UTM Link Generator - Campaign URL Builder with Channel Check
Campaign parameters appended to an address you were going to share anyway, with two checks a hand-built link never gets: which channel group the pair lands in, and whether an anchor will throw the tracking away.
Parameters
Enter data for calculations
💡 Fill in all required fields to unlock the calculate button
Five short words at the end of an address decide what your reporting can tell you
Analytics can see that someone arrived. It cannot see which newsletter, which post or which of the four buttons in that newsletter they clicked, unless the link itself carries the answer. Campaign parameters are that answer: utm_source, utm_medium, utm_campaign and three optional companions, appended to the address you were going to share anyway.
This builder takes the address and the values, hands back the finished link, and tells you two things a plain string concatenation cannot. First, which default channel group the pair you typed will be filed under, so a medium like qr-print is caught here rather than three weeks later when the report shows a pile of Unassigned. Second, whether the address itself will quietly destroy the tracking: an address ending in an anchor, or one that already carries campaign parameters from a previous round, both do that.
A worked case: liczgrupa.pl/en/tools#pricing with source newsletter, medium email and campaign autumn-launch comes back as https://liczgrupa.pl/en/tools?utm_source=newsletter&utm_medium=email&utm_campaign=autumn-launch#pricing, filed under Email. The anchor is still at the end, where it belongs, and the parameters sit in front of it, where they are actually read.
Six fields, and what each one has to answer
- Destination address. The page you want people to land on. The scheme can be left off and https is added for you. If the address already has a query string, its parameters are kept and the campaign values are appended after them.
- utm_source. Where the visit came from, named as a place: newsletter, facebook, partner-blog. One word, no spaces, always spelled the same way. This is the field people most often improvise, and every improvisation becomes a separate row in the report.
- utm_medium. How the visit traveled: email, cpc, social, referral, affiliate. This is the field that decides the channel group, so it is the one worth taking from the table below rather than inventing.
- utm_campaign. The name you will look for in six months. autumn-launch beats campaign2, and a date in the name beats a date in your memory.
- utm_id, utm_term, utm_content. Optional. The ID is what a reporting tool uses to join a campaign to what it cost. Term carries a keyword or an audience. Content separates two links that are otherwise identical, which is the only way to tell a header button from a footer button in the same email.
- Lowercase the values. On by default, and it applies only to the campaign values, never to the path of your address. Read the section on capital letters below before switching it off.
The six parameters, side by side
Three of them carry the attribution and three refine it. The distinction that matters is not which are optional, it is which question each one answers, because a value in the wrong field is invisible rather than wrong.
| Parameter | Required | Question it answers | Good value |
|---|---|---|---|
utm_source | yes | Which place sent them | newsletter, facebook |
utm_medium | yes | By what means they traveled | email, cpc |
utm_campaign | yes | Which effort it belongs to | autumn-launch |
utm_id | no | What it cost, by joining to the ad platform | AW-8891 |
utm_term | no | Which keyword or audience | vat-calculator |
utm_content | no | Which of several identical links | header-cta |
Only utm_content is allowed to differ between two links in the same message. Change the campaign name instead and the two buttons become two campaigns, each with a fraction of the numbers and no way to add them back together.
The medium you type decides the channel group you get
Reporting tools file traffic into channel groups automatically, and the rule is mostly a pattern match on the medium, with the source used to split paid traffic between search, social, video and shopping. The table below lists the values that match a group. Anything outside it lands in Unassigned, which is the single most common reason a campaign appears to have produced no visits at all.
| Medium you type | Source it needs | Group it lands in |
|---|---|---|
cpc, ppc, paid, anything containing cp | a search engine | Paid Search |
| the same paid patterns | a social network | Paid Social |
| the same paid patterns | anything else | Paid Other |
display, banner, cpm, interstitial, expandable | any | Display |
email, e-mail, e_mail | any, or the source itself says email | |
affiliate | any | Affiliates |
organic | any, or a search engine on any medium | Organic Search |
social, social-media, social-network, sm | any, or a social network on any medium | Organic Social |
referral, app, link | any | Referral |
sms, audio, push | any | SMS, Audio, Mobile Push |
newsletter, qr, print, partner, blog | any | Unassigned |
Read the last row twice. newsletter is a perfectly sensible English word for what you are doing, and it matches nothing. It belongs in utm_source, paired with the medium email. The lists of recognized search engines and social networks are maintained by the analytics vendor and are longer than the ones checked here, so a source this tool does not recognize may still be classified correctly on their side. A medium outside the patterns above, though, is unassigned everywhere.
Three links, taken apart
example.com/pricing, source google, medium cpc, campaign brand-defense, ID AW-8891.Result: https://example.com/pricing?utm_source=google&utm_medium=cpc&utm_campaign=brand-defense&utm_id=AW-8891, filed under Paid Search. The ID is what lets the report put spend next to the clicks.
Result: two links identical except for utm_content, and a report that can finally answer whether anyone scrolls to the bottom.
example.com/menu, and the instinct is source qr, medium print.Result: Unassigned, flagged before publication. Turning it round, source window-poster and medium referral, gives Referral and keeps the poster distinguishable from every other offline placement.
example.com/guide#step-4, source blog, medium referral.Result: https://example.com/guide?utm_source=blog&utm_medium=referral&utm_campaign=...#step-4. Written the other way round, with the parameters after #step-4, the link still opens the right section and records 0 attributed visits.
example.com/x?utm_source=old&ref=partner, source facebook, medium social.Result: https://example.com/x?ref=partner&utm_source=facebook&utm_medium=social&utm_campaign=.... The stale utm_source=old is dropped rather than duplicated, ref=partner is untouched, and the removal is reported rather than done silently.
Four ways a tracked link stops tracking
page#section?utm_source=x looks right and records nothing. Everything after the # stays in the browser and is never sent to the server, so the parameters are not merely ignored, they never arrive. The fix is to put them before the anchor, which this builder does for you.
Frequently asked questions
Related tools
SEO Meta Tag Generator
Builds the title, description and social preview tags for the page this link points at, and measures both in characters and in pixels - Open the tool
UUID Generator
Identifiers for the rows your campaign creates, in versions 1, 4 and 7, with a validator that reads the version back out - Open the tool
QR Code Generator
Turns the tracked link into a printable symbol, drawn in your browser as a vector image - Open the tool
Barcode Generator
EAN-13, EAN-8 and UPC-A symbols with the check digit calculated and the prefix explained - Open the tool
Business Name Generator
Name candidates with a matching domain form, useful when the campaign is launching something that has no name yet - Open the tool
Table Generator
Turns a pasted range of campaign links into Markdown or HTML for a brief or a README - Open the tool