我们可以将"Message"用作(自定义)事件来触发 Google 跟踪代码管理器中的代码吗?



我有一个id通过dataLayer.push()推送到我的数据层,目前没有事件键。

我知道最好的做法是使用像'event': 'idPush'这样的事件键,然后在Google Tag Manager UI中,有一个触发器,当自定义事件idPush发生时激活。

有没有一种方法可以让我在看到通用'Message'时激活触发器?

我不能100%确定,因为我没有阅读GTM源代码,也找不到任何关于这方面的文章,但我有理由确信这是不可能的。

我试过了:

  • 创建一个具有正则表达式匹配.*Custom Event触发器,该触发器将匹配任何内容,包括任何内容
  • 匹配undefined,因为根据预览窗格,对于Message事件,_event变量设置为undefined

不幸的是,这两种方法都不起作用,预览模式只显示MessageNo tags were evaluated。这让我想到GTM只检查当event被推入dataLayer时是否应该触发任何触发器。

否。在发生事件之前,GTM不知道消息的内容——消息只是调试器告诉你已经向全局dataLayer变量添加了一些内容(它存在于浏览器的全局命名空间中,而不是GTM的受限命名空间中(。偶数是更新GTM的内部状态,使其了解数据层的更改和添加。

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

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

最新更新