【问题标题】:How to update Google Analytics user id using GTM?如何使用 GTM 更新 Google Analytics 用户 ID?
【发布时间】:2023-02-14 18:13:10
【问题描述】:
使用 gtag.js 我可以通过这种方式更改用户 ID:
gtag('config', 'G-XXXXXX', {
'user_id': '12345'
});
改用 GTM,如何更改 Google Analytics 使用的用户 ID?
我目前所做的是在 GTM 中添加一个变量,并将其作为用户属性“user_id”的值插入到分析的 TAG 中。
问题在于,以这种方式 Analytics 是使用初始 user_id 值初始化的。但就我而言,在单页应用程序上使用它时,用户 ID 可以在 GTM 初始化后更改,因此 Analytics 和 dataLayer.push({ 'user_id': 'xxx' }) 对 Analytics 没有影响。
【问题讨论】:
标签:
google-analytics
google-tag-manager
【解决方案1】:
dataLayer.push({ 'user_id': 'xxx' }) 本身可能没有效果,但那是因为你没有告诉 GTM 更新它的内部状态。
GTM 用一些自定义代码覆盖数据层数组的“推送”方法,除其他外,这些代码扫描推送的对象以查找具有保留名称“事件”的键。只有找到该键,才会实际评估已推送到数据层的数据,并且在 GTM 界面的“变量”选项卡中配置的变量采用新值,如果确实为它们设置了新值新添加的数据层对象。 “事件”键还允许您创建一个触发器来触发具有更新值的代码。
所以如果你这样做
dataLayer.push(
{
'user_id': 'xxx',
'event': 'updateUserId'
});
您在 GTM 中的 user_id 变量将被分配新值,您可以创建一个事件名称为“updateUserId”的“自定义事件触发器”。例如,您可以使用新值向 Google Analytics 发送请求(我不得不说变量名称“user_id”对于您显然希望改变很多的东西有点不高兴)。
如果在推送之后发生自动事件,例如,该值也会更新。有效的点击触发器或类似触发器。