Web アプリの基本的な分析に Google アナリティクスを使用しています。次のような JavaScript 呼び出しを使用してページのインプレッションを追跡するだけです。
ga('create', 'UA-XXXXXXXXX-1', 'mydomain.com');ga('send', 'pageview')
サーバー側のイベントを確実にキャプチャできなかったため、このアプローチには常に不満を感じていました。Measurement Protocol を使用してサーバー側のイベントを記録できることを発見しました。サーバーでイベントを記録するのは簡単に見えますが、cid (clientid) パラメーターを除いて...
私が理解しているのは、ブラウザでは、現在持っているjavascriptを使用してcidがランダムに作成され、_ga Cookieに保存されるということです。また、同じクライアントに対するクライアント (「ページ ビュー」) とサーバー (その他のイベント) の呼び出しの間で clientid/cid 値を共有して、相互に関連付ける必要があることも理解しています。
この StackOverflow リンクは参考になりました。
質問は次のとおりです。
- サーバーで clientid を作成し、それをクライアントと共有します。また
- クライアントの 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 の質問です)。
どのアプローチを使用するかについてのアドバイスをいただければ幸いです....ありがとうございます!