[英]Tracking offline event with Google Analytics
我试图跟踪我的网站中的用户活动,例如点击或鼠标悬停以及不同类型的事件....是否有任何解决方案来跟踪事件,即使用户正在脱机工作......我可以将它们存储在像cookie这样的东西中并发送找到活动的互联网连接时,他们到服务器?
那可能吗?
谢谢
取决于您要定位的浏览器类型。 这些是HTML5离线webapps吗?
如果他们支持ononline
和onoffline
事件 ,你可以相当平凡地自己实现。
一些可能可行的代码,使用脱机事件,本机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.