2012年4月30日月曜日

エンジニアから見た、Google Analyticsでできること

GWで暇だったので、いろいろ記録しておくべきことを書こうと思い、ブログを始めました。
日頃の業務でGoogle Analyticsをメインに、クライアントのWebサイトのアクセス解析導入・解析・報告を行なっていますが、エンジニアから見たGoogle Analyticsについて、ここでまとめておきたいと思います。

具体的には、Google Analyticsって何をどこまで出来るのか、ということです。
一般的な説明はオフィシャルサイトにまとめてありますが、「どういうふうに解析できるか」の視点で書かれています。
エンジニアなら、どんなデータを収集できて、どんなふうにカスタマイズできるの?ってところに興味がありますよね? ありませんか…

Google Analyticsの開発者向けドキュメントは、https://developers.google.com/analytics/ にあります。ただし、日本語版のドキュメントはどうしても古いので、必ず英語版を参照します。

開発者ガイドには、下記のトピックが載っています。
  • Collection
    • Webサイトのトラッキング
    • Androidアプリのトラッキング(!)
    • iOSアプリのトラッキング(!)
  • Configuration
    • Management API: 設定情報へのアクセスAPI
  • Reporting
    • Core Reporting API: レポートデータへのアクセスAPI
  • Social Data Hub: ソーシャルメディアのオーナー向け。SNSデータをGAに統合できます。
「Webサイト以外にも、Android・iOSのネイティブアプリのトラッキングまでできます。設定情報とレポートデータはAPIからアクセスできます。あと、SNS持ってたらデータを統合できるよ。」とのことです。さすがGoogle、エンジニアが気にしそう、興味持ちそうなことはわかってます。

Android・iOSアプリのトラッキングやAPI、Social Data Hubの件はちょっと置いといて、Webサイトのトラッキングについて、何ができるか見てみましょう。

標準トラッキングコードで収集できるデータ

特にカスタマイズせずに、各ページにトラッキングコードを挿入すると、下記のデータは自動的に収集されます。
  • ユーザ関連の情報
    • 地理的位置・使用言語
    • ブラウザ情報
    • ページロード時間
  • 流入経路
    • Referrer・検索キーワード
  • 閲覧コンテンツ・遷移
ちゃんと設定できていれば、下記のデータも取れます。
  • ゴール達成: 申し込み完了などの目標が達成されたか
  • サイト内検索
  • AdSenseの収益

(ちょっと)カスタマイズしないとまずいケース

標準トラッキングコードのままだとちょっとまずい、代表的なケースを下記にあげます。
  • サイトが複数のドメイン・サブドメインにまたがっている場合
    • Cookieの有効ドメインの問題で、クロスドメインな遷移をすると、GAのセッションは別としてカウントされます。xxx.jp -> xxx.comみたいな遷移をするときは、リンク元ページで_linkメソッドを使ってセッション情報をGETパラメータで渡し、遷移先ページで_setAllowLinkerメソッドをつけて、セッション情報を受け取りましょう。
    • サブドメインが違うだけなら、_setDomainNameメソッドでCookieのDomainを設定しましょう
  • 動的サイトで、違うコンテンツを表示するのにURLが一緒になる場合
    • 例えば申し込みシステムで、入力フォームと確認画面と完了画面のURLが全部一緒なんていうこともありますよね。GAはURLを基準にページを識別するので、ちょっと工夫が必要です。_trackPageViewメソッドに仮想URLを追加して、別URLにしてあげましょう。

カスタマイズしないと収集できないデータ

普通のサイトで、普通の使い方をするなら標準トラッキングコードで十分ですが、それでは満足しないなら、カスタマイズしましょう。
  • キャンペーントラッキング: 流入元のキャンペーン(広告・媒体)を区別するのに使います。
    • AdWordsキャンペーンは、Auto-TaggingをONにすると自動的にトラッキングされます。
    • Yahoo!リスティングなど、AdWords以外のメディアや、メールマガジンなどで集客していて、その効果をトラッキングしたいなら、ターゲットURLにパラメータを追加します。Campaign URL Builderを使うと、日本語のエンコードまでやってくれます。
  • カスタム変数: カスタマイズできる機能の中で多分もっとも複雑です。トラッキングデータに任意のメタデータを付加できます。とにかくガイドをしっかり読んで使いましょう。
    • Page-Levelカスタム変数: ページのカテゴリや、動的コンテンツに何を出力したのかを記録するのに使います。
    • Session-Levelカスタム変数: ログインしたユーザ/していないセッションを区別したり、キャンペーン告知Aを見たセッションだけを区別したりするために使います。
    • Visitor-Levelカスタム変数: セッションが終わっても、Cookieにデータを記録して、次回のセッションでもデータを送ります。ユーザの性別・年代なんかを記録して、ユーザ層別の傾向を見たりするのに使います。
  • Eコマーストラッキング: ECサイトの売上データをトラッキングします。カート機能の注文完了画面にECトラッキング用のコードを挿入してデータを飛ばします。
    • _addItem: トランザクションに含まれる商品の情報を追加します。
    • _trackTrans: トランザクションに関する情報(合計金額・顧客の地域 etc.)を追加します。
  • イベントトラッキング: なんでも任意のイベントの発生を記録します。
    • JSで取れるイベントであれば、ハンドラに_trackEventメソッドの呼び出しを書けば、発生したページと、_trackEventメソッドのパラメータに指定した、イベントカテゴリ・ラベル・値を記録してくれます。
  • 検索エンジンの設定
    • GAはReferrerを見て大体の検索エンジンからの流入を自動識別してくれますが、日本のマイナー検索エンジン(nifty searchなど)を検索エンジンからの流入として認識させたければ、_addOrganicメソッドを呼んで追加しておきます
  • ソーシャルインタラクション: ページ上の「いいね」・「ツイートする」などのSNSボタンの使用をトラッキングします。
    • Google+ ボタンは勝手にトラッキングしてくれるはずです。
    • AddThisを使っているなら、AddThisのヘルプに書いているように、GAのアカウント番号を設定すれば、自動的にビーコンが飛びます。
    • そうでなければ、ボタンのクリックイベントか、ソーシャルプラグインの書き込み完了イベントのハンドラで、_trackSocialメソッドを呼び出します。
  • ユーザタイミング: ページロード時間は標準トラッキングコードで収集してますが、任意のリソースのロード時間なんかを収集することもできます。
    • 非同期JSのロードで、ロード完了イベントのハンドラで_trackTimingメソッドを呼び出したりして使う。
DevGuideに書いてる機能は以上です。GAはJSビーコン型なので、Javascriptでどうにかなることなら、大体のデータは取得してGAに飛ばせます。後は、飛ばしたデータをGAがどう処理して、どういうレポートに反映してくれるかの問題かと思います。

書いてみて思いましたが、いろいろ出来過ぎですね。
それぞれの機能に絞って書いたほうが良かったかも…。

0 件のコメント:

コメントを投稿