Androidアプリ内での行動解析ーGoogle Analytics for Mobile Apps
Analytics Tracking for Mobile Apps – Google Analytics – Google Code
先日、Google Analyticsのモバイルアプリ向けSDKがリリースされました。AndroidとiPhoneに対応していて、アプリ内でのページビューやイベントのトラッキングがこれにより可能になるとのことです。
アプリ内でのユーザの行動パターンを把握できれば、この機能は使われてないね、とか、意外とこんな機能が使われてるのか、とか、この画面にはほとんど来てくれてないね、というのが分かります。このデータから、アプリ内広告はどこにあるとクリックしてもらえるか、あるいは、ユーザの使い勝手を向上させるようなUI設計もできるに違いありません。
これはAndroidアプリ版SEOができる!ということで早速試してみました。
前提条件
今回試したのはGoogleAnalyticsAndroidのバージョン0.7で、必要なビルド環境はAndroid OS 1.5、実行環境はAndroid OS 1.5です。
Analytics SDKをプロジェクトへ組み込む
Analytics SDKのダウンロード
まずは以下のページへアクセス。
Analytics Tracking for Mobile Apps – Google Analytics – Google Code
上記ページの一番下に最新バージョンのAndroid用SDKダウンロードリンクがあるので、そこからダウンロードしましょう。
2009/11/17時点ではバージョン0.7。
zipファイルを展開すると、libGoogleAnalytics.jarやsample、Readme.txtなどが入ってます。
プロジェクトの設定
次にAndroidプロジェクトからAnalyticsコードを使えるように設定します。
プロジェクトのルートディレクトリの中にlibsディレクトリを作成し、その中にlibGoogleAnalytics.jarを放り込みます。
eclipseを使っている場合は、jarファイルをビルドパスへ加えておきます。
プロジェクトのAndroidManifest.xmlに以下の2行を追加します。
完成系はこのような感じになります。
Google Analyticsアカウントを用意する
モバイル版Analyticsなので、Google Analyticsアカウントが必要になります。
アカウントをお持ちでない方は、下記URLからアカウントを取得しましょう。
Google Analytics | Official Website
アカウントを作成したら、アプリ用のプロファイルを作成します。
プロファイル作成にはURLが求められますが、これはダミーのものでよいようです。
アプリ名等が分かるものをつけるとよいと思います。
ここでは、
http://androidtest.android.com
という名前にしました。
プロファイルを作成すると、ウェブプロパティIDというものが設定されます。
UA-XXXXXX-XXの形式のIDです。

# 実際にはまだトラッキングは行われていないので、ステータスは「未確認」の状態になります。
このIDはアプリ内にトラッキングコードを埋め込む際に利用するので、控えておきましょう。
これでAnalyticsアカウントの準備は完了です。
ソースコードにAnalyticsコードを埋め込む
Analytics SDK付属のReadmeファイルを読むと、このanalyticsライブラリは、ページビューやイベントデータを内蔵のsqliteへ一時的に保存し、外部へ通信するタイミングでたまったデータを送信するようなつくりになっているようです。
簡単なアプリを作ってみます。アプリの画面はこんな感じでプロジェクトの雛形にボタンを2つ追加しただけのものです。
早速ですが、Analyticsコードを埋め込んだものはこんな感じになります。
トラッキングに関する作業はGoogleAnalyticsTracker クラスで処理します。
以下の5つのメソッドを抑えておけば概ね問題なし。
start()
第1引数には、先ほど控えたウェブプロパティIDを指定、第2引数にanalyticsへデータを送るインターバルタイムを秒数で指定。
数値なしのstartメソッドの場合、手動でアクセスする設定になり、通信させたい処理の所へdispatch()メソッドを埋め込む形になります。もともと通信をするアプリの場合は、こちらの形でstartさせて、既存の通信処理の後にdispatch()させるとよいです。
ただ、実際に試してみたところ、上のインターバルタイムを指定した場合、指定した時間ごとに必ずアクセスするわけではなさそうです。logcat上で、analyticsサーバへのアクセスがあるとログが出るのですが、これがなかなか不定期で、まだ謎が多いです。送信データがない場合は送られなそうなのですが、あっても必ずログが出るわけではなく、それでは起動直後からログインターバル秒たつと送られるのかと思っても、そういうわけでもなく、いまいち分からず。これは今後また探ってみます。
stop()
トラッキングを停止します。
trackPageView()
ページビューとしてカウントします。引数に”/hogehoge”とするとanalytics上では/hogehogeへのページビューとしてカウントされます。アプリ内でどの画面がよく表示されるか等に使えそうです。
trackEvent()
dispatch()
analyticsデータをgoogleへ送るメソッドです。通信処理の後に埋め込んだりするとよさそうです。
これだけ覚えれば実装できるので、コードに埋め込むのは簡単ですね。
コードを埋め込んだら、実際にぽちぽち操作をしてみます。google analyticsの仕様上、リアルタイムでの解析はできないので、ぽちぽち操作をして一晩待ちましょう。
トラッキング結果を眺める
日が変わったので、analyticsで確認してみます。
以下はユーザサマリー画面です。
ユニークユーザは僕しか使用していないので1です。
セッション数はこの場合、コード上でstart()を読んだ回数と同じになってます。アプリを6回起動したのでセッション数は6です。
ページビューはtrackPageView()メソッドを読んだ回数分。
しっかりデータは取れてるようです。
ページビュー
続いて、コンテンツサマリー。
コード内で”/testApplicationHomeScreen”と指定していたので、/testApplicationHomeScreenとして33回ボタンが押されたことが記録されています。
実際にはIntentを投げるタイミングでこのトラッキングコードを仕込むと遷移回数が取れそうです。
イベント
最後にイベントです。
ClicksカテゴリのButton02アクションが22回行われたと表示されてます。
カテゴリ、アクション、ラベルそれぞれのデータも確認できます。
まとめ
今回の例では、トラッキングデータが1日分だけで、ユーザも僕一人とデータ量がさびしいので、このような結果になっていますが、実際のアプリでこれを使えばアプリ内での行動パターンやアクティブユーザ数まで把握できそうなので、アプリの広告価値を検討することもできそうです。また、アプリ内から他のアプリケーション紹介へのリンクや、自社ウェブサイトへのリンクを張っている場合には、これらのデータを活用して、効果的な導線を用意することもできそう。ただ、これが広まっていくとウェブ上だけでなく、アプリ内までもgoogleの支配下になっていきそうで少し怖いですが、得られるメリットが多いのも事実だと思うので、導入を検討してみてはいかがでしょう。









