UTM 参数命名规范:怎样避免报表里同一个活动被拆成几行

更新于 6 分钟阅读

UTM 参数是人手写进链接里的文字,分析工具只会照字面读取。打开几个月前的活动报表,发现同一场促销被拆成好几行,几乎都是因为拼写上的细小差异,而当时没人注意到。

同一个活动,报表里出现了三行

症状很典型:广告系列列表里同时有 Spring_Sale、spring_sale 和 spring-sale,每一行只有一部分会话和转化,哪一行都不是真实总数。

原因有两个。第一,在 Google Analytics 的报表里,UTM 的值区分大小写,所以 Email 和 email 是两个不同的媒介,会分成两行。第二,标点也是值的一部分,下划线和连字符不会被当作同一个字符。邮件由一个人发,投放由另一个人做,每个人都有自己的写法,报表把这些写法全部如实记下来。

解决办法是写一份很短的命名约定,所有人生成链接时都照着来:

  • 所有值一律小写。
  • 只用一种分隔符,下划线或连字符二选一,不要混用。推荐下划线,在表格里筛选、口头沟通和粘贴时都不容易出错。
  • 值里不放空格。空格在链接里会被编码为 %20(有些读取方式是 +),到了报表里就成了很难肉眼发现的空格。
  • utm_medium 的取值由一个固定的短清单决定,清单放在团队共享文档里,不临时发明。

这个 UTM 链接生成器里的媒介是下拉选择,原因就在这里。如果落地页网址里已经带了同名但大小写不同的参数,它也会先给出警告。

五个参数各自回答什么问题

参数回答的问题示例
utm_source谁把访客送来的newsletter、google、zhihu
utm_medium是哪一类流量email、cpc、social
utm_campaign属于哪一次活动spring_sale
utm_term哪个付费关键词running shoes
utm_content同一个广告或链接的哪个版本banner_top、text_link

来源、媒介、广告系列三项建议当作必填。关键词只对付费搜索有意义,内容参数只有在同一活动里有两个指向同一页面的链接、需要区分它们时才有用。每条链接都把五项填满,只会增加输入量和写错的机会,最后并没有更多可分析的东西。

媒介需要最严格的控制。分析工具会根据媒介把会话归入渠道,所以你把邮件写成 newsletter 而不是 email,这些流量就可能落进你没打算要的渠道,比如「未分配」或「引荐」。定清单之前,先确认你用的分析工具是怎样把媒介值映射到渠道的。

另外,中文团队常常想直接写中文值,比如把来源写成 知乎。技术上可以,下文会讲编码;但维持英文小写的标签,再用一张对照表映射成中文名称,筛选和对账都会省事得多。

站内链接加 UTM,会覆盖真实来源

场景:访客从搜索结果进入网站,看了一篇文章,点击你自己站内的一个横幅,横幅指向 /pricing/?utm_source=homepage&utm_medium=banner。从这一刻起,这次会话被记成「homepage / banner」,原先的搜索来源被覆盖了。报表上看到的是「横幅」带来的转化虚高,自然搜索则凭空下降,而实际上什么都没变。

UTM 描述的是访客是怎样到达网站的,所以它只应该放在把人从站外带进来的链接上:广告、邮件、社交媒体帖子、合作方页面、二维码。站内点击要统计的话,应当把点击作为事件来记录,不要改动网址。如果旧的站内链接已经带了 UTM,清理它们就是修复的办法。生成器下方有一个反向功能,粘贴任意网址,它会删掉所有 utm_ 开头的参数,其他参数保持不动。

井号必须放在最后

下面这条链接看起来没问题,却什么都追踪不到:

https://example.com/pricing/#plans?utm_source=newsletter&utm_medium=email

# 之后的全部内容是锚点(fragment)。浏览器自己留着它,并不会发给服务器,而统计脚本读取的是查询字符串,这里查询字符串是空的。正确的顺序是「路径、问号、参数、井号、锚点」:

https://example.com/pricing/?utm_source=newsletter&utm_medium=email#plans

还有一个类似的失误:原网址已经带了参数,却在后面又接了一个 ?utm_source=...,而应该用 & 连接。用网址解析器来拼链接,而不是手工拼字符串,这两类错误都可以避免,生成器就是这样做的。

编码:空格、与号和中文值

网址只允许 ASCII 字符,其他字符都要做百分号编码。空格变成 %20,汉字「春」变成 %E6%98%A5,值中间字面的 & 必须写成 %26。如果不编码,& 会提前结束这个值,并开启一个新参数:一个叫 q&a 的活动,会被拆成活动 q 和一个多余的参数 a。

分析工具读取时会把这些值解码,所以报表通常能正确显示中文的活动名。即便如此,拉丁小写字母的标签更容易筛选、在表格里匹配,也更方便手输查询。真的需要中文标签,就让链接里的值保持 ASCII,再用对照表去对应。

生成器的明细表把原始值和编码后的值并排列出,你可以确认问号后面实际写了什么。

参数「消失」的几种情形

带参数的链接在浏览器里能打开,报表里却显示成 direct / none,就要检查点击到页面之间经过了什么:

  • 短链接服务。 不少跳转服务在重定向时会丢掉查询字符串,或者没有把它完整传过去。应该先给最终的落地页加参数,再去缩短。缩短之后,用缩短后的链接点一次,确认参数还在。生成器遇到常见短链域名时会提醒这一点。
  • 你自己网站上的重定向。 从 HTTP 跳到 HTTPS、或者补斜杠的跳转,如果没有保留查询字符串,标签在页面加载前就丢了。点一次真实的链接,看地址栏是否还有参数。
  • 被手工改过的链接。 有人嫌网址太长,把「那串难看的东西」删掉再发布。维护一张总表,让没有人需要凭记忆重新拼链接。

用一张表管理所有带参数的链接

命名约定只有在被遵守、也找得到的时候才有价值。一张共享表格,一行一条链接,基本能解决这件事。建议的列有:完整网址、五个参数的值、投放位置(比如「六月邮件,主按钮」)、负责人、日期。以后有人问上个月哪条链接带来了注册,表格直接给出答案,不用猜。生成器会记住这台设备上最近一次的广告系列和来源,省去重复输入,不过那只是单个浏览器里的便利,不能当作记录。

上线前核对清单

  1. 每个值都是小写,只用一种分隔符,没有空格。
  2. 媒介取自约定好的清单。
  3. 带参数的链接只用在站外流量上。
  4. # 在最后一个参数之后,整条链接只有一个 ?。
  5. 落地页是经过所有跳转之后的最终网址。
  6. 自己点一次链接,在实时报表里确认出现了一次会话,来源和媒介与预期一致。

打开工具: UTM 链接生成器(广告投放加参)

返回指南列表

更多指南