我们可以使用 "Message" 作为(自定义)事件来触发 Google 标签管理器中的标签吗?
Can We Use "Message" as an (custom) Event to Fire a Tag in Google Tag Manager?
我有一个 id
通过 dataLayer.push()
推送到我的数据层,目前没有事件密钥。
我知道最好的做法是使用像 'event': 'idPush'
这样的事件键,然后在 Google 跟踪代码管理器 UI 中,有一个触发器在自定义事件 [=15] 时激活=] 发生。
有没有办法让我在看到通用 'Message'
时仍能激活触发器?
我不能 100% 确定,因为我没有阅读 GTM 源代码,也找不到任何讨论此问题的文章,但我有理由确定这是不可能的。
我试过了:
- 正在创建一个
Custom Event
触发器,其正则表达式匹配 .*
可以匹配任何内容,包括任何内容。
- 匹配
undefined
,因为根据预览窗格,对于 Message
个事件,_event
变量设置为 undefined
。
不幸的是,这些都不起作用,预览模式只为 Message
显示 No tags were evaluated
。这让我认为 GTM 只检查当 event
被推入 dataLayer
时是否应该触发任何触发器。
没有。在发生事件之前,GTM 不知道消息的内容 - 消息只是调试器告诉您已将某些内容添加到全局 dataLayer 变量(它存在于浏览器的全局命名空间中,而不是受限命名空间中GTM)。 even 是更新 GTM 的内部状态以使其了解数据层的更改和添加的内容。
根据您的用例,您或许可以使用触发器类型来创建自己的事件 - 例如将可见性触发器设置为您知道将在消息后出现在视口中的元素,然后将考虑数据层的新值。或者创建一个带有 setInterval 函数的自定义 HTML 标签,定期将事件推送到 dataLayer。
虽然这些解决方案可能有效,但我认为它们实际上并不好。从长远来看,找到更改页面代码的解决方案几乎肯定比使用变通方法更令人头疼运行。
我有一个 id
通过 dataLayer.push()
推送到我的数据层,目前没有事件密钥。
我知道最好的做法是使用像 'event': 'idPush'
这样的事件键,然后在 Google 跟踪代码管理器 UI 中,有一个触发器在自定义事件 [=15] 时激活=] 发生。
有没有办法让我在看到通用 'Message'
时仍能激活触发器?
我不能 100% 确定,因为我没有阅读 GTM 源代码,也找不到任何讨论此问题的文章,但我有理由确定这是不可能的。
我试过了:
- 正在创建一个
Custom Event
触发器,其正则表达式匹配.*
可以匹配任何内容,包括任何内容。 - 匹配
undefined
,因为根据预览窗格,对于Message
个事件,_event
变量设置为undefined
。
不幸的是,这些都不起作用,预览模式只为 Message
显示 No tags were evaluated
。这让我认为 GTM 只检查当 event
被推入 dataLayer
时是否应该触发任何触发器。
没有。在发生事件之前,GTM 不知道消息的内容 - 消息只是调试器告诉您已将某些内容添加到全局 dataLayer 变量(它存在于浏览器的全局命名空间中,而不是受限命名空间中GTM)。 even 是更新 GTM 的内部状态以使其了解数据层的更改和添加的内容。
根据您的用例,您或许可以使用触发器类型来创建自己的事件 - 例如将可见性触发器设置为您知道将在消息后出现在视口中的元素,然后将考虑数据层的新值。或者创建一个带有 setInterval 函数的自定义 HTML 标签,定期将事件推送到 dataLayer。
虽然这些解决方案可能有效,但我认为它们实际上并不好。从长远来看,找到更改页面代码的解决方案几乎肯定比使用变通方法更令人头疼运行。