2

使用 gtag.js 我可以通过这种方式更改用户 ID:

gtag('config', 'G-XXXXXX', {
  'user_id': '12345'
});

改用 GTM,如何更改 Google Analytics 使用的用户 ID?

我目前所做的是在 GTM 中添加一个变量,并将其作为用户属性“user_id”的值插入分析的 TAG 中。

问题在于,以这种方式使用初始 user_id 值初始化 Analytics。但在我的情况下,在单页应用程序上使用它,用户 ID 可以在已经初始化 GTM 等 Analytics 后更改,并且 dataLayer.push({ 'user_id': 'xxx' }) 对 Analytics 没有影响。

4

1 回答 1

2

dataLayer.push({ 'user_id': 'xxx' }) 本身可能没有效果,但那是因为你没有告诉 GTM 更新它的内部状态。

GTM 使用一些自定义代码覆盖数据层数组的“推送”方法,其中包括扫描推送对象以查找具有保留名称“事件”的键。仅当它找到该键时,才会实际评估已推送到数据层的数据,并且在 GTM 界面的“变量”选项卡中配置的变量假定一个新值,如果确实为它们设置了一个新值新添加的数据层对象。“事件”键还允许您创建触发器以使用更新的值触发标签。

所以如果你这样做

dataLayer.push(
{ 
  'user_id': 'xxx',
  'event': 'updateUserId' 
}); 

您在 GTM 中的 user_id 变量将被分配新值,您可以使用事件名称“updateUserId”创建“自定义事件触发器”。例如,您可以使用新值向 Google Analytics 发送请求(我不得不说变量名称“user_id”对于您显然希望改变很多的东西有点不高兴)。

如果在推送之后跟随自动事件,例如有效的点击触发器或类似事件,该值也会更新。

于 2021-12-02T19:17:43.410 回答