免费工具 URL 参数解析:网址拆开,参数逐个解码
把推广链接、跳转网址或者一整列网址粘进来:每条拆成协议、域名、路径、参数和 # 片段,%E6%B4%BB 这样的编码还原成中文;UTM 和广告点击 ID 标出属于哪个平台,统计读不到的写法(参数写在 # 后面、大小写不一、重复参数)逐条指出来。
- 一次最多 200 条
- UTM 和 18 个点击 ID
- 本地解析
拆解网址
一行一条网址。示例是双 11 的三条推广链接:微信广告、百度搜索广告、抖音 H5(哈希路由)。另外两组示例分别是广告宏和开发场景(小程序路径、中文域名、App 链接)。
完整网址、省略 https:// 的网址、App 链接(myapp://…)或小程序页面路径都可以。最多 200 行。
网址
3
参数
12
查询串和片段里的都算。
跟踪参数
11
UTM、点击 ID 和其它已知的跟踪参数。
有问题的网址
2
有错误或警告的条数。
检查结果
- 警告第 1 行utm_source=WeChat 含大写字母。报表里 UTM 的值区分大小写,WeChat 和 wechat 会分成两行。
- 提示第 1 行按 TapCub 默认渠道规则,带 gdt_vid 的访问直接归到「付费社交」,优先于 UTM。
- 提示第 2 行按 TapCub 默认渠道规则,带 bd_vid 的访问直接归到「付费搜索」,优先于 UTM。
- 错误第 3 行UTM 写在 # 后面(utm_source, utm_medium)。# 后面的片段不会发给服务器,统计脚本读的是 ? 后面的查询串,这些参数会丢。把它们移到 # 前面。
网址结构
| 行 | 部分 | 值 |
|---|---|---|
| 1 | 协议 | https |
| 1 | 域名 | www.example.cn |
| 1 | 端口 | 443(默认) |
| 1 | 路径 | /%E6%B4%BB%E5%8A%A8/double11 → /活动/double11 |
| 1 | 查询串 | ?utm_source=WeChat&utm_medium=social&utm_campaign=double11&gdt_vid=wx0abcd1234efgh |
| 1 | 片段(#) | — |
| 2 | 协议 | https |
| 2 | 域名 | m.example.cn |
| 2 | 端口 | 443(默认) |
| 2 | 路径 | /landing |
| 2 | 查询串 | ?bd_vid=11706542713963412345&utm_source=baidu&utm_medium=cpc&utm_campaign=brand |
| 2 | 片段(#) | — |
| 3 | 协议 | https |
| 3 | 域名 | h5.example.cn |
| 3 | 端口 | 443(默认) |
| 3 | 路径 | / |
| 3 | 查询串 | — |
| 3 | 片段(#) | #/detail?id=88&utm_source=douyin&utm_medium=feed&clickid=EM4T8Q2vX9 |
参数
解码后的值;原文和解码结果不同时才显示原文。
| 行 | 参数名 | 值(解码后) | 原文 | 类型 | 位置 |
|---|---|---|---|---|---|
| 1 | utm_source | WeChat | — | UTM | 查询串 |
| 1 | utm_medium | social | — | UTM | 查询串 |
| 1 | utm_campaign | double11 | — | UTM | 查询串 |
| 1 | gdt_vid | wx0abcd1234efgh | — | 点击 ID · 腾讯广告 | 查询串 |
| 2 | bd_vid | 11706542713963412345 | — | 点击 ID · 百度营销 | 查询串 |
| 2 | utm_source | baidu | — | UTM | 查询串 |
| 2 | utm_medium | cpc | — | UTM | 查询串 |
| 2 | utm_campaign | brand | — | UTM | 查询串 |
| 3 | id | 88 | — | 普通参数 | # 后面 |
| 3 | utm_source | douyin | — | UTM | # 后面 |
| 3 | utm_medium | feed | — | UTM | # 后面 |
| 3 | clickid | EM4T8Q2vX9 | — | 点击 ID · 巨量引擎 | # 后面 |
https://www.example.cn/%E6%B4%BB%E5%8A%A8/double11
https://m.example.cn/landing
https://h5.example.cn/#/detail?id=88去掉 UTM、点击 ID 和其它跟踪参数,其余照原样保留。
[
{
"url": "https://www.example.cn/%E6%B4%BB%E5%8A%A8/double11?utm_source=WeChat&utm_medium=social&utm_campaign=double11&gdt_vid=wx0abcd1234efgh",
"scheme": "https",
"host": "www.example.cn",
"port": null,
"path": "/%E6%B4%BB%E5%8A%A8/double11",
"query": {
"utm_source": "WeChat",
"utm_medium": "social",
"utm_campaign": "double11",
"gdt_vid": "wx0abcd1234efgh"
},
"fragment": null
},
{
"url": "https://m.example.cn/landing?bd_vid=11706542713963412345&utm_source=baidu&utm_medium=cpc&utm_campaign=brand",
"scheme": "https",
"host": "m.example.cn",
"port": null,
"path": "/landing",
"query": {
"bd_vid": "11706542713963412345",
"utm_source": "baidu",
"utm_medium": "cpc",
"utm_campaign": "brand"
},
"fragment": null
},
{
"url": "https://h5.example.cn/#/detail?id=88&utm_source=douyin&utm_medium=feed&clickid=EM4T8Q2vX9",
"scheme": "https",
"host": "h5.example.cn",
"port": null,
"path": "/",
"query": {},
"fragment": "/detail?id=88&utm_source=douyin&utm_medium=feed&clickid=EM4T8Q2vX9"
}
]同名参数出现多次时写成数组。
版本 v1.0更新于 更新记录
每张表告诉你什么
上面四个计数,下面依次是检查结果、网址结构、参数表,以及两份可以直接复制的结果。
网址结构
协议、域名、端口、路径、查询串和片段,和浏览器看到的一致。中文域名同时显示两种写法(xn--fiqs8s.cn → 中国.cn),编码过的中文路径在旁边还原成中文。
参数表
每个参数的名字和解码后的值。「类型」一列标出 UTM、TapCub 识别的 18 个点击 ID、其它已知跟踪参数,以及大小写写错的 UTM / 点击 ID。写在 # 后面的参数标红,统计读不到。
检查结果
「错误」会让归因失效(参数在 # 后面、编码坏了);「警告」会让报表数据分裂或丢失(大写、重复参数、宏没替换);「提示」说明 TapCub 会怎么处理这个点击 ID。
干净网址和 JSON
干净网址去掉跟踪参数、其它照原样保留,适合填 canonical 或转发给别人。JSON 给开发用:结构加参数对象,同名参数写成数组。
解析按浏览器实现的 WHATWG URL 标准,同时另外按原文扫一遍,所以浏览器会悄悄「修正」的问题(比如 ? 写在 # 后面)也会报出来。
三步
不用安装,也不用点「解析」按钮。
-
1
粘贴网址
从广告后台预览、短信、邮件、服务器日志或地址栏复制,一行一条;从 Excel 复制一整列也行。
-
2
看检查结果
先改错误:参数在 # 后面、编码坏了、网址读不出;再看警告,比如大写字母、同一个参数传了两次。
-
3
复制需要的结果
从参数表里复制某个解码后的值,复制干净网址,或者复制 JSON 用来写测试。
一条网址由哪几部分组成
通用结构见 RFC 3986,浏览器按 WHATWG URL 标准解析。查询参数按表单编码规则解码:先按 & 切开,再按第一个 = 分成名和值,+ 变空格,%XX 还原成字符(中文是 UTF-8 的 3 个字节,所以一个汉字是 3 组 %XX)。
- # 后面的片段只留在浏览器里,不会随 HTTP 请求发给服务器
- 参数名和值都区分大小写:
utm_Source不是utm_source - 同一个参数可以出现多次,取哪个值看读取的程序
- 中文域名在网络上传输时是 Punycode(
xn--开头),中文路径和参数是 %XX 编码
| 部分 | 值 | 会发给服务器吗 |
|---|---|---|
| 协议 | https | 决定怎么连接 |
| 域名 | shop.example.cn | 会(Host 请求头) |
| 端口 | 8443(不写时 https 是 443) | 决定连到哪个端口 |
| 路径 | /goods/shoes | 会 |
| 查询串 | utm_source=weixin&color=red | 会;统计在这里读参数 |
| 片段 | reviews | 不会;只留在浏览器 |
三条示例链接,三种情况
默认示例的解析结论。
| 网址 | 认出的参数 | 问题 | 怎么改 |
|---|---|---|---|
| www…/活动/double11 | 3 个 UTM + gdt_vid(腾讯广告) | WeChat 含大写;TapCub 按 gdt_vid 归到付费社交 | UTM 的值统一小写 |
| m…/landing | 3 个 UTM + bd_vid(百度营销) | TapCub 按 bd_vid 归到付费搜索 | 不用改 |
| h5…/#/detail | 2 个 UTM + clickid(巨量引擎) | 全写在 # 后面,统计一个都读不到 | 参数挪到 # 前面:/?utm_source=…#/detail |
第三种在用哈希路由的 H5 / 单页应用里很常见:前端路由从 # 后面读页面,统计脚本读的是 location.search,这里是空的。抖音、微信里投放的 H5 落地页尤其要检查。
参数为什么在报表里丢了
链接能打开、页面也正常,推广活动却显示成「直接访问」或「其它」。
参数写在 # 后面
# 后面是片段。UTM 和点击 ID 要放在 # 前面的查询串里,单页应用也一样。
大小写混用
utm_Source 不会被识别,WeChat 和 wechat 是两行。统一用小写。
同一个参数加了两次
链接生成工具和跳转常常再拼一个 utm_source,不同程序取的值不一样。
宏没有被替换
线上网址里出现 __CLICKID__、{planid},说明广告平台没替换宏,或者打开的是模板链接。
来源和推广活动,从落地页网址里读
TapCub 统计脚本读的就是这个工具展示的内容:5 个 UTM 参数和 14 个广告平台的点击 ID,直接从落地页查询串里取。
URL 参数怎么解析?
粘贴网址,参数表会列出每个参数名和解码后的值。写代码的话,浏览器和 Node.js 里用 new URL(网址).searchParams 就能拿到;这里的 JSON 结果也可以直接复制。
网址里的 %E6%B4%BB 是什么?
是中文的 URL 编码:汉字先转成 UTF-8 的 3 个字节,每个字节写成 %XX,所以 %E6%B4%BB 就是「活」。工具会自动还原;只想解一段文字可以用 URL 解码工具。
为什么统计里看不到我的 UTM 参数?
常见原因:参数写在 # 后面(哈希路由的 H5 最常见),参数名有大写(utm_Source),跳转时查询串被丢掉,或者页面在统计代码加载前就跳走了。前两种这里会直接标出来。
? 和 # 有什么区别?
? 后面是查询串,会发给服务器,统计也从这里读;# 后面是片段,只留在浏览器里,用来跳到页面某处或给单页应用做路由。写在片段里的参数服务器看不到,统计默认也读不到。
能认出哪些广告点击 ID?
TapCub 识别的 18 个:国内的 clickid(巨量引擎,抖音 / 今日头条)、bd_vid(百度营销)、gdt_vid 和 qz_gdt(腾讯广告,微信流量 / 非微信流量)、callback(快手磁力引擎),以及 gclid、wbraid、gbraid、dclid、fbclid、ttclid、msclkid、twclid、li_fat_id、ScCid、epik、rdt_cid、yclid。另外会把 srsltid、gad_source 等少数跟踪参数标成「不是点击 ID」。
小程序路径和 App 链接能解析吗?
能。pages/goods/detail?id=1024&scene=1047 这种没有域名的路径按相对路径解析;myapp://order/88?from=push 这种 App 链接也能拆出参数。小程序的 scene 场景值是什么意思,可以查小程序场景值对照表。
网址里有手机号、token 会被上传吗?
不会,解析在浏览器里完成,也没有分享链接。但检查结果会提醒你:查询串里的手机号、token 会进服务器日志,还会随 Referer 发给第三方网站。