Javascript 使用Google Analytics跟踪离线事件

Javascript 使用Google Analytics跟踪离线事件,javascript,google-analytics,google-analytics-api,Javascript,Google Analytics,Google Analytics Api,我试图在我的网站上跟踪用户的活动,如点击或鼠标悬停以及不同类型的事件。。。。 即使用户脱机工作,是否有跟踪事件的解决方案。。。 我是否可以将它们存储在cookie之类的东西中,并在找到活动的internet连接时将它们发送到服务器 可能吗 谢谢这取决于您的目标浏览器类型。这些是用于HTML5离线网络应用程序的吗 如果是这样的话,您可以自己实现这一点 使用离线事件、本机JSON和HTML5本地存储,一些可能可行的代码: if(!localStorage.getItem("offlineGA")){

我试图在我的网站上跟踪用户的活动,如点击或鼠标悬停以及不同类型的事件。。。。 即使用户脱机工作,是否有跟踪事件的解决方案。。。 我是否可以将它们存储在cookie之类的东西中,并在找到活动的internet连接时将它们发送到服务器

可能吗


谢谢

这取决于您的目标浏览器类型。这些是用于HTML5离线网络应用程序的吗

如果是这样的话,您可以自己实现这一点

使用离线事件、本机JSON和HTML5本地存储,一些可能可行的代码:

if(!localStorage.getItem("offlineGA")){
  localStorage.setItem("offlineGA","[]");
}
var _ogaq = {
push : function(arr){
    if(navigator.onLine || !("onLine" in navigator)){ // if online or if browser doesn't support onLine/offLine detection.
        _gaq.push(arr);
    }
    else{
     var stored = JSON.parse(localStorage.getItem("offlineGA"));
     stored.push(arr);
     localStorage.setItem("offlineGA", JSON.stringify(stored));
    }
}
};

$(window).bind("online", function(){ // if you don't have jQuery, you can do window.ononline instead
   _gaq.push( JSON.parse(localStorage.getItem("offlineGA")) );
   localStorage.setItem("offlineGA","[]"); //empty it
});
然后您就可以使用
\u ogaq
作为
\u gaq
的包装器

即:


您可能会发现这也很有帮助。在线/离线并不像人们想象的那么可靠


< P>另一个要考虑的是,所记录的时间将是数据发送的时间,而不是在设备上本地收集的时间。幸运的是,现在有一种方法可以避免这一问题,使用测量协议和qt参数(队列时间),它允许您发送事件/视图的时间等。。以毫秒为单位。我在realtime viewer中尝试过这一点,它确实在录制时按预期显示


意识到这是一个老问题,但这个周末它一直让我发疯。

对我不起作用,所以我发现,阵列的GA推送没有正常工作。 因此,我循环数组,将每个条目推送到Google Analytics。现在它就像一个符咒

$(window).bind("online", function(){ // if you don't have jQuery, you can do window.ononline instead

   var json = JSON.parse(localStorage.getItem("offlineGA"));

   for(var i = 0; i < json.length; i++) {    
        _ogaq.push([json[i][0],json[i][1], json[i][2]]);
    }

   localStorage.setItem("offlineGA","[]"); //empty it
   var json = "";
});
$(window.bind(“online”,function(){//如果没有jQuery,可以改为使用window.ononline
var json=json.parse(localStorage.getItem(“offlineGA”);
对于(var i=0;i
根据这一点,离线行为是由谷歌离线支持的。 您只需添加这些库

    npm install --save-dev sw-offline-google-analytics
    ...
    importScripts('path/to/offline-google-analytics-import.js');
    goog.offlineGoogleAnalytics.initialize();

如果您试图在短时间内向GA发射超过10次命中,它将被丢弃,并且只发送前10次。这意味着,对于这段代码,如果你离线时间太长,并且查询了10个以上的事件/页面浏览量,那么只有前100个事件/页面浏览量会在你在线时真正转到GA,这是一个很好的呼叫。我将致力于添加一个setInverval,以交错的速度循环它们:)另外,需要注意的是,谷歌分析跟踪的不仅仅是简单的事件:比如事件发生的时间,以及其他与会话相关的内容,这些内容在用户返回在线时将消失或脱离上下文。真正的解决方案是生成实际的图像信标代码,并在用户重新联机时嵌入这些图像。。。我会看看是否能想出一个解决方案。考虑到所有这些评论,有人开发了一个功能齐全的离线GA支持库吗?
    npm install --save-dev sw-offline-google-analytics
    ...
    importScripts('path/to/offline-google-analytics-import.js');
    goog.offlineGoogleAnalytics.initialize();