将用户 ID 从 Google 跟踪代码管理器发送到 Google Analytics 4

Send User ID from Google Tag Manager to Google Analytics 4

我已经使用我的 GA4 属性
设置了 google 标签管理器 (不是旧版 Universal Analytics)
根据官方指南:
https://support.google.com/tagmanager/answer/6103696?hl=en&ref_topic=3441530#zippy=%2Cweb-pages

我已经弄清楚如何使用
将 custom/recommended 事件发送到 GA4 dataLayer.push({}) 个对象,在触发器和标签中使用它们的“事件”字段,
基于 Universal Analytics 指南
(https://www.analyticsmania.com/post/track-logins-with-google-tag-manager/),
因为这在官方指南中似乎是一个黑洞:
https://support.google.com/tagmanager/answer/9442095
仅简要描述了故事的 GTM 方面。

发送用户 ID 也是如此:文档只告诉
创建 Google Analytics 4 配置标签时:

To set a user ID, add a row to Fields to Set. 
Set the Field Name to user_id, and the Value to 
a Tag Manager Variable that returns the user ID.

我只从外部用户获取指南中获取知识
使用从数据层读取 user_id 字段的数据层变量,
并在 Google Analytics 上创建相应的 user_id 用户 属性, 在 Universal Analytics 中用于
具有不再存在的相关设置 (https://www.analyticsmania.com/post/google-analytics-user-id-with-google-tag-manager/).

所以我已经使用 user_id 数据层变量
部署了我的 GA4 事件 在他们的配置中引用(它在调试视图的数据层上可见), 在 GA 中创建了相应的用户 属性,并启用了用户 ID 报告。
然而,在我的实时视图中,user_id 字段总是得到一些奇怪的“gtm.js”值
(好像我的数据层变量值被事件名称替换了
从默认 dataLayer.push({event:"gtm.js",user_id:"ignored value"))。
要识别我的 user_id 字段,到底缺少什么?

谢谢!

所以最后结果是, 因为配置标记是由 Page View 事件触发的, 那是在我将 user_id 推到数据层之前发生的, 所以它用事件名称填充了不存在的值。

我给 user_id 事件命名来创建一个自定义事件触发器, 重新触发配置标签。 这样 user_id-s 终于可见了。

谢谢@bpstrngr!兜兜转转了好久才找到答案。

逐步阐明步骤,以防其他人遇到此问题;

  1. dataLayer 中发送 userId 时添加事件名称:
window.dataLayer.push({
   'userId' : '{{ myUserId }}',
   'event': 'userIdSet',
})
  1. 在 GTM 中,创建一个 Custom Event 触发器来侦听该事件(将事件名称设置为您在步骤 1 中编写的任何事件):

  2. 将此事件作为触发触发器添加到您的代码中: