2021.01.27

統計モデルを用いたプッシュ通知のタイミング最適化

  • COPY URL

この記事は私がInsight Data Science 社でOneSignalというスタートアップと一緒に取り組んだコンサルティングプロジェクトの概要です。

この記事で分かること

プロジェクト

もしあなたがモバイルアプリを運用しているのなら、ユーザーのエンゲージメントが鍵で、プッシュ通知がエンゲージメントを上昇させる重要なツールであることは理解しているでしょう。

OneSignalが提供しているのはアプリの全ユーザーに対する全てのプッシュ通知を管理し、送信し、追跡することができるプラットフォームです。通知をより詳細にコントロールできるSDKも提供しています。OneSignalを使うことによって、アプリはユーザーをセグメントすることやプッシュ通知をパーソナライズできるのです。その結果、適切なユーザーに適切なプッシュ通知を送り、望まないメッセージを受け取るユーザー数を最小化することができます。

また、メッセージのA/Bテストやリアルタイムトラッキングといった機能もあります。私のOneSignalでのプロジェクトはユーザーのコンバージョンを最大化するために最適なプッシュ通知の時間を見つけることでした。

コンバージョンの定義:ユーザーがプッシュ通知をクリックしアプリを起動すること

再エンゲージメント通知の定義:アプリを使っていないユーザーをターゲットにしたプッシュ通知

時間帯ごとのコンバージョン

保存できるだけの十分なデータ容量がないので、OneSignalは個別に送っているプッシュ通知の詳細全てを保存しているわけではありませんでした。しかしながら、それぞれのプッシュ通知が果たしたコンバージョン情報の大多数を手に入れたのです。まずはこれらのコンバージョンを24時間のサイクルでアプリのジャンルごとにグラフ化しました。

OptimizingNotificationTiming01

この結果から、アプリのジャンルが異なることによってコンバージョンのパターンに大きくばらつきが出るということがわかります。ゲームアプリは午後8時に最もコンバージョンする一方で、ニュースアプリはコンバージョンが高くなるピークが2回あります。1回目は朝(午前10時から12時)で、もう一つは午後5時です。もしアプリがプッシュ通知をベストなタイミングに打つか、これらの時間に先立って用意できれば、よりユーザーをターゲティングし、エンゲージメントさせることができます。下記はOneSignalが扱っている上位10ジャンルのコンバージョン数のピークです。

  • ゲーム: 8pm
  • ソーシャル: 10pm
  • 教育系: 11am-1pm, 8pm
  • エンタメ系: 8pm-10pm
  • ライフスタイル: 12pm, 5pm, 9pm
  • ニュース: 10am-12pm, 5pm
  • ビジネス系: 10am, 3pm, 7pm
  • 旅行: 9pm
  • 健康とフィットネス: 12pm
  • メディア/ビデオ : 3pm, 7pm

いくつか留意すべきなのは、これらのピークはプッシュ通知が送られた時間の純粋な集計では無いということです。例えば、もしゲームアプリでもっとも多くのプッシュ通知が午後8時に送られているとしたら、通知を送った数時間に最もコンバージョンが多くなると考えるのが自然でしょう。OneSignalでは送信した全てのプッシュ通知の結果を追跡しているわけでないので、全てを集計することはできなかったのです。

再エンゲージメントの可能性を追跡する

再エンゲージメントのプッシュ通知は集計したプッシュ通知の部分集合ですが、特に追跡が必要です。なぜならチャーンを減らしユーザーのLTVを高めるためにアプリを使わなくなってきたユーザーをターゲティングしたプッシュ通知だからです。

再エンゲージメントのプッシュ通知にフォーカスする主なメリットは、OneSignalがこのプッシュ通知タイプのデータをより多く保有しており、より強力な統計モデルを作ることができることです。OneSignalが私に答えてほしい主な疑問は「プッシュ通知のタイミングはコンバージョンの可能性にどう影響を与えているか?」というものでした。そこで私は「カーネル密度推定」を用いてこの相関をモデル化しました。下記がゲームアプリだけの統計モデルです。

OptimizingNotificationTiming02

再エンゲージメント通知がコンバージョンの可能性にもっとも寄与するのは正午頃でした。しかしながら、実際は午後8時頃にプッシュ通知を送っているゲームアプリがほとんどです。もしOneSignalがより早い時間帯にプッシュ通知を送ったとしたら、これらのゲームアプリは週あたり10,000人のユーザーを止めておくことができたでしょう。この法則を十分な数の再エンゲージメントに関するプッシュ通知を調べた上で他のジャンルのアプリにも拡張すると、下記が理想的なプッシュ通知配信時間だとわかりました。

  • ゲーム: 11am-1pm
  • ソーシャル: 10am、11pm
  • 教育系: 4pm
  • エンタメ系: 10pm
  • 旅行: 3~7pm
  • 健康とフィットネス: 9am

これらのジャンルは、どのくらいの精度でコンバージョンの成功を予測できるのか統計モデルでテストしました。このテストではROC曲線を用いて計測しました。

OptimizingNotificationTiming03

曲線より下の領域(AUC((AUC:Area under the curveの略で、ROC曲線下の面積のこと。AUCは常に0と1の間であり、数値が1に近いほどよい値であることを示します。)))は本当にポジティブな結果と誤ったポジティブな結果を識別するこの統計モデルの特性を表しています。私の作ったモデルではAUCが0.76で、ランダムに分類した結果から得られるであろう0.5という値よりずっと高かったのです。

パーソナライズする

私はAUCの向上を目指していたので、とりわけ熱心に取り組んだトピックはユーザーのパーソナライゼーションでした。OneSignalは各ユーザーがプッシュ通知にどのように反応したかという情報を豊富に持っていたので、このデータを活用しました。この研究を完了するためにベイジアンネットワークの学習モデルを用いました。ユーザーが新しいソーシャルアプリをダウンロードした時、その行動に対して情報を得る術はありません。なのでユーザーは平均的なソーシャルアプリのユーザーが取るであろう行動をするとみなして予測を立てました。

OptimizingNotificationTiming04

こちらのグラフを見るとソーシャルアプリのユーザーは朝と夕方に最もコンバージョンが高くなる可能性があるとわかります。たいていの社会人には納得のいく結果です。しかしながら、特定のユーザーが受け取るプッシュ通知の頻度が増えるにつれて、このグラフはよりパーソナライズされたグラフになっていきました。一人のソーシャルアプリのユーザーを例にグラフを見てみましょう。

OptimizingNotificationTiming05

平均的なユーザーとは違い、この特定のユーザーは午後3時頃にもっとも頻繁にソーシャルアプリを使っていたことがわかります。このユーザーは働いている大人ではない可能性が高く、その代わりに授業が終わった学生である可能性が高いです。こうしたユーザーのパーソナライゼーションによって、私の統計モデルの成果(AUC)は0.76から0.86に上昇しました。OneSignalはこの結果に興奮し、現在は扱っているアプリへのプッシュ通知を配信する選択肢にこの統計モデルを取り入れようとしています。

統計モデルの詳細とスケーラビリティ

このベイジアンネットワークの学習モデルはとりわけ加重和として使われます。実験の観測結果をどれくらい優先して重み付けするか選び、(ジャンルに基づいて重み付けしました)そのあと実際にユーザーの観測結果が増えるにつれて統計モデルをアップデートしていくのです。優先付けした観測結果が10回で、すでに10回ユーザーを観測している場合、最後の統計モデルは実際のそのユーザーの観測結果と前もって予測した結果を足して割った平均になるでしょう。

こういった構造をした統計モデルを選んだ理由は、将来の観測結果を含めた規模の拡大を導くのが容易だからです。あるユーザーに対して統計モデルが作られたら、統計モデルにあてはめて「その観測の合計」(ユーザーを観測した数 + 重み付け)を追跡し続ければ良いだけです。新規ユーザーの観測に関しては、統計モデルをアップデートするために必要な数だけです。

この記事は、Kevin Kahnのブログ記事 ”Optimizing Notification Timing”を著者の了解を得て日本語に抄訳し掲載するものです。 Repro published the Japanese translation of this original article on Kevin Kahn in English under the permission from the author.

SHARE

コンテンツトップに戻る

Webとアプリの
収益最大化ツール
「Repro」