这一篇介绍如何在GTM中获取Client ID,你可能会首先会想到使用第一方Cookie、自定义JavaScript,或window.gaGlobal.vid的方式,但这几种方式都有可能获取不到Client ID,从而导致not set出现,不推荐使用这几种方法。
有些人还会想到customTask,这是UA里的使用的方式,但GA4不支持,所以也不适用。
那GA4该如何正确,准确获取Client ID呢?
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” 。
Analytics存储空间是GTM内置变量,可以获取Client ID、Session ID 以及 Session Number。
在GTM中点击「变量」—「新建」—「选择一个变量类型以开始设置」——「Analytics存储空间」,命名为“Client ID”,做如下设置:

这是GTM提供的一个API,用于获取Client ID/Session ID。
需要通过自定义变量模板去实现,你需要创建一个自定义变量模板,在里面使用readAnalyticsStorage API去获取Client ID/Session ID,已经有人分享了代码模板,如:https://github.com/luratic/ga4_get_client_id_and_session_info