はじめに
こんにちは、NewsPicks エンジニアの佐藤と申します。
NewsPicks Advent Calendar 2022 の11日目を書かせていただきます。
本記事では、2022年秋頃から導入しているプッシュ通知事前テストについてご紹介できればと思います。
NewsPicks のプッシュ通知について
NewsPicks では、毎日決まったタイミングに配信する定時プッシュと緊急度の高い情報を含むコンテンツを不定期に配信する速報プッシュの2種類があります。記事の選定は編成チームが行っており、特に定時プッシュに関しては、毎回直前まで、どの記事を送るか吟味しています。
ユーザーのみなさまにいち早く重要な経済情報をお届けするためにも、プッシュ通知は重要な役割を担っています。
プッシュ通知事前テストの導入
今回、プッシュ通知の開封数を改善できないか検討することになりました。その結果、送る記事を直前まで1つに絞りきれないことがあることが判明しました。そこで、プッシュ通知の全体配信をする前に、事前配信を行うことで、1つに絞りきれない問題を解消し、開封数の改善ができないか検証することになりました。(※ 事前配信時に送る記事は、すでに厳選されたものになります。)
具体的には、配信前に、一部のユーザーに対して最大4記事までの候補記事を事前配信し、5分間での開封数を確認します。その結果を踏まえて、開封数の多かった記事を残りのユーザーに配信します。
この機能を弊社内ではプッシュ通知事前テストと呼んでおります。手始めに、まずは夜の時間帯の定時プッシュに絞って検証を開始しました。
構築した基盤の概要
既存のプッシュ通知に関しては、Amazon SNS を利用しています。そのままでは、内容を分けたり、時間帯をずらして配信をすることができないため、今回は Braze を利用することにしました。
Braze のキャンペーンを活用することで、プッシュ通知の基盤を簡単に構築することができます。
また、既存のプッシュ通知は Slack から配信できるようにしていましたが、入力が複雑になってしまうため、専用の管理画面を用意しました。(今回は、管理画面からサーバーを経由して、Braze の API を叩いています。)

事前配信の配信結果は Metabase で確認しています。ここの数値を確認して、本配信する記事を決めます。

Braze の設定
ここからは、Braze のキャンペーンで設定した内容をご紹介します。
まずはメッセージ部分です。Braze では {{api_trigger_properties.${message_1}}}
のように{{api_trigger_properties.${hoge}}}
と書くことによって、API経由で値を渡すことができます。今回は、メッセージ内容、サムネイル画像、リンク先の3つをAPI経由で渡しています。

リクエストボディはこんな感じです。
"trigger_properties": { "message_1": "hogehoge", "link_1": "newspicks://news/001", "image_1": "https://contents.newspicks.com/images/news/001", "message_2": "fugafuga", "link_2": "newspicks://news/002", "image_2": "https://contents.newspicks.com/images/news/002" }
次に比率ですが、以下のように設定することで、配信対象のユーザーに対して、50%ずつの割合で各記事を配信できます。

最後に配信対象ですが、今回はユーザーIDの下一桁の数字で絞り込みをしています。
事前配信用のキャンペーンでは、External User ID matches regex 0$
と設定することで、ユーザーIDの下一桁が0のユーザーにのみ配信されるようにしています。
そして、本配信用のキャンペーンでは、External User ID does not match regex 0$
と設定することで、事前配信と本配信で全ユーザーに配信されるようにしています。

Braze のキャンペーンを使うことで、今回のような仕様も簡単に実現することができました◎
導入結果
プッシュ通知事前テストを導入した結果、開封数を約11.5%向上することができました🙌
実は、2記事のみで検証していた期間もあったのですが、その期間の開封数向上は約9.5%でした。 よって、事前配信時の記事数を4つまで増やすことで、より開封数が向上することもわかりました。
おわりに
今後はユーザーごとに最適な記事を配信する、プッシュ通知のパーソナライズ機能の導入を検討しております。
まだまだ課題は数多くございますが、より良い価値を提供していけるよう改善に努めてまいります! 最後まで読んでいただきありがとうございました!