【发布时间】:2020-07-28 08:56:36
【问题描述】:
所以如果 GTM 嵌入到网络中,我们可以使用 dataLayer.push({'event':'event_name'})
我可以弹出它来删除它吗?或者如何删除该 dataLayer 事件?
【问题讨论】:
标签: javascript google-tag-manager google-datalayer
所以如果 GTM 嵌入到网络中,我们可以使用 dataLayer.push({'event':'event_name'})
我可以弹出它来删除它吗?或者如何删除该 dataLayer 事件?
【问题讨论】:
标签: javascript google-tag-manager google-datalayer
如果您从 dataLayer 弹出事件,GTM 不会注意到(因为 GTM 需要一个事件来更新其内部状态,所以让 GTM 知道这一点的唯一方法是另一个事件,此时删除操作变得多余)。
通常您可以通过按下“未定义”来重置数据层值。由于上面给出的原因,我怀疑这将与事件键一起使用(但我承认我没有尝试过),但it is good practice 与其他变量一起使用。
您可以通过以下方式从 GTM 内部一起重置数据层
google_tag_manager[“GTM-XXXX”].dataLayer.reset()
其中 GTM-XXXX 是您的 GTM 容器的 ID。但是,这只会清空所有内容。
问题是,删除事件并没有真正的用例,因为 GTM 永远不会查看它两次。 GTM 使用一些代码修改 dataLayer 数组的原生 push() 函数,其中包括扫描事件关键字,然后获取所有新变量并将它们与 GTM 容器的现有内部状态合并,然后事件已经完成了; GTM 不会将其用于其他任何事情。因此,即使您确实重置了事件,GTM 也不会意识到它。
【讨论】:
reset()不再是dataLayer的方法。