介绍
UTM (Urchin tracking module) 的作用是帮助我们收集访客的来源渠道.
比如说, 用户是从 Google 广告来的, Youtube, 还是 Facebook 等等.
它的工作原理很简单, 就是在 URL 加上各种 query params 来表达来源.
比如: domain.com?utm_source=google&utm_medium=cpc
当用户来到网站以后, 网站就可以读取 query params 得知用户是从 google 的付费广告来的.
注: 这个方式并不能 100% 精准 tracking 哦, 比如用户把这个 URL share 给其它人, 那么这些人也会被当作是 google 付费广告来源.
gclid, gbraid, wbraid, fbclid
如果只使用 Google 全家桶 (Ads, Analytics), 那么我们是不需要去搞什么 UTM 的.
因为 Google 会在访客的 URL 加上 gclid (Google Click ID), gbraid (Google App Measurement ID), wbraid (Google Web Measurement ID)
这些 ID 里头就包含了所有访客来源的信息了. 但要注意哦, 这个 ID 只是给 Google 自己用的而已, ID 是无法逆向解析成数据的, 也没有开发接口让外人获取.
fbclid 则是 Facebook + Pixel 全家桶的. 原理和 Google ID 一样.
但无论如何, 大部分情况我们还是需要 UTM 的, 比如我们同时在 Google 和 Facebook 做广告, 或者用到了第三方 tracking (e.g. inspectlet)
Standard UTM
参考: What Are UTM Codes? Here's How to Use Them (w/ Examples)
UTM 包含许多属性, 有一些是针对特定平台才有的, 比如 Google Ads 会提供 device 这个属性. 但其它平台不一定就有.
比较 standard 的 属性如下:
utm_id = campaign id (是 id 而不是 campaign name 哦)
utm_source = 平台来源 e.g. google, facebook, youtube
utm_medium = 算是 source 的再细分, e.g. cpc/ppc, organic (Google source 在区分出付费和自然搜索)
utm_campaign = campaign name (注: 它没有 group/set 只有 campaign, 但我通常会把 group/set 加进去, 类似 campaign name > group name)
utm_content = ads name/id. 当做多个广告进行 A/B Test 的时候, 就需要声明是哪一个广告了.
utm_term = keywords 这个是针对 google search 的.
Setup UTM in Google Ads
参考: YouTube – UTM Tracking in Google Ads (Templates + Custom Parameters)
Setup Campaign URL Options
Setup Tracking Template and Custom Parameters
tracking template 长这样
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={_campaignname}+%3E+{_groupname}&utm_id={campaignid}&utm_term={keyword}&utm_content={_adsname}
{} 花括弧表示 dynamic value
lpurl = landing page url 也就是最终网站的地址
campaignid, keyword 是 Google Ads 自带的 parameters, 完整的 list 这里: Available ValueTrack parameters
_campaignname, _groupname, _adsname 任何 starts with underscore 都是 custom parameters
如下设置
在 campagin level set _campaignname
在 group level set _groupname
在 ad set _adsname
最终 Google Ads 会 combine 所有 level.
注意:
key (e.g. _campaignname ) 不可以用 underscore 做分割哦, _campaign_name <-- 错误的
value (e.g. Aug+2022) 必须 URL encode 哦. Aug 2022 <-- 错误的 (用 + 或 %20 都可以)
批量管理
custom parameters 不太好管理, 有时候可能会忘记放, 或者改名字忘记同步.
我以前写过一个 script 来管理. 但没有做记入. 而现在代码也不知道在哪里了.
但我有个印象就是它有一些缺失, 并没有办法做到全自动. 算了呗. 以后有机会在来玩.