Androidアプリ内での行動解析ーGoogle Analytics for Mobile Apps

By daichi1128
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

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です。

analytics_list
# 実際にはまだトラッキングは行われていないので、ステータスは「未確認」の状態になります。

このIDはアプリ内にトラッキングコードを埋め込む際に利用するので、控えておきましょう。

これでAnalyticsアカウントの準備は完了です。

ソースコードにAnalyticsコードを埋め込む

Analytics SDK付属のReadmeファイルを読むと、このanalyticsライブラリは、ページビューやイベントデータを内蔵のsqliteへ一時的に保存し、外部へ通信するタイミングでたまったデータを送信するようなつくりになっているようです。

簡単なアプリを作ってみます。アプリの画面はこんな感じでプロジェクトの雛形にボタンを2つ追加しただけのものです。

analytics_app

早速ですが、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で確認してみます。
以下はユーザサマリー画面です。

GoogleAnalytics_user

ユニークユーザは僕しか使用していないので1です。
セッション数はこの場合、コード上でstart()を読んだ回数と同じになってます。アプリを6回起動したのでセッション数は6です。
ページビューはtrackPageView()メソッドを読んだ回数分。

しっかりデータは取れてるようです。

ページビュー

続いて、コンテンツサマリー。

GoogleAnalytics_contents

コード内で”/testApplicationHomeScreen”と指定していたので、/testApplicationHomeScreenとして33回ボタンが押されたことが記録されています。

実際にはIntentを投げるタイミングでこのトラッキングコードを仕込むと遷移回数が取れそうです。

イベント

最後にイベントです。

GoogleAnalytics_event

ClicksカテゴリのButton02アクションが22回行われたと表示されてます。

カテゴリ、アクション、ラベルそれぞれのデータも確認できます。

GoogleAnalytics_category
GoogleAnalytics_action
GoogleAnalytics_label

まとめ

今回の例では、トラッキングデータが1日分だけで、ユーザも僕一人とデータ量がさびしいので、このような結果になっていますが、実際のアプリでこれを使えばアプリ内での行動パターンやアクティブユーザ数まで把握できそうなので、アプリの広告価値を検討することもできそうです。また、アプリ内から他のアプリケーション紹介へのリンクや、自社ウェブサイトへのリンクを張っている場合には、これらのデータを活用して、効果的な導線を用意することもできそう。ただ、これが広まっていくとウェブ上だけでなく、アプリ内までもgoogleの支配下になっていきそうで少し怖いですが、得られるメリットが多いのも事実だと思うので、導入を検討してみてはいかがでしょう。

関連する投稿