アプリをより良く使ってもらう為には、ユーザーが実際どのようにアプリを利用しているか調べる必要があります。Google AnalyticsはWebアクセス解析として有名ですが、スマートフォン向けアプリに組み込む事も可能です。これにより、様々な事が測定可能になります。今回は私のアプリを例に、何が調査できるのかを見てみましょう。


■この記事のまとめ
・ユーザー数などを調べるのは非常に簡単
・どのページが見られたか、どのボタンが押されたか、もきちんと設定すれば調べられる
・今すぐアプリにGoogle Analyticsを設置してみるべき


■設置方法
 設置方法はAndroidiPhoneで基本的に同じです。ライブラリの追加、必要なものをimport、トラッキングコードを追記、AndroidならAndroidManifest.xmlへの追記、iPhoneならFrameworkの追加、です。


■すぐに測定できること
 まずは、適当にトラッキングコードを書くだけで何が測定できるのかを見て行きます。ここではチェックトレンド(Android版iPhone版)を例に結果を見て行きましょう。

○ユーザー数
google_analytics_user_summary
ユニークユーザー数、訪問数、直帰率、新規訪問数、がわかります。

○画面の解像度
Android(左)とiPhone版(右)
google_analytics_android_screen_resolution google_analytics_iphone_screen_resolution
Androidならばユーザーの画面の解像度、iOSならばiPhone・iPod・iPad(多分)のどれからアクセスされたかわかります。(iPadからアクセスされた事が無いので、そこは未検証)

○サービス プロバイダ
google_analytics_iphone_service_provider
通信事業社名です。どのキャリアからアクセスされているかの他に、無線LAN経由のアクセスについてもわかります。おそらく、NTTドコモは「ntt docomo inc. 」、KDDIは「kddi corporation 」、ソフトバンクは「japan nation-wide network of softbank bb corp.」、と表示されるようです。

○アクセス元の国
google_analytics_android_country
どの国からアクセスされたかがわかります。

○総評
ウェブ版のGoogle Analyticsのように、ある程度の情報を簡単に測定する事が可能です。しかし、アプリの操作に関する情報は集められない為、この情報をアプリ開発にフィードバックするのは難しいのでは。現状把握や概要を掴むのに向いています。


■きちんとトラッキングコードを設置すると測定できること
 ここからは、自分でトラッキングコードをきちんと設定すれば測定できる項目です。基本的に、1つの画面でPVを測定、ボタンやメニューでEventを測定、と考えましょう。私のアプリを例に、いくつか例を見て行きます。

○ボタンやメニューが押された回数
google_analytics_iphone_event_tracking_category_clicks
イベントというものを測定することにより、どのボタンが何回押されたか、メニューボタンは何回押されたか、等を自由に測定可能です。

○画面が見られた回数
google_analytics_iphone_contents_summary
ページビューを測定することにより、どの画面が何回見られたかを測定可能です。
注意して欲しいのは、いつトラッキングコードが読み込まれるかを考えないと正しく測定できないという事です。この画像の例だと、iPhoneアプリでtabbarを使い、それぞれのviewDidLoadにtrackPageviewを書いた為、アプリが起動するたびに全てのtrackPageviewが記録されてしまっています。

○端末が縦か横か
カスタム変数を使う事で、取得する値を自由に設定する事ができます。先日のGoogle I/OではAndroid端末が縦か横かを調べるのに
tracker.setCustomVar(1,"Screen Orientation","orientation",2); //(Orientationにはlandscapeかportraitが入ってる)
という書き方が使われていました。このように書くと、Google Analyticsのカスタム変数の項目に「Screen Orientation」というのができ、そこにlandscapeとportraitの回数が記録されていきます。

○総評
イベントトラッキングはコードが呼ばれた回数を記録するので、これ以外にも色々と応用できます。また、カスタム変数を使えばより細かく自由な測定が可能です。これらの測定により、アプリのどの機能がよく使われているのか把握でき、開発の参考となるでしょう。


■まとめ
 全体として、このようなデータが取れます。Android(左)とiPhone版(右)。(iPhone版はgoogle Analyticsを最近組み込んだのでこのようになっています。)
 google_analytics_android google_analytics_iphone
 使ってみた感想としては、非常にシンプルに色々な情報が集められるな、というのが第一です。しかし、ボタンの押された回数等を測定するには自分で考えて設定する必要があり、複雑なアプリでは面倒な作業。何を調べたいのかを設定しておくのが大事そうです。


■補足
・プログラムがどのように動いているか、その状態遷移をきちんと把握していないと正確な測定ができません。例えばGoogle Analyticsでは平均滞在時間の測定も可能ですが、これを正確に知りたければ、いつどのような条件でアプリが終了or中断されるか、どう再開されるか、知らなければなりません。
・Google Analytics for Mobileではアプリがオフラインの時もデータを保存し、次にオンラインになった時にデータを送ってくれます。自分から通信しないアプリでも、いつ送信するか制御可能です。
・文中でGoogle I/Oに言及しましたが、先日のGoogle I/Oでも講演がありました。その後の報告会でもこのトピックが紹介されたようで、アプリへのGoogle Analyticsの導入はますます進んでいくでしょう。 該当講義のYoutubeはこちら:YouTube - Google I/O 2011: Optimizing Android Apps with Google Analytics。日本での報告会の報告はこちら: GTUG主催Google I/O報告会レポート: 一流モバイル開発者を夢見るブログ。Youtube動画は機能の紹介に終始していたので、あんまり面白く無いです。でもカスタム変数の使い方は面白かったかも。