Google Analytics の cookie 値を HTTP サーバーのアクセスログに記録できないか調べたので、調べた結果を記載します。
動機
ユーザーの行動を解析する上で HTTP アクセスログと、Google Analytics の クライアントID が紐付けしておくと便利な場合があると、考えたためです。
参考
- Cookie とユーザーの識別 | ウェブ向けアナリティクス(analytics.js) | Google Developers
- Apache - apacheでクッキーのログって残ってましたっけ?(1190)|teratail
- mod_usertrack - トラッキングクッキーの発行
前提
-
OS の version
cat /etc/redhat-release CentOS release 6.9 (Final)
-
HTTP サーバーの version
httpd -v Server version: Apache/2.2.15 (Unix) Server built: Oct 19 2017 16:43:38
アクセスログに出力する情報
以下の2つをアクセスログに出力します。
-
mod_usertrack で出力する Cookie 値
初回アクセス時は、Google Analytics の Cookie 値 は JavaScript で出力されるため 空になります。
このアクセスの紐付けのため、mod_usertrack を使用します。
mod_usertarack に出力する Cookie の 有効期限は、Google Analytics の Cookie 値と同様で 2年にしておきます。 -
Google Analytics の Cookie 値
Google Analytics の Cookie 値を出力します。 キー値は、デフォルトの_ga
です。
設定方法
httpd.conf で トラッキング Cookie を出力をONにする
-
モジュールの有効化
# コメントアウトさえていれば、解除する LoadModule usertrack_module modules/mod_usertrack.so
-
Cookie のトラッキングの有効化
Cookie 名称が デフォルトだと、Apache だとわかる名称になるので変えたほうがいいかと思います。
# For user_track CookieDomain .monotalk.xyz CookieTracking on CookieExpires "2 years" CookieName track CookieStyle Cookie
-
気に成った点
Cookie2
を使おうとして、以下の記載をしたのですが、何故か設定されず、Cookie
を使用するようにしました。
CookieStyle Cookie2
httpd.conf で Log に Cookie を出力するようにする
\"%{track}C\" \"%{_ga}C\"
の記載を追加し、ログ行の末尾に、Cookie 値を出力するようにしました。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Accept-Language}i\" \"%{track}C\" \"%{_ga}C\"" combined
これで、track
もしくは、_ga
の値が同じ人は、同じユーザーという扱いでログ解析を行おうかと思います。
以上です。
コメント