谷歌标签管理器dataLayer推送不存储对象

时间:2018-04-16 19:49:57

标签: javascript google-tag-manager

我已经阅读了几篇SO帖子以及docsapi。我的理解是,当dataLayer.push({'event': 'trackEvent'}); 一个事件对象进入它时,.push()全局对象的行为应该像Array一样并且会增加。根据截图here

我的dataLayer对象不会像这样增长。它存在于窗口上,我可以运行

ArithmeticException

没有错误,除了它不会增加dataLayer的大小。

除了数组增长以及我还能告诉public void actionPerformed(ActionEvent ev) { String numText = numFld.getText(); String denText = denFld.getText(); if(ev.getActionCommand().equals("Build Fraction")) { numFld.setText(""); denFld.setText(""); int numerator = Integer.parseInt(numText); int denominator = Integer.parseInt(denText); try { System.out.println(numerator); } catch(NumberFormatException ex) { JOptionPane.showMessageDialog(pnlOne, "Numerator cannot be empty"); System.out.println(ex.getMessage()); numFld.requestFocus(); } try { System.out.println(denominator); } catch(NumberFormatException ex) { JOptionPane.showMessageDialog(pnlOne, "Denominator cannot be empty"); System.out.println(ex.getMessage()); denFld.requestFocus(); } try { System.out.println(numerator/denominator); } catch(ArithmeticException ex) { JOptionPane.showMessageDialog(pnlOne, "Denominator cannot be 0"); System.out.println(ex.getMessage()); denFld.requestFocus(); } if (denominator !=0 && numText!="" && denText!="") { Fraction fraction = new Fraction(numerator,denominator); fractions.add(fraction); fractionFld.append(fraction.getNum() + "/" + fraction.getDen() + "\n\r"); } } 是否有效?

浏览器在检测到事件时是否应执行xhr请求?

GTM脚本在将它们发送到谷歌之前是否基于GTM设置(标签/触发器)执行客户端逻辑?即事件没有推动,因为他们没有通过验证。

如果我在localhost上测试这个是否重要?

我该如何解决这个问题?

Google tag assistant extension enter image description here

2 个答案:

答案 0 :(得分:0)

数据层是一个数组,所以是的,它应该像一个数组。单个项目是对象。

它不应该执行xhr请求,因为GTM捆绑并直接下载到您的页面,因此不需要xhr。

GTM事件本身永远不会发送给Google(它们仅用于触发标记,然后可能会向Google发送数据。它们不会自动映射到Google Analytics事件)。它们未经过验证,GTM只修改了push方法,以查看参数是否包含关键字“event”(此时GTM脚本的内部状态将使用新值更新)。

在加载GTM之后,您的数据层似乎发生了某些事情(您有启动事件,但没有gtm.dom或gtm.load),因此您可能需要检查是否在GTM代码段之后重新声明了datalayer。但是要实际调试问题,如果我们能够看到你如何嵌入GTM并设置你的数据层(如果有机会我们可以浏览你的页面,或者显示相同问题的示例页面,那将会有所帮助)非常有帮助)。

答案 1 :(得分:0)

我的同事能够加载预览模式并验证事件是否已推送到dataLayer。显然,duckduckgo扩展程序阻止加载预览模式任务栏。

我将此作为DDG团队的一个错误打开。

对于未来的搜索者,您应该能够非常轻松地启动gtm预览模式。您会在屏幕截图中看到网络事件。enter image description here