Google analytics 使用Google标记管理器等待dataLayer.push()

Google analytics 使用Google标记管理器等待dataLayer.push(),google-analytics,google-tag-manager,Google Analytics,Google Tag Manager,当用户在web上按下按钮时,我必须发送一个google tag manager事件。事实上,这个按钮在一个iframe中,点击之后,这个iframe关闭,另一个出现 我在javascript中的点击事件上设置此事件数据,然后调用dataLayer.push将该信息发送到google analytics 我可以看到firebug的这个请求,但是在iframe关闭后,它在到达google之前就被取消了 在关闭iframe之前,有没有办法等待此呼叫?有没有其他方法“推送”这些数据 提前感谢。最后,我没

当用户在web上按下按钮时,我必须发送一个google tag manager事件。事实上,这个按钮在一个iframe中,点击之后,这个iframe关闭,另一个出现

我在javascript中的点击事件上设置此事件数据,然后调用dataLayer.push将该信息发送到google analytics

我可以看到firebug的这个请求,但是在iframe关闭后,它在到达google之前就被取消了

在关闭iframe之前,有没有办法等待此呼叫?有没有其他方法“推送”这些数据


提前感谢。

最后,我没有找到更好的方法来实现这一点,所以我只找到了一个解决方案:

-按钮事件。preventDefault() -我叫推。 -等一下。
-继续按钮的默认操作。

使此问题对当前读者更有用:现在您将在Google tag Manager中创建一个事件侦听器标记,并选中“等待依赖于此事件的标记”复选框(当询问此问题时,GTM中不存在事件侦听器标记)


(当然,技术背景与问题中所述有所不同——首先,datalayer.push不会将数据发送到Google Analytics)。

在这里找到事件“eventCallback”。我还没有测试它,但希望它能工作,正如我所看到的,gtm.js包含此事件。

datalayer.push不向谷歌发送数据?否则如何获取新数据?标记管理器中配置的所有内容都包装在javascript对象中并注入页面。Datalayer.push向数据层对象添加键/值对。然后由GTM javascript代码计算数据层对象。包含的GTM代码可能会将信息发送到Google Analytics(如果您配置了GA标记),而不是数据层。数据层只是(非持久性的)键/值存储,它不发送任何东西。什么是让GTM知道它必须发送数据的触发器?我的意思在这里解释:“使用带有HTML事件处理程序的数据层”。也许我没有正确理解它…如果你想通过数据层触发一个标记,你必须包含一个“event”(例如dataLayer.push({'event':'myevent'}))的值,并在标记管理器中设置一个规则/触发器,监听这个自定义事件({{event}}eq“myevent”(在旧版本的GTM中,自定义事件触发器“event name to match”在新版本中等于“myevent”)。