続・トラッキング技術とCookie

かなり間があいてしまいましたが、前回に引き続き、トラッキング技術のお話となります。
読まれていない方は「トラッキング技術とCookie」の回も合わせてお読みください。

前回はファーストパーティCookieサードパーティCookieの違いから、
サードパーティCookieの抱えるリスクをお話しました。
そしてGoogleAnalytics(以下GA)はサードパーティCookieではなく、
ファーストパーティCookieを利用している理由についても述べたと思います。

では今回は、GAの仕組みを簡単に見ていきましょう。

Analyticsは何型のトラッキング

ラッキング方法には大きく3種類の仕組みがあります。

Webビーコン
サイトが表示時に、IMGタグで1px×1pxの透過GIFなどを表示してトラッキングする方法
パケットキャプチャリング型
Webサーバに流れるトラフィックを監視し、トラッキングする方法
サーバリクエスト型
Webサーバがリクエストを受けた際、PHPなどのプログラム(バックエンド側)で
ログを収集する専用のサーバなどにリクエストを飛ばしトラッキングする方法


このうち、GAはWebビーコンにあたります。
現在トラッキングJavaScriptを利用したWebビーコンのトラッキング方法が主流となっています。

ガラケーの場合はJavaScriptの制約がありましたので、サーバリクエスト型でやる事が主流でした。
ただしこれはサーバサイドでプログラムを仕込む必要がありますので、エンジニアの可動が必要になり
導入に手間がかかるというデメリットがあります。
スマフォではJavaScriptが使えますので、現在ではPC、スマフォともにJavaScriptを利用した
Webビーコン型でのトラッキング方法が利用される傾向にあります。

またパケットキャプチャリング方式は、HTMLやサーバサイドのプログラムに手を入れることはないのですが、
ネットワークを監視する専用の仕組みなどが必要になり、コストもそれなりにかかってしまうデメリットがあります。

GAのファーストパーティCookieを利用したトラッキング方法

GAではWebビーコンを利用してどのようにトラッキングがされているでしょうか?
簡単に挙動を説明しますと、以下の通りとなります。

1.サイトが表示された際に、JavaScriptが実行される
2.ブラウザ側にて、アクセスしたドメインでユーザのCookie情報に記録される
3.透過GIFが生成され、そこからCookieに保存した情報がGA側のサーバに送られる


2のあたりがポイントで、GAはファーストパーティCookieを利用しているので、
ラッキングをしているサーバ側でCookieに保存処理を行っているのではなく、
サイト側でJavaScriptを利用してCookieの保存処理を行っています。
そこで保持している情報をGoogle側のサーバに送信して収集しているわけです。

GAのトラッキングURLを見てみよう

ではそのGAに送信する際、どういった情報が送信されているかみてみます。

http://www.google-analytics.com/__utm.gif?utmwv=5.4.5&utms=2&utmn=741867411&utmhn=xxxxxx.xxx&utmcs=UTF-8&utmsr=1920x1080&utmvp=1573x273&utmsc=32-bit&utmul=ja&utmje=1&utmfl=11.9%20r900&utmdt=XXXXXXXXX&utmhid=801638511&utmr=-&utmp=%2F&utmht=1384678341911&utmac=UA-XXXXXXX-1&utmcc=__utma%3D150521697.770591591.1384349645.1384349645.1384678311.2%3B%2B__utmz%3D150521697.1384349611.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=D~

長いですね(笑。
では、URLに紐づいている引数の中でutmccというものに注目してみましょう。
その中の引数をデコードしてみます。

__utma=150521697.770591591.1384349645.1384349645.13846783111.2;+__utmz=150521697.1384349611.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);&utmu=D~

この中にutmaとutmzという二つの引数が見えてきました。
こちらはCookieにも保存されている情報となります。

__utmaは、ユーザIDや訪問時間等が記録される
__utmzは、流入元に関連する情報が記憶される

こういう情報をブラウザ側のCookieに保存しておいて、
情報送信時にCookieから取り出し、サーバへ送信しているわけです。

ということは、Cookieの中身をみれば初回訪問時間や前回訪問した時間を知ることができる
ということになります。

GAの利用する際、押さえておきたい仕組みと運用知識

GAを利用する際に、こんなときどうなるんだっけ?
という話をまとめておきたいと思います。

初回アクセス判定について

GAはファーストパーティCookieを利用しているので、該当ドメインのGAのGookieを削除した場合は、
GAのアクセス情報が消えてしまいますので、次に訪れた際は初回アクセスとみなされます。

複数ドメインをまたいで取得する方法

クロスドメインラッキングといわれる仕組みで対応が可能です。
ただし、タグを張り替えなければなりませんので、ソースに手をくわえる必要があります。
手順は下記に公開されています。
https://support.google.com/analytics/answer/1034342?hl=ja

ラッキングデータが取得出来ないケース

GAのタグを張っているのに、ページにアクセスしても
Analyticsのレポート画面に反映されない場合は以下の可能性が疑われます。

1.ブラウザの設定でファーストパーティーのCookieをブロックする設定になっている
2.ブラウザの設定でJavaScriptが動作しないようになっている
3.Analyticsが実行されるよりも早く別のJavaScriptでエラーがでている

こういった場合は、AnalyticsのJavaScriptタグは動作しないので、トラッキングデータが取得できません。

Universal Analyticsについて

今回は通常のAnlyticsについてのお話をしていますが、
GoogleはUniversal Analyticsという機能を2013年の3月に一般公開し、
2014年4月にはβ版から正式リリースとなりました。
http://analytics-ja.blogspot.jp/2014/04/universal-analytics.html

Universal Analyticsではセッションやキャンペーンの期限が任意に設定できたり、
User-ID機能によりマルチデバイスでもユニークユーザとして測定ができる仕組みがあることが特徴
です。
通常版GAからUniversal GAに移行する場合はタグの張替えが必要となります。

ラッキングの新しい方向性

現在、ブラウザのデフォルト設定としてサードパーティCookieをブロックするということが標準化してきています。
これによりドメイン間をまたいだユーザの特定ができなくなり、効果的なリターゲティング広告などが
できなくなってしまうというデメリットがでてきてしまいます。
そこで今後はCookieに依存しないトラッキング技術の方向性の一つとしてFingerPrint系の技術
注目が集まりつつあります。

FingerPrintとは
アクセスした場所、OSやブラウザの環境変数などの情報などに紐づく情報を元に個人を特定する技術
たとえば、全く同じ場所、同じ端末、同じブラウザからだと同一端末と認識とできたりする
ブラウザがアップデートされたり、場所が変わったりすると別人とみなされてしまうため
このあたりを類推する技術も重要となる

現段階では、完全にCookieを捨て、乗り換えられるような精度を持つトラッキング技術というのはありませんが、FingerPrintのような技術を応用した新しいトラッキング技術は注目しておくべきでしょう。

とくに41st parameterのAdTruthCookieを利用せず個人情報を特定しない情報のみを使い、
個人を類推できる技術として注目されています。
海外ではDMPセラーとして最大手のBlueKaiなどで導入されており、
国内ではAmoadやCyberZなどをはじめアドテク業界の企業で導入されています。

また今後はiPhoneiPadなどデバイス間をまたいだ個人特定技術のニーズが確実に求められてきます。
おそらくAppleGoogleといったPC、スマートフォンの両方で大きなシェアを持つ企業が、
デバイスを超えたトラッキングの仕組みを武器にアドテクノロジーの分野で優位に立ってくるでしょう。

最後に

2回にわたりトラッキングに関する話を、エンジニア以外の方にもわかりやすいよう意識してまとめてみました。

これから、トラッキング技術には大きな変化が訪れようとしています。
特に広告分野、アドテクノロジーではその先端をいった技術研究もますます成されていくでしょう。

ラッキングはさらに難しい仕組みになっていくことが予想されますが
この技術をエンジニアだけでなく、ビジネスとして関わる方が理解しておくことが重要だと思います。
そうでなければ、いかに有用な技術があったとしてもそれを活かしきれず、
千載一遇のビジネスチャンスを逃してしまうかもしれません。
またエンジニアとしては、技術がわからない人にでも仕組みを伝えられる力を身につけることが重要になります。

そして、その技術の最適な利用法をメリット・デメリットを理解した上で
サービスなどに取り入れ活かしていき、
運用実績を積み、
さらにビジネスを通して課題解決を繰り返し改善していくことで、
市場においてスタンダートな技術が生まれてくるのだと思います。