対象読者
- Googleアナリティクスを利用している/利用したいウェブサイトの制作者の方
- JavaScript開発者の方
ディメンションと指標
まずは今後Googleアナリティクスを解説するにあたって必要なこれらの単語を説明します。 ディメンションと指標は、どちらもGoogleアナリティクスのレポート画面に出てくる表示項目です。
ディメンションはデータの属性です。「ページ」「ブラウザ」「市区町村」などです。 指標はデータを定量化したものです。「ページビュー数」「セッション」「ページ別訪問数」などが挙げられます。 大抵の場合、表の1番左にあるのがディメンションで、右に続く数値の列が指標です。
ページ(ディメンション) | ページビュー数(指標) | ページ別訪問数(指標) |
---|---|---|
/index.html | 300 | 200 |
Googleアナリティクスのレポートはこのようにディメンションと指標の組み合わせでできています。
データ収集の仕組み
それでは開発者の方向けにGoogleアナリティクスの技術的な仕組みをご紹介します。仕組みを理解して適切な設定を行うようにしましょう。
Googleアナリティクスは、ヒットという単位でデータを収集します。ウェブ計測を行う場合、主に使用するヒットは「ページビュー(pageview)」「イベント(event)」「ソーシャル(social)」「タイミング(timing)」の4種類が挙げられます。
どのヒットの種類を利用するかはsendと一緒に指定します。
// ページビューを送信する場合 ga('send', 'pageview');
ga('send', [hitType], [hitTypeに応じた必要なパラメータ])
というコードを実行することで、初めてGoogleアナリティクスにデータが送信されます。
sendメソッドが実行される際、Googleアナリティクスは何も指定しなくても自動的にいろいろなデータを送信してくれます。例えば以下のようなデータです。
- 現在のページのURL
- 現在のページのタイトル
- 前のページのURL
- ユーザーの言語
- 画面サイズ
- 解像度
- ユーザーエージェント
さて、ヒットを送信することでデータが収集されるわけですが、ではどうやって同じユーザーの行動であると判別しているでしょうか。
それを実現しているのがCookieと、トラッカーと呼ばれるオブジェクトです。
トラッカーの重要な役割の1つは、送信先のトラッキングIDを指定することです。トラッキングコードを動かす際はまず最初に必ずトラッカーを生成し、トラッキングIDを指定しなければいけません。トラッカーの生成はcreateメソッドで行われます。
// UA-XXXXX-Yへデータを送信するトラッカーを生成 ga('create', 'UA-XXXXX-Y', 'auto');
トラッカーは生成されると、まずクライアントIDを発行します。これがユーザーを識別するIDです。そして発行されたクライアントIDは_gaという名前でCookieに記録されます[1]。
備考:_gaの値
[1]:_gaにはクライアントIDだけが記録されるわけではありません。_gaには「GA1.2.1234567890.1234567890」のような値が記録されますが、このうちクライアントIDは「1234567890.1234567890」の部分だけです。また、クライアントIDの値を取得したい場合、Cookieから直接取得することは避けてください。
ヒットの送信時、このクライアントIDも一緒にGoogleアナリティクスのサーバーへ送信されます。
そしてユーザーが次のページへ移動して再度トラッカーが生成されると、トラッカーは今度はすでにCookieにクライアントIDが記録されていることを確認してそのクライアントIDを使用します。
これによりGoogleアナリティクスは1人のユーザーが起こした行動を判別することができるようになるというわけです。
Cookieはもちろんドメイン単位に発行されるものです。どのドメインにCookieを発行するかは3つめのパラメータ(cookieDomain)で指定することができます。つまり、上記の例ではauto
を指定しています。
autoを指定すると、できる限り上位のドメインにCookieを発行します。 何の指定もない場合、トラッカーは現在のページのドメインにCookieを発行します。ただし現在のドメインがwwwから始まるページだった場合、wwwは無視されます。
この2つの違いはどのような影響があるでしょうか。
例えばウェブサイトのドメインとしてsubdomain1.example.comとsubdomain2.example.comの2つを使用しており、cookieDomainの指定はしていない場合を考えてみます。
subdomain1.example.comを訪問した際、トラッカーはクライアントID:123を.subdomain1.example.comに対して発行します(先頭に「.」が付いているのは、サブドメインからも参照可能であることを示しています)。
その後ユーザーがsubdomain2.example.comへ遷移すると、トラッカーは.subdomain1.example.comに発行されたクライアントIDを確認することができません。そのため新たにクライアントID:456を.subdomain2.example.comに対して発行します。
データを受け取ったGoogleアナリティクスのサーバーは、クライアントID:123と456は別人として理解します。実際には同じユーザーが行った行動であってもそのように計測はされないのです。
一方cookieDomainをautoで指定した場合です。subdomain1.example.comを訪問した際、トラッカーはクライアントID:123を.example.comに対して発行します。そしてユーザーがsubdomain2.example.comへ遷移すると、トラッカーは.example.comに発行されたクライアントIDを確認し、同様にクライアントID:123としてデータを送信します。これによりGoogleアナリティクスのサーバーは同じユーザーとして認識することができます。
![cookieDomainの設定](http://cz-cdn.shoeisha.jp/static/images/article/9909/9909_001_s.gif)
cookieDomain | www.example.com訪問時 | subdomain.example.com訪問時 |
---|---|---|
(指定なし) | .example.com | .subdomain.example.com |
auto | .example.com | .example.com |
その他のcookieDomainの値
[2]:cookieDomainには「指定なし」「auto」以外に、現在のドメインをそのまま利用する「none」や、ドメインを直接指定することも可能です。
cookieDomainの指定はユーザーを識別する上で非常に重要です。特に理由がない限り、cookieDomainはautoを指定しておくことが望ましいでしょう。
さて、データ収集によりGoogleアナリティクスには情報が蓄えられましたが、それらのデータをGoogleアナリティクスのレポートに表示するにはいくつか加工を施す必要があります。
その加工の説明をする前に、まずはGoogleアナリティクスのユーザー、セッション、ヒットについてご紹介します。