UTM Link Builder
Fill the five utm fields, pick from 18 channel presets, then get an encoded link with naming warnings
预设只负责把命名口径统一,campaign 与 content 仍要自己填;同一批物料请用同一个小写连字符名,例如 oct-2026-release。
About this tool
When one campaign goes out across four platforms, the errors are rarely forgotten parameter names. They are the same campaign spelled three ways, a missing utm_medium, Chinese pasted in raw, or old utm values left in place so reports only read the last set. This builder splits the five parameters into fields and lists the traps as you go:
- Five standard fields:
utm_sourcefor who sent the traffic,utm_mediumfor the channel type,utm_campaignfor which campaign,utm_termfor the paid keyword,utm_contentfor which creative sat in that spot, each with notes on what belongs there - 18 channel presets: WeChat account, Moments, Weibo, Xiaohongshu, Douyin, Zhihu, Bilibili, Baidu organic, Baidu CPC, Google organic, Google Ads, Facebook, newsletter, SMS, KOL, partner, affiliate and offline poster fill source and medium in one click; 13 common mediums change only the channel
- Parse an existing link: paste it and send utm values into the fields and other parameters into the custom area; uppercase keys such as
UTM_SOURCEare recognized and values are decoded first - Replace or keep: by default old utm parameters not present in the form are removed so a link never carries two
utm_sourcevalues; keep the originals with one checkbox, while non-utm parameters such asfromandidalways stay - Fixed order: source, medium, campaign, term, content, then custom parameters, so links in a batch can be compared line by line
- Status per parameter: added, replaced, kept, removed or duplicate ignored, so you can see exactly what built the final link
- Percent-encoding: spaces become
%20and Chinese becomes%xx;&,=,?and#cannot break the structure, and encoding can be turned off - Naming warnings: empty medium, missing campaign, term on a non-paid channel, uppercase letters, a
%that would be double encoded, values over 40 characters, invalid custom keys and links over 2000 characters - Batch variants: pick one parameter, usually
utm_content, write one value per line up to 30 lines, and get every link deduplicated with empty lines counted - Length stats: total length, URL part, query part, parameter count and utm count update live
- Browser only: no API call and no upload, so campaign addresses and internal links stay on your machine
When to use it
- The same assets go to several platforms and the campaign name must match exactly everywhere
- You inherited old links and need to pull scattered utm values apart and normalize them
- A post needs one link in the body and one at the end, counted separately with utm_content
- A long paid keyword list needs a batch of utm_term links at once
- Each newsletter issue or placement needs its own parameter set
- An A/B landing page needs distinguishable values to compare the two versions
What each parameter answers
| Parameter | Question | Example | If left empty |
|---|---|---|---|
| utm_source | Who sent the traffic | weibo, baidu, newsletter | Reports show some social traffic but not the platform |
| utm_medium | Which channel type | social, cpc, email, referral | Falls into (none) or (not set) and mixes with organic traffic |
| utm_campaign | Which campaign | oct-2026-release | Channels of one campaign cannot be compared side by side |
| utm_term | Which paid keyword | chinese-pinyin | Affects paid reports only; organic search never exposes the term |
| utm_content | Which creative in that spot | banner-top, text-link | Both A/B versions merge into one row and cannot be judged |
Only utm_medium is a hard requirement for report grouping, so an empty medium gets a yellow warning while the other fields get a hint.
Naming rules cause more trouble than the parameters
- Case sensitive:
Weiboandweiboare two sources in reports, so uppercase letters trigger a warning - Use hyphens, not spaces: write
banner-top, since a space becomes%20and is awkward to read off printed material - Keep campaign names out of source: source is the platform only; utm_campaign carries the campaign, otherwise paid and organic traffic from one platform blend together
- Prefer English or pinyin values: encoded Chinese grows several times longer, and the tool suggests switching
- One campaign name across channels: a pattern such as
oct-2026-releasesorts well in later reviews and cannot be confused with another campaign
Common questions
- What if I set utm_source but no utm_medium? Reports group by medium, so those visits land in (none) or (not set) and disappear from the channel view; the result panel warns you
- Do utm parameters affect SEO? They are query strings for analytics grouping and do not change ranking, but do not use tagged URLs in site navigation or sitemaps; the canonical should point to the clean address
- Can I still see organic keywords? Search engines hide the actual terms, so
utm_termis for paid keywords only; when the medium is not a paid type such as cpc, cpm, paid, display or affiliate, the tool suggests leaving it empty - Do parameters survive short links or platform redirects? Some proxies and shorteners rewrite the query string, so parse the link before and after the campaign to compare, using the URL parser section by section
- How long is too long? The tool warns past 2000 characters, a conservative threshold; in a QR code more parameters mean a denser pattern and worse scanning in low light
- What is the difference between parsing and appending? Parsing loads old utm values into the fields so the rebuilt link carries one set; keeping originals leaves them in place. The status rows show which path ran, with removed or replaced markers
- Are platform-specific parameters supported? Yes, up to eight custom key-value pairs for fields such as
gdt_vid; keys allow letters, digits, dots, underscores and hyphens, and invalid ones are flagged - Why is the order fixed? Links in one batch can be compared line by line, so a missing parameter or extra space is visible at a glance
- What next? Send the link to the QR code generator for printed material, or use the URL encoder for a single conversion; after launch, paste the address you actually landed on back in to confirm no middle layer rewrote it
All building, parsing and checking run in the browser and clear when the page closes; campaign addresses and parameters are never uploaded.