7

Web アプリの基本的な分析に Google アナリティクスを使用しています。次のような JavaScript 呼び出しを使用してページのインプレッションを追跡するだけです。

ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com');ga('send', 'pageview')

サーバー側のイベントを確実にキャプチャできなかったため、このアプローチには常に不満を感じていました。Measurement Protocol を使用してサーバー側のイベントを記録できることを発見しました。サーバーでイベントを記録するのは簡単に見えますが、cid (clientid) パラメーターを除いて...

私が理解しているのは、ブラウザでは、現在持っているjavascriptを使用してcidがランダムに作成され、_ga Cookieに保存されるということです。また、同じクライアントに対するクライアント (「ページ ビュー」) とサーバー (その他のイベント) の呼び出しの間で clientid/cid 値を共有して、相互に関連付ける必要があることも理解しています。

この StackOverflow リンクは参考になりました。

質問は次のとおりです。

  1. サーバーで clientid を作成し、それをクライアントと共有します。また
  2. クライアントの JavaScript に clientid を作成させてから、それをサーバーと共有する必要がありますか? (これがより良い答えだと思います)

(1)について、私ができると思っていたことは次のとおりです。

  • サーバー(Google App Engine)のセッションにUUIDを保存します
  • Measurement Protocol を使用してサーバー側で直接イベントを作成するときに、その UUID を直接使用する
  • jsp を使用してページに ga オブジェクトを作成するときは、同じ UUID を使用します。

    ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com', 
    {'clientId': '<%=[value from the session]%>'});
    

このアプローチについて私が心配しているのは、ID がサーバー上のセッション全体でのみ保持されることです。clientId (cid) の意図は、それがクライアントに対して長期間持続することだと思います...だから、誰が新規ユーザーなのかリピーターユーザーなのか分からなくなると思いますか?

(2)については、率直に言って、これを行う方法がわかりません...上記のStackOverflowリンクから、gaオブジェクトのclientIdパラメーターからcidを取得できることがわかります。それをサーバーに送り返す方法がわかりません (これはおそらく単純な JavaScript の質問です)。

どのアプローチを使用するかについてのアドバイスをいただければ幸いです....ありがとうございます!

4

1 に答える 1

3

また、オプション 2 を使用することをお勧めします: Google にcidパラメーターの設定を処理させます。

パラメーターはドメインの _ga Cookie に既に設定されているため、すべての HTTP 要求でアプリ サーバーに渡されます。

サーバー側で行う必要があるのは次のとおりです。

  1. _ga Cookie から CID を抽出する
  2. 現在のユーザーにリンクします (アプリはおそらく独自のセッション Cookie を使用してユーザーを識別します)

たとえば、この回答はRailsコードを提供します:

def save_google_analytics_client_id
    if current_user && cookies["_ga"]
      client_id = cookies["_ga"].split(".").last(2).join(".")
      if current_user.google_analytics_client_id != client_id
        current_user.google_analytics_client_id = client_id
        current_user.save
      end
    end
  end
于 2015-11-05T13:24:27.567 に答える