我要做的是在向Google Analytics发送事件后立即将用户重定向到下一页:
_gaq.push(['_trackEvent', 'xxx' ...]);
window.location = 'some url ...';
上面的代码设法注册事件,因为我可以在GA报告中看到它们。但是我怀疑某些事件已丢失,因为浏览器会在轨道像素加载之前将用户重定向到新页。
我的问题是:
谢谢!
答案 0 :(得分:1)
这是基于一些快速研究的观察结果。该功能是Google Analytic的异步API的一部分,因此它不应该阻止任何内容,否则,它不是异步的。 :)
通过混淆的ga.js,您可以看到跟踪可能被称为onbeforeunload,当您离开页面时会触发。
跟踪像素是否完全加载并不重要,它是一个火灾&忘记。只要请求已启动并到达Google的服务器,它就会被跟踪。响应(在这种情况下,像素图像)是副产品。
答案 1 :(得分:1)
Google有一个support page表示您可能希望在致电_gac.push
后添加延迟,但是他们声称这是为了让Google AnalyticsJava JavaScript有机会加载。他们并没有说要确保发送请求。
首先,将出站点击延迟几分之一。
用户几乎不会注意到此延迟,但它会为浏览器提供更多时间加载跟踪代码。如果没有这种方法,用户可以在加载跟踪代码之前点击出站链接,在这种情况下,不会记录事件。
我没有检查@ pixelfreak处理onbeforeunload
的声明,但似乎这就是他们所做的。
答案 2 :(得分:0)
也许你可以尝试这种方法,但我还没试过
_gaq.push(['_trackEvent', 'xxx' ...]);
_gaq.push(function(){location.reload()});
答案 3 :(得分:0)
只需使用1秒延迟。像这样:
_gaq.push(['_trackEvent', 'xxx' ...]);
setTimeout(function(){window.location = 'some_url'}, 1000);