如何排序datalayer.push?

问题描述 投票:0回答:1

我有一个关于使用 GTM 的 GA4 增强型电子商务跟踪的问题 - 尽管该问题并非特定于 GA4 或电子商务跟踪。

情况

  • 商店确实使用 usercentrics 作为 cookie 管理解决方案
  • 所有 gtm 标签仅在用户接受必要的 cookie 时才起作用:在用户与 cookie 通知交互后,usercentrics 会执行一个名为“consent_status”的 datalayer.push 事件,并根据 gtm 标签的值 shoo 或 not
  • 结帐时有一个名为“begin_checkout”的 datalayer.push 事件

问题 在 GTM 调试模式下,我可以看到 begin_checkout 在 consent_status 之前拍摄,因此 gtm 不处理 begin_checkout 的数据层值。

问题 是否有可能在 consent_status 之后对 begin_checkout 进行排序?数据层的顺序取决于什么?

进一步思考

  • 基本的跟踪功能(例如页面浏览量)可以正常工作
  • datalayer.push 就像“add_to_cart”一样工作得很好,但是有一种不同的结帐方法:当将项目添加到卡片时,add_to_card 数据层在页面源代码中可见,但只有在用户与网站交互并且单击带有文本“添加到购物车”的按钮 - 在此之前没有名为“add_to_card”的 datalayer.push。因此当然 consent_status 事件已经处理并且数据层的顺序是正确的
  • 在结帐页面上,datalayer.push 事件直接触发,无需进一步的用户交互。这里 datalayer.push 的顺序很重要,但我不明白如何在电子商务事件“begin_checkout”之前优先考虑 usercentrics 事件“consent_status”

我试过的

  • 我尝试删除关于 usercentrics 和 gtm 的 async、dns-prefetch 和 preconnect 标签
  • 我试过玩弄脚本的顺序但没有结果
google-tag-manager google-datalayer sequencing
1个回答
0
投票

看起来您的方法并不是最佳方法。避免玩弄事件排序是一件非常好的事情。

这里好的解决方案是找出存储同意信息的位置(在大多数情况下是 cookie 或本地存储),然后直接从那里读取,而不是等待第三方回调为您完成。

此外,这不仅仅是您 begin_checkout 的问题。它也可能发生在其他情况下,由于您没有注意或由于不那么明显的竞争条件而导致您看不到它。因此,您可能想重新审视如何阻止其他规则触发。

你唯一想要等待的地方是页面浏览量。并且只有在尚未获得同意的情况下。因此,您只需在综合浏览量上设置两个触发器:一个带有 cookie 拦截器/异常的普通综合浏览量触发器,以及一个监听同意管理系统回调的触发器。这样,同意的人将被立即追踪,而尚未同意的人在同意之前不会被追踪。

© www.soinside.com 2019 - 2024. All rights reserved.