Firebase Predictionsの機械学習でアプリの離脱ユーザーを予測して体験設計してみる
この記事はMakuake Development Team Advent Calendar 2019 24日目の記事です。(実は2本目)
メリークリスマス🎅Makuakeでアプリ事業を担当している高橋優です。(https://twitter.com/YutaMakuake)
社内の役割で、1番のミッションは決済金額なので、ここら辺を意識して日々奮闘しております。
今回は、FirebaseのPredictions機能を使って、ユーザーごとに特定のアクションを実行する。というのを考えていきたいと思います。
Firebase Predictionsとは
一言でいうと、発生したイベントや利用日数を元に機械学習で予測して、ユーザーセグメントを作成するイメージです。
その生成されたセグメントごとに、Firebase Remote Configを使って異なるトップページを表示させたり、訴求のテキストを変更したりできます。In-App Messagingでポップアップを表示したり、Cloud Messagingで通知を飛ばしたりもできます。
Remote Configを使うと、例えばゲームアプリではチュートリアルでつまずく層や特定のレベルで離脱する層にだけ、ゲームの難易度を下げたりすることもできます。
Firebase Predictions
https://youtu.be/ORrvrVEHJz4
Firebase Remote Config
https://youtu.be/_CXXVFPO6f0
2019年9月に新しいバージョンがリリースされ、ちょっと気になっていたので使っていきたいと思います。
予測の元になる情報について
ここは昔と大きくは変わっていなく、15種類以上のイベント発生頻度、アプリのアップデート頻度や下記のようなエンゲージメントの指標で予測されています。
・連続してアクティブだった日数(過去 7 日間) 過去 7 日間にユーザーがアクティブだった連続日数。
・連続してアクティブだった週数(過去 4 週間) 過去 4 週間にユーザーがアクティブだった連続週数。
・アクティブだった日数(過去 7 日間) 過去 7 日間にユーザーがアクティブだった日数。
・アクティブだった週数(過去 4 週間) 過去 4 週間にユーザーがアクティブだった週数。
・連続してアクティブでなかった日数(過去 7 日間) 過去 7 日間にユーザーがアクティブでなかった連続日数。
・連続してアクティブでなかった週数(過去 4 週間) 過去 4 週間にユーザーがアクティブでなかった連続週数。
・アクティブでなかった日数(過去 7 日間) 過去 7 日間にユーザーがアクティブでなかった日数。
・アクティブでなかった週数(過去 4 週間) 過去 4 週間にユーザーがアクティブでなかった週数。
・アクティブになった日からの経過日数 ユーザーがアプリで最初にアクティビティをログに記録してからの日数。
予測結果を調べる
https://firebase.google.com/docs/predictions/v1/explore-predictions?hl=ja
使ってみる
今回はとにかくシンプルにして、
・ポジティブな体験をしたCV予測ユーザー
・ネガティブな体験をした離脱予測ユーザー
の二つで考えていきたいと思います。
目的はポジティブな体験をしたユーザーにはアプリ利用の習慣化、応援購入(CV)の最大化。ネガティブな体験をしたユーザーには、プロジェクト探索のハードルを下げる。単一プロジェクトでなく、一段階抽象的なカテゴリやタグで利用してもらう。を考えました。
作業フロー
まずは予測を選択します。予測の種類は事前定義された2種類の予測とカスタムで5つまで予測を追加できます。
事前定義された予測
https://firebase.google.com/docs/predictions/v1/predefined-predictions?hl=ja
・churn:7 日以内に churn イベントをトリガーする可能性に基づいてユーザーのターゲティングを行います。
・spend:7 日以内に in_app_purchase イベントをトリガーする可能性に基づいてユーザーのターゲティングを行います。
次に確率の精度を決めます。このスライダーのGUIは前になかった気がします。
こちらでは、予測の上位30%に設定し、CVするユーザー予測を作成します。
次に予測に対してやることを選びます。ポジティブユーザーには通知を、ネガティブユーザーにはポップアップをやってみようと思います。
例えばCV予測ユーザーにこんな通知を実施したり。
気になるプロジェクトが見つからず、将来的に離脱すると予測されたユーザーにはまずはタグの登録をお願いしたりできます。
Myタグとは何ですか?
最後に
最終的には様々な体験の分岐や課題を改善し、予測ユーザーに自動で施策を実施し、計測して最適解を見つけていくことが重要だと思っております。(もちろんある程度確証が持てるものはそもそも開発しても良いと思います。)
ぜひアプリインストールいただき、コメントお願いします🙏
iOSはこちら
Androidはこちら
採用も実施中なのでぜひご連絡ください💪
がんばるぞい💪