Отслеживание офлайн-событий с помощью Google Analytics - PullRequest
9 голосов
/ 14 ноября 2011

Я пытался отслеживать активность пользователей на моем сайте, например, щелчок или наведение мыши, а также различные виды событий .... Есть ли решение для отслеживания событий, даже когда пользователи работают в автономном режиме ... Могу ли я сохранить их в виде файла cookie и отправить их на сервер при обнаружении активного интернет-соединения?

Это возможно?

Спасибо

Ответы [ 5 ]

15 голосов
/ 14 ноября 2011

Зависит от того, на какие типы браузеров вы ориентируетесь.Это для автономных веб-приложений HTML5?

Если они поддерживают 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"]);
3 голосов
/ 11 августа 2013

Еще одна вещь, которую следует учитывать, это то, что время, которое будет записано, будет временем, когда данные были отправлены, а не были собраны локально на устройстве.К счастью, теперь есть способ избежать этой проблемы, используя протокол измерения и параметр qt (время очереди), который позволяет отправлять возраст события / представления и т. Д. В миллисекундах.Я пробовал это в средстве просмотра в реальном времени, и оно отображается в то время, которое было записано, как и ожидалось.

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

Понимаю, что это старый вопрос, но он сводит меня с ума в эти выходные.

2 голосов
/ 14 ноября 2011

Вы также можете найти это полезным. ononline / offline не так надежен, как можно подумать.

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

1 голос
/ 30 августа 2016

в соответствии с этой статьей автономное поведение поддерживается в автономном режиме Google Вы просто должны добавить эти библиотеки

    npm install --save-dev sw-offline-google-analytics
    ...
    importScripts('path/to/offline-google-analytics-import.js');
    goog.offlineGoogleAnalytics.initialize();
0 голосов
/ 11 февраля 2014

У меня не сработало, поэтому я обнаружил, что толчок 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 = "";
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...