2011-11-13 7 views
8

クリックやマウスオーバー、さまざまな種類のイベントなどのユーザーのアクティビティを追跡しようとしました... ユーザーがオフラインで作業しているときでもイベントを追跡するソリューションはありますか? クッキーのようなものにそれらを保存し、アクティブなインターネット接続が見つかったらサーバーに送信できますか?Google Analyticsでオフラインイベントをトラッキングする

これは可能ですか?

答えて

14

はあなたがターゲットとしているどのようなブラウザの種類に依存していただきありがとうございます。 HTML5オフラインWebアプリケーション用ですか?

support ononline and onoffline eventsの場合は、これをかなり簡単に実装できます。

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 
}); 

は、次に、あなただけの _gaqのラッパーとして _ogaqを使用します:オフラインイベント、ネイティブJSONやHTML5ローカルストレージを使用して

いくつかの潜在的に実行可能なコード、。

すなわち:

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

を追加するために、それは削除されますしている、とだけ最初の10が送信されます。このコードでは、オフラインで長く滞在して10件以上のイベント/ページビューをクエリすると、オンラインになると実際に最初の100件がGAに移行します。 – Eduardo

+0

よろしくお願いします。私はsetInvervalを追加して、ずらされたレートでそれらをループさせます:) – Yahel

+1

また、Googleアナリティクスは単純なイベント以外のものを追跡しています:イベントが発生した時間や他のセッションユーザーがオンラインに戻ったときにコンテキストが消えたりコンテキスト外になったりする可能性があります。本当の解決策は、実際のイメージビーコンコードを生成し、ユーザーがオンラインに戻ったときにそれらのイメージを埋め込むことです...私が解決策を考え出すことができるかどうかがわかります。 –

3

考慮すべきもう一つは、記録になるだろう時間は、デバイス上でローカルに収集さとは対照的に、データが送信された時刻になることです。しかし、幸いなことに、測定プロトコルとqtパラメータ(待ち行列時間)を使用して、これが問題であることを回避する方法があります。イベント/ビューの経過時間をミリ秒単位で送ることができます。私はリアルタイムビューアでこれを試しましたが、予想通りに記録されています。

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

それは古い質問です実現が、それは私の狂気この週末を運転されています。

0

私にとってはうまくいかなかったので、配列のGAプッシュが正しく機能していないことがわかりました。 私は配列をループし、各エントリをGoogleアナリティクスにプッシュしました。今、それは魅力のように動作します...

$(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 = ""; 
}); 
1

によるとarticle、オフライン動作はGoogleオフラインでサポートされています。 あなたが短期間にGAに10本の以上のヒットを発射しようとした場合、あなただけのこれらのライブラリに

npm install --save-dev sw-offline-google-analytics 
    ... 
    importScripts('path/to/offline-google-analytics-import.js'); 
    goog.offlineGoogleAnalytics.initialize(); 
関連する問題