エンジニアもGoogle Analyticsを使ってデータに向きあうべき理由で、エンジニアもデータに向き合ったほうがよいと紹介しました。
この記事では、私の公開している採点簿というAndroidアプリで実践したトラッキングログ実装について、失敗談を含めて紹介します。
目次
トラッキングログをとりあえず取っておこうはやめる
アプリ開発を初めてすぐのときは、「分からないのでとりあえずトラッキングログを実装する。」という考えの元実装していました。そうすると、本当に取りたかったクリックログが分からなくなったり、どの画面でのクリックログなのか分からなかったり、分析が出来なくて苦戦しました。
その名残がコレです。
イベントカテゴリは、「どんな種類のイベントなのか」で分ければとても見やすいのですが、昔に追加した button_press_new、paging、ui_actionなど、後から見た時になんのイベントなのか分かりません。pagingもui_actionもUI操作のアクションなのに混在してかなり混乱します。安易な名前を付けてしまったことをとても後悔しています。
オススメのカテゴリ分け
では、どんな種類に分ければ分析し易いのでしょうか?
半年前にリファクタリングをした際、全てキレイに定義し直しました。
その中で決めたのが以下の4つになります。
default
特に注視しなくてよいイベントはすべてdefaultカテゴリに分類することにしました。ほとんどのイベントは迷うことなくここに格納することができます。
app_short_cuts
つい先日、Android 7.1.1から利用できるAppShortCutsを実装しました。AppShortCutsは起動のイベントなので、他のイベントとは少し性質が違いますね。また「新しい機種でしか使えない機能がどれくらいのユーザーにリーチしているか」をKPIに置いていたのでここだけを注視出来るようにカテゴライズしました。

カテゴリーapp_short_cutsで絞り込んだイベントログのグラフ
グラフを見て分かるように、実際25クリックしか無いので全く使われていないことが分かります。
review
QiitaにAndroidアプリでレビュー訴求の実装とレビュー荒れ防止の対策について書きましたが、私のアプリではレビュー訴求を仕込んでいます。「レビュー訴求は効果的なのか?」「何回目のレビュー訴求が効果あるのか?」などをKPIに置いていたのでレビュー関連のイベントだけを注視出来るようにトラッキングをreviewとしてカテゴライズしました。

カテゴリーreviewで絞り込んだイベントログのグラフ
図はここ1ヶ月のレビュー訴求に関するトラッキングログですが、以外に12人もレビューを書いてくれていることが分かります。
google_plus
Androidアプリに+1ボタンを設置したらストアのランキングは上がるのか?を検証していたので、「+1ボタンの訴求が利用されているか?」をKPIとして置き、+1ボタン関連のイベントだけを注視出来るようにトラッキングをgoogle_plusとしてカテゴライズしました。

カテゴリーgoogle_plusで絞り込んだイベントログのグラフ
残念ながら、+1されたかどうかのイベントまでは取れませんでしたので分析は出来ませんでした。
イベントラベルの使い方
「何回目のレビュー訴求が効果あるのか?」をKPIとして置いてると書きましたがそれを測るのにイベントラベルがとても有効です。
たまに、何か1アクション(例えばお気に入りを1つした)だけでレビュー訴求するアプリがありますが、あれはウザくのでもっとタイミングを考えたほうがいいなと感じています。
ある程度ユーザーがアプリを使ってくれてアプリの良さを理解したタイミングを探すのが重要と思っています。何回目の訴求が一番レビューを書いてくれるのか閾値を出すのにイベントラベルを用いました。

レビュー訴求のイベントラベル
データ追加して30回目までは快くレビューに応じてくれてることが分かります。後半になればなるほど応じてくれる可能性が減っているので訴求しないほうがよいことが分かります。
Androidのトラッキングログ実装方法
Googleのサンプル通りにトラッキングログを実装すると、以下の用に変数がベタ書きになってしまいます。
1 2 3 4 |
mTracker.send(new HitBuilders.EventBuilder() .setCategory("Action") .setAction("Share") .build()); |
それが嫌だったので、enumを定義することにしました。
1 2 3 4 5 6 7 |
public enum Category { DEFAULT("default"), APP_SHORTCUTS("app_short_cuts"), REVIEW("review"), GOOGLE_PLUS("google_plus"); String categoty; |
そうすることで、送る時はenumを渡すことが出来るようになります
1 2 |
analyticsTracker.sendEvent(AnalyticsTracker.Category.GOOGLE_PLUS, AnalyticsTracker.Action.GOOGLE_PLUS_CANCEL); |
少しキレイになりましたね。
詳しいコードはこちらに置いてあります。
レビュー訴求追加のPRが参考になるかと思いますので確認してみてください。
まとめ
- トラッキングログはとりあえずで実装しない
- KPIに応じてトラッキングログをカテゴライズする
- ラベルを使って細かい数字を追ってみる
- enumを使って読みやすくしよう
少しでも皆さんのトラッキングログ実装の参考になれば良いなと思います。