我们是否可以将“消息”用作(自定义)事件来触发 Google 跟踪代码管理器中的代码?

Can We Use "Message" as an (custom) Event to Fire a Tag in Google Tag Manager?

提问人:swygerts 提问时间:9/26/2020 最后编辑:jnovackswygerts 更新时间:9/26/2020 访问量:2659

问:

我有一个被推送到我的数据层,目前没有事件键。iddataLayer.push()

我知道最佳做法是使用事件键,例如,然后在 Google 跟踪代码管理器界面中,设置一个在自定义事件发生时激活的触发器。'event': 'idPush'idPush

有没有办法让我在看到通用时仍然激活触发器?'Message'

谷歌标签管理器

评论


答:

1赞 Ben Larson 9/26/2020 #1

我不能 100% 确定,因为我没有阅读 GTM 源代码,也找不到任何谈论这个问题的文章,但我有理由确定这是无法做到的。

我试过了:

  • 创建一个具有正则表达式匹配的触发器,该触发器将匹配任何内容,包括任何内容。Custom Event.*
  • 匹配 ,因为根据预览窗格,变量设置为 for events。undefined_eventundefinedMessage

不幸的是,这些都不起作用,预览模式只是说.这让我认为 GTM 只检查当 a 被推入 .No tags were evaluatedMessageeventdataLayer

评论

0赞 Ben Larson 9/26/2020
您可能知道,当页面加载时,您可以使用 GTM 将 javascript 注入到页面上,因此也许您可以以某种方式将其用作解决方法,直到您可以再次更改页面的代码。这可能是不可能的,这取决于你的页面是如何工作的,这只是一个想法。
1赞 Eike Pierstorff 9/26/2020 #2

不。在发生事件之前,GTM 不知道消息的内容 - 消息只是调试器告诉您已将某些内容添加到全局 dataLayer 变量(存在于浏览器的全局命名空间中,而不是 GTM 的受限命名空间中)。偶数是更新 GTM 的内部状态,使其知道对 dataLayer 的更改和添加。

根据您的用例,您可以使用触发器类型来创建自己的事件 - 例如,将可见性触发器设置为您知道将在消息之后位于视口的元素,然后将考虑 dataLayer 的新值。或者,使用 setInterval 函数创建自定义 HTML 标记,该函数会定期将事件推送到 dataLayer。

虽然这些解决方案可能有效,但我认为它们实际上并不好。从长远来看,找到更改页面代码的解决方案几乎肯定比使用解决方法更令人头疼。