この記事は同僚へのアプリのログは何を取るべきなのだろうか?という悩みの説明のために作成しました。
私自身アプリを開発した事はないので、勉強としての情報収集でもあります。
アプリを作成したい or したけれども、利用者は何に興味があるのかを調べたい方のきっかけになれば幸いです。
対象の方
- 同僚へのアプリのログは何を取るべきなのだろうか?という悩みの説明
- アプリを作成したい or したけれども、利用者は何に興味があるのかを調べたい方
参考情報(大感謝)
Wantedly, Inc.の住友孝郎さんがDroidKaigi2018で講演された
「アプリを成長させるためのログ取りとログ解析に必要なこと」の発表資料を参考にさせていただきました。
ログを取るのはなぜか?
- ログだけでユーザの操作を把握できるようにする。
- ログから異常な動作を探る
- 機密情報はいれない
- 取扱の困るデータはログに含めないこと
- パスワード
- メッセージ
- 利用規約やプライバシーポリシーに反する内容
まとめ
エンジニアリングとしての指標
- クラッシュ率
- ANR発生率(Application Not Responding)
- レンダリング時間
- APIのレスポンス時間
非エンジニアリングとしての指標(Firebase Analytics等で確認可能)
- インストール数(アプリの場合には単純にインストール数)
- アクティブユーザ数
- DAU(Daily Active User):1日のユニークユーザ数
- WAU(Weekly Active User):7日間のユニークユーザ数
- MAU(Monthly Active User):1か月のユニークユーザ数(場合により28日や31日で換算するなど違いがある)
- リテンション率(継続率)
- 期間ごとにユーザを分けて分析する(Firebase Analytics等で確認可能)
- コホート分析(https://biz.trans-suite.jp/11257)
★注意点★
多機能なアプリの場合、機能毎にリテンション率を確認しないと、どの機能がユーザを繋ぎとめているのか確認する事が困難
- コンバージョン率(https://www.seohacks.net/basic/terms/conversion-rate/)
- CVR(Conversion Rate)
- Webサイトに発生したアクセスのどれだけがサイトの成果=コンバージョン(商品の購入や申込み)を達成したかの割合を表す指標
- 一般的にはCVR(コンバージョン率)=コンバージョン数 / 訪問数(セッション数)で算出。
例:1000件のセッションで10件のCVを獲得した場合はCVRは1%となります。
流入経路や商品カテゴリ単位、個別ページ単位といった分析単位ごとのパフォーマンスの良し悪しを表す指標です。
ビジネスの成果を表すCVRの状況から、Webサイトで施策の優先度や施策を行うページを洗い出すことが出来ます。
必要となるインフラ
- ログ収集サービス(例:Firebase Analytics)
- データストア(例:Firebase Analytics / Google BigQuery)
- 抽出環境(例:Google BigQuery)
- 可視化(例:Google BigQuery / Excel)
アプリケーションで採取するべきログの種類
イベントログ
- Viewの操作
- タップした、スワイプしたなどの端末での操作状況
- 直接的なコンバージョン
- ログは多ければ良いデータではないが、採取する事で分析の幅が広がるため、採用する分析ツールによるがViewとコンバージョン両方採取する事が良い
項目例 | 備考 |
---|---|
ユーザ識別子 | |
画面名 | |
イベント名 | タップ / ロングタップ / スワイプ / PCであればクリック・ダブルクリック等 |
イベント追加情報 | View ID / コンバージョンIDなど |
<イベントログ例>
ログ日時 | ユーザ識別子 | 画面 | 画面追加情報 | イベント | イベント追加情報 |
---|---|---|---|---|---|
2019/xx/xx 99:99 | 99999 | ログイン | クリック | ||
2019/xx/xx 99:99 | 99999 | メニュー | クリック | メニューId:9999 | |
2019/xx/xx 99:99 | 99999 | 通知一覧 | UserId:99999 | クリック | 通知Id:xxxxx |
2019/xx/xx 99:99 | 99999 | 通知詳細 | UserId:99999;通知Id:xxxxx | クリック | |
2019/xx/xx 99:99 | 99999 | メニュー | クリック | メニューId:8888 | |
2019/xx/xx 99:99 | 99999 | 活動情報登録 | クリック | データ登録 |
スクリーンログ
- 画面名
- 遷移先の画面名
- 滞在時間
- アプリからの離脱もわかるように
項目例 | 備考 |
---|---|
ユーザ識別子 | |
画面名 | |
次の画面名 | |
滞在時間 | |
必要があれば定量的な数字をロギング | ・画面のどこまでスクロールしたのか ・どの画面が何秒表示されたのか |
<スクリーンログ例>
ログ日時 | ユーザ識別子 | 画面 | 画面追加情報 | 次の画面 | 次の画面追加情報 | 滞在時間(ms) |
---|---|---|---|---|---|---|
2019/xx/xx 99:99 | 99999 | ログイン | メニュー | 20000 | ||
2019/xx/xx 99:99 | 99999 | メニュー | 通知一覧 | UserId:99999 | 5000 | |
2019/xx/xx 99:99 | 99999 | 通知一覧 | UserId:99999 | 通知詳細 | UserId:99999;通知Id:xxxxx | 40000 |
2019/xx/xx 99:99 | 99999 | 通知詳細 | UserId:99999;通知Id:xxxxx | 60000 | ||
2019/xx/xx 99:99 | 99999 | メニュー | 活動情報登録 | 120000 | ||
2019/xx/xx 99:99 | 99999 | 活動情報登録 | 180000 |