活动名称写成sample & guide,如果直接拼到网址后面,符号可能被当作参数分隔。长春企业管理谷歌广告和社媒入口时,可以先按字段生成,再核对落地页读到的值。代码不访问账户、不发出请求,也不会将表单资料加入网址。
先保留原字段,再生成网址
const target = new URL("https://example.com/guide.html");
target.searchParams.set("utm_source", "sample-channel");
target.searchParams.set("utm_medium", "sample-medium");
target.searchParams.set("utm_campaign", "sample & guide");
const output = target.toString();
const check = new URL(output);
console.assert(check.searchParams.get("utm_campaign") === "sample & guide");
// 示例只生成并解析字符串,不发出请求。| 原始值 | 解析后应还原 |
|---|---|
| sample & guide | sample & guide |
| a+b | a+b |
| spring launch | spring launch |
URLSearchParams提供参数处理能力,序列化时会按规则编码。编辑不需要凭视觉把所有编码字符改回原文,也不应在已经编码的值外面再盲目编码一遍。具体入口是否允许这些字段、落地页是否保留它们,需要按实际平台和网站测试。
三种检查不能互相替代
| 检查 | 要回答的问题 | 不足的做法 |
|---|---|---|
| 原值 | 标签是否代表约定活动 | 仅看最后一段字符 |
| 生成结果 | 是否成为正确参数 | 整串手工替换符号 |
| 实际到达 | 跳转后参数与页面是否正确 | 本地生成就宣称已上线 |
标签规则与数据范围一起交接
- 确定允许的来源、媒介和活动命名规则。
- 不把邮箱、电话、订单或其他专属资料放进URL。
- 生成后解析回原值,确认没有重复或丢失字段。
- 上线后按实际可用记录核对,不编造来源。
修改标签不等于新增加了访问,更不等于客户已完成咨询。报表需要说明记录的是哪个动作和什么时间范围。若部分渠道没有提供来源,保留未知,不能因为链接带着活动名,就推断全部后续成交都由该渠道造成。
生成的网址看起来不直观,是否就错了?
不一定。先解析回原字段值,再检查实际到达结果,不按外观删除合法编码。
可以把所有访客输入自动拼成UTM吗?
不应这样设计。推广标签服务于预先约定的来源记录,不是收集自由输入的容器。