4

Facebook JSSDK(つまりクライアント側)を使用して、Webアプリの現在のユーザーが誰であるかを確認します。

コードは次のようになります。

    ... inited google analytics ...

       ...
       //events *before* authentication
       _gaq.push(['_trackEvent', 'TEST', 'EVENT BEFORE AUTH', 1]);   

       ... 
       //events *after* attempt at client-side authentication
       // callback might return after, say, 7 seconds
        authenticateUser(function(userInfo) {
             // setting visitor-level custom var
            _gaq.push(['_setCustomVar', 1, 'AUTHED-USER', userInfo, 1]);
            _gaq.push(['_trackEvent', 'TEST', 'EVENT AFTER AUTH', 1]);   
        });

(これをシミュレートする場合は、最初のイベントが発生してからかなり時間が経ってから「setCustomVar」を実行してください。GAに最初のイベントを送信するのに十分な時間」を与えたいからです)

これにより、カスタム変数の下でイベントを追跡する次の「問題」が作成されます。

  1. 他のイベントがすでにGoogleAnalyticsに送信された後、ユーザーの情報を含むFacebookからの応答が返される可能性があります-訪問者レベルのカスタム変数は、このセッションで以前に追跡されたイベント(カスタムの前)でさえあるように見えるため、「これを解決する」ようですvarが設定された)は、カスタムvar値(それらの後に設定された)の「下」にリストされます。

  2. 別のユーザーが同じブラウザを使用してアプリを使用する場合があります。訪問者レベルのカスタム変数を「上書き」する動作には問題があります。このブラウザから発行されたすべての事前認証イベントは、LATESTcustom-var値の下に一覧表示/グループ化されているようです。上書きする前に_deleteCustomVar呼び出しを発行しようとしましたが、問題は解決しませんでした。

最初の問題を別の方法で「解決」するために-訪問者レベルのカスタム変数(むしろページ/セッションのもの)を使用しないことを考えました-しかし、これはすべての事前認証イベントがカスタム変数の下にリストされないことを意味します-Toこれを解決する私は、認証が行われた、すべてのイベント追跡をどういうわけか延期しようと思いました-しかし、これは..うーん..奇妙なようです。

別の解決策は、私自身の「visitor-cookie」を使用することです。しかし、GAはすでにそれを行っているので、私は車輪の再発明をするのをためらっています。

このシナリオに取り組む方法について何か提案はありますか?

4

2 に答える 2

4

たぶん、各customVarスコープの少しの説明があなたを助けるでしょう。

ビジターレベルCV

訪問者レベルのCVは、CVを設定した瞬間からのすべての訪問に適用されます。1回の訪問中にCVを変更した場合、その訪問はGAに古い値で表示されますが、今後の訪問ではCVが更新されます。

セッションレベルCV

セッションレベルのCVは、現在のセッションでのみ有効です。将来のセッションでは、それは空です。訪問中にセッションレベルのCVを変更した場合、GAで報告される値が最後になります。

https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables#usage

セッションで呼び出される最後のセッションレベルの変数は、そのセッションで使用される変数です。例:セッションの開始時にスロット#1に対してlogin = falseであり、後でスロット#1に対してlogin = trueの場合、セッションはログインに対してtrueに設定されます。

同じセッションで呼び出された、以前に設定されたページレベルの変数をオーバーライドします。例:スロット#1が最初にcategory = sportsに使用され、次にセッションのlogin = trueに使用された場合、category=sportsはそのセッションに記録されません。

ページレベルCV

あなたの場合、これに注意する必要があります。ページレベルのCVを使用する場合は、訪問を指標とは見なさず、常にページビュー(または、CVを設定した直後にイベントを発生させた場合はtotalEvens)を使用してください。

どちらを使用しますか?

今あなたの質問に答えます。最初に、複数のユーザーが同じブラウザを使用していると信じる理由があるかどうかを自問します。コンピューターのようなキオスク用に作られたシステムを見たことがありますが、その場合は完全に有効なポイントです。ただし、同じブラウザを使用している可能性のあるユーザーの数以外は、メトリックとは無関係である可能性があります。

同じブラウザを使用している場合でも、セッションレベルのCVを使用している場合は、ユーザーが設定するまで常に空白になります。訪問中に変更すると、おそらく希望どおりのレイトが表示されます。セッションレベルのCVを使用することの唯一の欠点は、ユーザーがサインインしない場合、その訪問のCVがないことです。

したがって、セッションレベルの履歴書を使用する場合よりも、視聴者が同じブラウザを複数のユーザーと共有する可能性が高いと考える理由がある場合。それ以外の場合は、値が変更される可能性が低く、特定の訪問中にユーザーがログインしないことを決定した場合でもCVが得られるため、ユーザーレベルのCVを維持します。

PS

コード内のイベントが単なる例であるかどうかはわかりませんが、間違っています。イベントの最初の3つの引数は文字列であり、2つの文字列と整数を渡しているようです。

CVを設定した後は、必ずイベントまたはページビューが必要です。CVを設定してもGAにヒットが送信されないため、ヒットを送信する必要があります。CVを登録するためだけにイベントを送信する場合は、次のようなイベントを送信することをお勧めします。

_gaq.push(['_trackEvent', 'CV', 'set', '', 0, true]); 

これにより、非対話型イベントが発生し、バウンス率などのメトリックには影響しません。

于 2012-06-12T07:25:48.300 に答える
0

そこでGoogleはこの問題について考えましたが、これはそれほど重要ではないと判断しました。

...同様に、同じブラウザが2人の異なる訪問者によって使用されたが、それぞれに個別のコンピュータアカウントがある場合、アクティビティは2つの一意の訪問者IDで記録されます。一方、同じコンピュータアカウントを共有する2人の異なるユーザーがブラウザを使用した場合、2人の一意の個人がサイトにアクセスしたとしても、1つの一意の訪問者IDが記録されます。

私は解決策を見つけました:GAをロードする前に__utmaクッキーを削除すること。

于 2012-06-11T14:14:06.787 に答える