发送Google Analytics事件,然后立即导航

Ale*_*pin 10 javascript google-analytics

我可以发送Google Analytics事件并立即离开,就像这样吗?

_gaq.push(['_trackEvent', 'foobar']);
window.location = "/";
Run Code Online (Sandbox Code Playgroud)

如果谷歌分析在调用它时会执行某种AJAX请求,那么无论我们是否留在页面上它都应该有效.我担心的是,它似乎有时只是将数据放入数组中以供以后处理.我认为这只是最初发生的,当谷歌分析还没有时间进行初始化时,但我想确定这一点.

我用GA调试进行了测试,它看起来有效,但我不确定这是否意味着它总是取决于加载速度而不是.

我可以这样做,永远不会丢失任何事件吗?

小智 8

我这样做的方式是这样的:

_gaq.push(['_trackEvent', '...', '...', '...']);
_gaq.push(function(){
    // do stuff here
});

$('#logo').on('click', function(){
    var curPage = window.location.href;
    _gaq.push(['_trackEvent', curPage, '#logo']);
    _gaq.push(function(){
        window.location.href = '/';
    });
});
Run Code Online (Sandbox Code Playgroud)

第二次推送呼叫将始终在第一次推送之后运行,因为Google将所有推送呼叫排队,以便第一次推送呼叫将运行并完成,然后第二次推送呼叫将运行并完成.Google允许您将函数放入推送方法中,以便对其进行排队.

资料来源:https://developers.google.com/analytics/devguides/collection/gajs/#PushingFunctions


mik*_*ike 5

setTimeout如果没有在新窗口中打开新页面,我会添加一点延迟(via ).

我还没有机会尝试这个,但谷歌新的Universal Analytics有一个hitCallback功能,在数据发送后执行.