繁体   English   中英

使用Google Analytics跟踪离线活动

[英]Tracking offline event with Google Analytics

我试图跟踪我的网站中的用户活动,例如点击或鼠标悬停以及不同类型的事件....是否有任何解决方案来跟踪事件,即使用户正在脱机工作......我可以将它们存储在像cookie这样的东西中并发送找到活动的互联网连接时,他们到服务器?

那可能吗?

谢谢

取决于您要定位的浏览器类型。 这些是HTML5离线webapps吗?

如果他们支持ononlineonoffline事件 ,你可以相当平凡地自己实现。

一些可能可行的代码,使用脱机事件,本机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
});

然后你只需使用_ogaq作为_gaq的包装器。

即:

_ogaq.push(["_trackEvent","Category", "Action"]);

另一件需要考虑的事情是,记录的时间是数据发送的时间,而不是设备本地收集的时间。 幸运的是,现在有一种方法可以避免使用测量协议和qt参数(队列时间)这一问题,它允许您以毫秒为单位发送事件/视图等的年龄。 我已经在实时查看器中尝试了这一点,它确实显示在按预期记录的时间。

https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#qt

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

您可能会发现这也很有用。 ononline / offline并不像人们想象的那么可靠。

http://www.google.com/support/forum/p/Google%20Analytics/thread?tid=67e8cf894a003c64&hl=en

根据这篇文章 ,谷歌离线支持离线行为。 你只需要添加这些库

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

没有为我工作,所以我发现,阵列的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 = "";
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM