配置 GTM 以在页面加载后在页面视图上设置一个字段

Configuring GTM to set a field on page view after the page has loaded

也许这是不可能的,但情况就是这样。
我正在尝试在 google 分析的页面视图中跟踪我的共享点页面上的用户 ID。因为我必须使用 Sharepoint 的 SP.js 脚本来让当前登录的用户检索他们的 ID,所以我使用 SP.SOD.executeOrDelayUntilScriptLoaded 到 运行 我的 javascript 获取用户 ID 然后将其推送到数据层的部分。
不幸的是,由于必须等待 SP.js 脚本加载,用户 ID 值在 GTM 容器 加载后被推送到数据层 ,因此显示为 undefined 在标签管理器的 PageView 标签中。
我考虑过在获得用户 ID 后将 GTM 容器放入我的脚本中,但我不确定这对容器的非 javascript 部分意味着什么:

<noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript>

我的解决方法是在我拥有用户 ID 时触发事件并将事件发送到 Google 跟踪代码管理器,但这意味着用户 ID 显示为事件而不是页面视图的一部分.

那么是否可以在加载标签管理器容器后在 Google Analytics Page View 事件中设置一个字段?

这里的答案是否定的。记录页面视图后,一旦发生跟踪,您就无法为同一页面视图设置字段。您对事件所做的正是您应该做的。您唯一的其他选择是延迟记录页面视图,直到您的脚本完成,但这意味着延迟加载标签,因此会记录一定比例的错过页面视图,或者您可以简单地让第一次页面视图在没有用户的情况下被记录id,然后设置一个 cookie,以便它记录在所有后续页面视图中。另一个选项是,您可以在会话开始后将用户 ID 设置为浏览器上最多一年的 cookie。然后,只要那个人回来,您就可以很方便地拥有用户 ID。

您可以创建虚拟综合浏览量并在用户 ID 可用时设置触发器,但这会增加您网站上的综合浏览量。

将脚本移动到 GTM 容器之上怎么样?这样 SP.js 脚本首先加载