Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Universal Analytics事件从未发送,队列已满_Javascript_Google Analytics_Universal Analytics - Fatal编程技术网

Javascript Universal Analytics事件从未发送,队列已满

Javascript Universal Analytics事件从未发送,队列已满,javascript,google-analytics,universal-analytics,Javascript,Google Analytics,Universal Analytics,我正在为一个单页应用程序使用Universal Analytics,我跟踪许多事件,但它们从未从客户端发送 使用Chrome的GA调试器,我看到GA('send','pageview')并执行第一个事件。我已经验证了事件是否显示在报告中,并且队列已清空,因此这项工作符合预期 此外,每个事件都使用我创建的包装器通过ga函数传递: var sendEvent = function(){ ga.apply(window, ['send', 'event'].concat(Array.proto

我正在为一个单页应用程序使用Universal Analytics,我跟踪许多事件,但它们从未从客户端发送

使用Chrome的GA调试器,我看到
GA('send','pageview')并执行第一个事件。我已经验证了事件是否显示在报告中,并且队列已清空,因此这项工作符合预期

此外,每个事件都使用我创建的包装器通过ga函数传递:

var sendEvent = function(){
    ga.apply(window, ['send', 'event'].concat(Array.prototype.slice.call(arguments)));
};
第一个工作事件也使用包装器。但是,调试器从未显示任何后续命中,我看到事件队列
ga.q
正在填充


我是不是错过了什么东西才能让它发挥作用?我是否可以触发GA以某种方式发送队列中的事件?

我终于找到了答案。我将代码包装在一个闭包中,如下所示:

(function(ga){
  // code
})(ga);
我假设第一个事件存储在GA缓存中,当加载analytics.js脚本时,缓存被清空,请求被发送。进一步说,我猜缓存数组一定已经被销毁了,但是,在我的闭包中对数组的引用仍然是打开的。因此,我将事件发送到一个不再由GA处理的数组

我通过将代码改为reference
window.ga
来修复它