免费工具 UTM 参数检查 · 批量校验推广链接
把投放表、公众号文章、短信模板里的推广链接一次贴进来。每条都按会让报表拆行、让流量掉进「未分配」的常见错误检查一遍,同时告诉你它在 GA4 里会归到哪个渠道——在链接发出去之前就改好。
- 一次最多 2,000 条
- 每条标出 GA4 渠道
- 本地检查
批量检查 UTM 链接
一行一个网址。示例是三个同事各自打标的双 11 链接,混着 6 种常见错误;换成你自己的清单即可。
一行一个网址;从表格里整列复制过来也可以,空行会跳过。
检查条数
7
三件套齐全
6
source、medium、campaign 都有。
有错误
1
参数会丢失或被读错。
有警告
4
参数能读到,但报表会拆行或归错渠道。
逐条结果
GA4 渠道:Google 对手动打标流量的默认渠道分组。TapCub 渠道:TapCub 默认渠道规则,按「点进来时没有来源页」算(短信、二维码、App 内打开、直接粘贴都是这种情况)。
| 行 | 网址 | utm_source | utm_medium | utm_campaign | GA4 渠道 | TapCub 渠道 | 状态 |
|---|---|---|---|---|---|---|---|
| 1 | https://shop.example.cn/double11?utm_source=weixin&utm_medium=social&ut… | weixin | social | double11 | 自然社交 | 社交 | 正常 |
| 2 | https://shop.example.cn/double11?utm_source=WeChat&utm_medium=Social&ut… | WeChat | Social | Double11 | 自然社交 | 社交 | 要看 |
| 3 | https://shop.example.cn/double11?utm_source=baidu&utm_medium=cpc&utm_ca… | baidu | cpc | double11 | 付费搜索 | 付费搜索 | 正常 |
| 4 | https://shop.example.cn/double11?utm_source=douyin&utm_medium=feed&utm_… | douyin | feed | double11 | 未分配 | 付费社交 / 信息流 | 要看 |
| 5 | https://shop.example.cn/#/double11?utm_source=xiaohongshu&utm_medium=so… | — | — | — | 直接 | 直接访问 | 要改 |
| 6 | https://shop.example.cn/double11?utm_source=sms&utm_medium=sms&utm_camp… | sms | sms | double 11 | 短信 | 短信 | 要看 |
| 7 | https://shop.example.cn/double11?utm_source=edm&utm_medium=newsletter&u… | edm | newsletter | double11 | 未分配 | 邮件 | 要看 |
要改的地方
- 警告utm_medium 在这批链接里有 2 种写法:social / Social。报表会把每种写法算成单独一行,统一成一种。
- 警告utm_campaign 在这批链接里有 3 种写法:double11 / Double11 / double 11。报表会把每种写法算成单独一行,统一成一种。
- 警告第 2 行utm_source=WeChat 有大写字母。UTM 值在报表里区分大小写,「WeChat」和全小写的写法会变成两行。
- 警告第 2 行utm_medium=Social 有大写字母。UTM 值在报表里区分大小写,「Social」和全小写的写法会变成两行。
- 警告第 2 行utm_campaign=Double11 有大写字母。UTM 值在报表里区分大小写,「Double11」和全小写的写法会变成两行。
- 提示第 3 行有 bd_vid:百度营销 自动加的广告点击 ID,保留即可,它把这次访问和广告点击对应起来。
- 警告第 4 行GA4 的默认渠道里没有 medium「feed」,这部分流量会归到「未分配」。改用标准值,如 email、social、cpc、referral、affiliate。
- 提示第 4 行有 clickid:巨量引擎 自动加的广告点击 ID,保留即可,它把这次访问和广告点击对应起来。
- 错误第 5 行「#」写在了「?」前面,所有参数都跑进了 # 后面的片段里。浏览器不会把 # 后面的内容发给服务器,统计代码也只从 ? 后面读 UTM。Vue / React 的 hash 路由常出这个问题:把参数放到 # 前面,或改用 history 路由。
- 警告第 6 行utm_campaign 里有直接敲的空格。有些地方(短信、公众号菜单)会在空格处截断链接,换成下划线或连字符。
- 警告第 7 行GA4 的默认渠道里没有 medium「newsletter」,这部分流量会归到「未分配」。改用标准值,如 email、social、cpc、referral、affiliate。
版本 v1.0更新于 更新记录
错误、警告和两列渠道
每个问题都标了行号,回到投放表里改源头,而不是事后在报表里合并。
错误:参数会丢
「#」写在「?」前面、参数写进 # 后面、参数名写成 utm-source 或 UTM_Source、缺 source。这些访问到了统计里是没打标的,会算成直接访问或外链。链接发出去之前必须改。
警告:报表会拆行
大写、空格、同一个值的不同写法,数据能进来,但 WeChat 和 wechat 会是两行;不认识的 medium 会让流量掉进「未分配」。整批检查能发现单条看都没问题、放在一起才露馅的写法不一致。
GA4 渠道
按 GA4 默认渠道分组,用 source、medium、campaign 算出的渠道。渠道规则不分大小写,报表却分,所以 Social 仍归「自然社交」,但在来源 / 媒介表里单独一行。「未分配」「付费其他」通常是 medium 或 source 写了 GA4 不认识的值。
TapCub 渠道
按 TapCub 默认渠道规则、假设点进来时没有来源页算出的渠道。TapCub 认识国内平台:feed(信息流)、bd_vid(百度)、clickid(巨量引擎)、gdt_vid(腾讯广告)等,所以有些链接两列不同。「无 UTM」的行两边都按来源页归类。
GA4 对 Google Ads、DV360、CM360、SA360 的流量另有一套按平台数据判断的规则,不在本工具范围内:只带 gclid 的链接显示为「Google Ads(自动标记)」。百度统计、友盟等国内工具有各自的推广参数,以各自文档为准。
链接发出去之前查一遍
短信发出、公众号推送、广告过审之后再发现 UTM 写错,就只能在报表里手工合并了。
-
1
收集链接
从投放排期表复制网址那一列,或者把公众号文章、短信模板、广告后台导出的落地页链接贴进来,一行一条。
-
2
先改错误
错误意味着参数会丢。然后处理整批的写法警告:source、medium、campaign 各定一种写法,全部统一。
-
3
看渠道列
每条都应该落在你预期的渠道。出现「未分配」或「付费其他」,就把 medium 或 source 换成标准值,再用批量 UTM 生成器重新生成。
GA4 怎么决定默认渠道
GA4 对手动打标的流量按下表顺序逐条匹配,命中第一条就停。「搜索 / 社交 / 视频 / 购物网站」指 source 在 Google 公布的来源清单里(本工具用的版本共 819 个),整串比较、不分大小写。清单以海外网站为主:wechat、weibo、baidu、sogou 在里面,weixin、douyin、xiaohongshu、zhihu、bilibili 不在。
- 付费 medium 的正则是
^(.*cp.*|ppc|retargeting|paid.*)$,含「cp」就算付费,cpm也是 - 渠道判定不分大小写,报表里的值保持原样
- 来源:Google Analytics 帮助「[GA4] 默认渠道组」
| 渠道 | 命中条件 |
|---|---|
| 直接 | source 是 (direct) 且 medium 是 (not set) 或 (none) |
| 跨网络 | campaign 含 cross-network |
| 付费购物 | (购物网站,或 campaign 符合 shop 正则)且付费 medium |
| 付费搜索 / 社交 / 视频 | 搜索 / 社交 / 视频网站,且付费 medium |
| 展示广告 | medium 是 display、banner、expandable、interstitial、cpm 之一 |
| 付费其他 | 付费 medium,source 不在清单里 |
| 自然购物 / 社交 / 视频 / 搜索 | 在对应清单里,或 medium 是 social 及其变体、含 video、等于 organic |
| AI 助手 | medium 是 ai-assistant |
| 引荐 | medium 是 referral、app、link |
| 电子邮件 | source 或 medium 是 email、e-mail、e_mail、e mail |
| 联属网络 · 音频 · 短信 | medium 为 affiliate · medium 为 audio · source 或 medium 为 sms |
| 移动推送通知 | medium 以 push 结尾,或含 mobile、notification,或 source 是 firebase |
| 未分配 | 以上都没命中 |
双 11 示例逐条看
三个同事给同一个活动打的标。检查器查出的问题、对报表的影响和改法:
| 行 | 问题 | 影响 | 改法 |
|---|---|---|---|
| 2 | WeChat、Social、Double11 | 仍归「自然社交」,但来源、媒介、活动表各多一行;weixin 和 wechat 也是两行 | 统一成 wechat,全小写 |
| 3 | 有 bd_vid | 无影响,百度营销自动追加 | 保留 |
| 4 | medium 为 feed | GA4:未分配;TapCub:付费社交 / 信息流(按 clickid) | 改成 cpc:GA4 不认识 douyin,会归「付费其他」 |
| 5 | #/double11 在 ? 前(hash 路由) | 参数读不到,算直接访问 | 参数挪到 # 前面 |
| 6 | campaign 里有空格 | 短信里可能在空格处截断 | 改成 double11 |
| 7 | medium 为 newsletter | GA4:未分配;TapCub:邮件 | 改成 email |
改完之后 7 条都是同一个活动 double11,GA4 里分在自然社交、付费搜索、付费其他(抖音)、短信、电子邮件 5 个渠道。想让抖音归「付费社交」,要在 GA4 里建自定义渠道组。
UTM 打标常错在哪
活动数据乱,多半不是统计工具的问题,而是打标习惯。
大小写、拼音英文混用
WeChat、wechat、weixin、wx 在报表里是四个来源。活动开始前定一张 source 取值表,全部小写。
# 写在 ? 前面
落地页本身带锚点或用了 hash 路由,再在后面拼 ?utm_…,参数就进了 # 片段,统计读不到。# 永远放最后。
medium 自己起名
wechat_article、newsletter、qr 当 medium,GA4 没有对应渠道,全部进「未分配」。有创意的名字放在 campaign 和 content 里。
站内链接也打标
首页 banner 跳活动页也加 UTM,会在访问中途开启新的「活动」,覆盖访客真正的来源。站内点击用事件统计。
活动参数在访问进来时就读好
TapCub 从落地页网址读取 UTM 参数和广告点击 ID,按有顺序的渠道规则把每次访问归到一个渠道,并记在访客档案上。
UTM 是什么意思?
UTM 是加在网址 ? 后面的一组参数,用来告诉统计工具这次访问来自哪个推广:utm_source(来源,如 wechat)、utm_medium(媒介,如 social、cpc)、utm_campaign(活动名,如 double11),另有可选的 utm_term、utm_content。名字来自 Urchin,Google Analytics 的前身。
怎么检查 UTM 参数写得对不对?
贴到上面的检查框里。正确的链接:utm_source、utm_medium、utm_campaign 都在查询串里(? 之后、# 之前),值全小写、没有空格,medium 能被归到你预期的渠道。检查器会逐条指出不符合的地方和行号。
UTM 参数区分大小写吗?
区分。Google 帮助文档明确说参数值区分大小写:utm_source=wechat 和 utm_source=WeChat 在报表里是两个来源。GA4 的渠道规则不分大小写,所以两者仍归同一个渠道,这也是问题常常到导出来源表时才被发现的原因。
GA4 里活动流量为什么显示「未分配」?
通常是 medium(或 source)匹配不上任何默认渠道规则,比如把 newsletter、wechat_article、feed、qr 当 medium;缺 source 或 medium 也会。把 medium 改成标准值,如 email、social、cpc、referral,完整规则见上方表格。
UTM 参数能放在 # 后面吗?
不能。# 后面是片段,浏览器不发给服务器,统计代码也只从查询串读活动参数。用 Vue / React hash 路由的单页应用最容易出这个问题:要么把参数放到 # 前面(/?utm_source=x#/page),要么改用 history 路由。
微信、抖音、百度投放的链接要注意什么?
百度营销、巨量引擎(抖音 / 头条)、腾讯广告会自动追加 bd_vid、clickid、gdt_vid 这类点击 ID,保留即可。微信内打开、短信、二维码通常没有来源页,渠道全靠 UTM,所以这几类链接一定要打全。GA4 的来源清单认识 wechat、不认识 weixin 和 douyin:微信投放的 source 写 wechat,抖音的付费流量在 GA4 默认分组里只能归「付费其他」,需要的话建自定义渠道组。
为什么同一条链接 GA4 和 TapCub 的渠道不一样?
两套规则相近但不完全相同。TapCub 认识国内平台和点击 ID(微信、抖音、百度、腾讯广告等),把 feed 当付费社交 / 信息流、newsletter 当邮件,并且点击 ID 优先于 UTM;GA4 则有 TapCub 合并掉的渠道,比如音频、移动推送通知。
贴进来的链接会上传吗?
不会。检查在浏览器里完成,不发给 TapCub;也没有分享链接,因为投放清单里可能有还没公开的活动名。