文章目录[隐藏]
更新时间:2025年8月2号
这一篇介绍如何在GA4/GTM中获取Client ID,你可能会首先会想到使用第一方Cookie、自定义JavaScript,或window.gaGlobal.vid的方式,但这几种方式都有可能获取不到Client ID,从而导致not set出现,我是不推荐使用这几种方法的。
有些人还会想到customTask,这是UA里的使用的方式,但GA4不支持,所以也不适用。
GA4:gtag()
gtag()实际是使用Google tag API ,它是需要加载gtag.js才可以使用,也就是使用GA4硬编码布署的方式才可以使用gtag,使用方法如下:
gtag('get', 'YOUR_MEASUREMENT_ID', 'client_id', (client_id) => {
// do something with client_id
})
如果是使用GTM,它默认是没有加载gtag,所以会报错”gtag is not defined” ,如果仍要使用,需要全局加载:
function <a href="https://www.ichdata.com/tag/gtag" title="查看更多关于gtag的文章" target="_blank">gtag</a>() { dataLayer.push(arguments); }
但这样会有执行顺序的问题,全局没加载的时候,使用不了。
GTM:readAnalyticsStorage API
这是GTM提供的一个API,用于获取Client ID/Session ID。
它通过自定义变量模板去实现,你需要创建一个自定义变量模板,在里面使用readAnalyticsStorage API去获取Client ID/Session ID,已经有人分享了代码模板,如:https://github.com/luratic/ga4_get_client_id_and_session_info下载后,在的「模板 」——「变量」里导入:
然后就可以用它去创建变量,在GTM中点击「变量」—「新建」—「选择一个变量类型以开始设置」——「GA4 – Get Client Id & Session Info (Safe API)」,命名为“Client ID”,做如下设置:
延伸阅读:
- 认识GA4里所使用Cookie:_ga、_ga_<容器ID>和FPID
- 认识GA4里的Client ID(客户端跟踪和服务端跟踪)
- 「GA4」Client ID和User ID之间的区别
- 如何将GA4中的Client ID设置为自定义维度?