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

bps*_*ngr 8 google-analytics google-tag-manager google-analytics-4

我已根据官方指南使用我的 GA4 媒体资源
(不是旧版 Universal Analytics)设置了 Google 跟踪代码管理器: https://support.google.com/tagmanager/answer/6103696 ?hl=en&ref_topic=3441530#zippy=%2Cweb-页面 ,我已经弄清楚如何使用 dataLayer.push({}) 对象将自定义/推荐事件发送到 GA4, 并根据 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.
Run Code Online (Sandbox Code Playgroud)

我仅从外部 UA 指南中获取知识,
使用从数据层读取 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:“忽略值”))。
我的 user_id 字段到底缺少什么才能被识别? 调试视图中的 user_id

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

谢谢!

小智 7

谢谢@bpstrngr!在找到答案之前兜了一圈。

一步一步地澄清,以防其他人遇到这个问题;

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

  2. 将此事件作为触发触发器添加到您的代码中: GTM 标签配置打印屏幕


bps*_*ngr 3

所以最后事实证明,由于配置标记是由页面视图事件触发的,这发生在我将 user_id 推送到数据层之前,因此它用事件名称填充了不存在的值。

我为 user_id 事件指定了一个名称来创建自定义事件触发器,该触发器重新触发配置标记。这样 user_id-s 最终可见。