我试图跟踪我网站中的用户活动,例如点击或鼠标悬停以及不同类型的活动.... 即使用户离线工作,是否有任何跟踪事件的解决方案... 我可以将它们存储在像cookie这样的东西中,并在找到活动的互联网连接时将它们发送到服务器吗?
这可能吗?
谢谢
答案 0 :(得分:15)
取决于您定位的浏览器类型。这些是HTML5离线webapps吗?
如果他们support ononline
and onoffline
events,您可以相当平凡地实现这一点。
一些可行的代码,使用脱机事件,本机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"]);
答案 1 :(得分:3)
另一件需要考虑的事情是,记录的时间是发送数据的时间,而不是在设备上本地收集的时间。幸运的是,现在有一种方法可以避免使用测量协议和qt参数(队列时间)这一问题,它允许您以毫秒为单位发送事件/视图等的年龄。我在实时查看器中尝试了这一点,并且它确实在按预期记录的时间显示。
https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#qt
意识到这是一个古老的问题,但它本周末一直让我疯狂。
答案 2 :(得分:2)
您可能会发现这也很有用。 ononline / offline并不像人们想象的那么可靠。
http://www.google.com/support/forum/p/Google%20Analytics/thread?tid=67e8cf894a003c64&hl=en
答案 3 :(得分:1)
根据此article,Google离线支持离线行为。 你只需要添加这些库
start_safe_perms
答案 4 :(得分:0)
对我来说没有用,所以我发现,阵列的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 = "";
});