2014年12月11日

Android

リアルタイム検索アプリでの通知の取り組み

  • このエントリーをはてなブックマークに追加

Yahoo! JAPAN Tech Advent Calendar 2014の11日目の記事です。一覧はこちら

リアルタイム検索アプリを担当しています、八木(@connvoi_tyou) と言います。

リアルタイム検索アプリバックエンドについて、
特にPush通知について書いていこうと思います!

通知機能

お気に入りワード通知というこのアプリの特徴的な機能があります。

これはキーワードを登録しておくとそれがTwitter上で急上昇すると通知が来る機能です(便利!)。
電車の路線、好きなサッカー選手などを登録しておくと、遅延が起きたり、ゴール決めた時に通知をしてくれる優れものです。

もともと、Twitterの検索アプリだったので、ユーザーが特定のキーワードをブックマークしたり、履歴からたどってどんどん検索していたという土壌があったので、検索せずとも通知してあげたらもっと便利になるんじゃない? と考え実装されました。

通知を判定する基準

では、実際どうやって通知をしているのか? の実装部分のお話をしていこうと思います。
リリース当初(2014/4)は単純にキーワードのtweet数の平均値を基準として、そのtweet数を何倍超えたら通知するかをキーワードごとに計算して閾値としていました。

平均値ベースでの閾値設定にしてしまうと、本来通知するべきタイミングで通知を逃してしまったり、例えば、毎週あるテレビ番組などを周期的に通知してしまうこともありました。

realtime-push-notification
*グラフの赤線を超えた所で通知します。

そこで、1日の時間帯ごとに閾値を再計算して、時間帯ごとに閾値が変動するような仕組みにしてみました。
この仕組みの導入によって、通知の閾値がキーワードのtweet数の傾向に沿うようになり、通知するタイミングが以前よりも適切になっています。

realtime-push-notification
図を見てわかるようにその時間のトレンドが閾値に現れてより、いいタイミングで通知するようになりました。
これ以外にも、運用面で細かい処理を入れていますが、大枠の考え方はこれで動いています。

例えば、48時間のうち1回、1時間だけ任意で発生するゲーム内イベントといった複雑な条件の場合でも
realtime-push-notification

うまく通知をすることができます。
realtime-push-notification

ドラクエXの秘密イベント「ヒューザ」を発見できるか!?

アプリにおける通知の重要性

リアルタイム検索アプリには、お気に入りワード、新着お知らせなど、複数の通知機能があります。
その中でも画像による通知は数字がいいときだと、開封率が10%を超えてきたりします。

開封率が10%ということはインストールしたアプリの10分の1が立ち上げられるってわけで、DAU(デイリーアクティブユーザー)にダイレクトに効いてきます。

そのため、リアルタイム検索アプリでは
適切なタイミングで通知をする
ことに力を入れて開発しています。
ユーザーが見たくなるような、なおかつ、送りすぎてユーザーが離れないぐらいの範囲、内容で通知を送ることを検討しています。
非常に難しい課題ですが、エンジニアとしてやりがいのある、面白いものです。

終わりに

iOS、Androidともにこれからも通知領域はどんどん拡張されていくと思います。
もし、アプリ開発に関わる人で通知機能について考えてないのであれば、一度検討してみるのもいいかもしれません。

最後に、リアルタイム検索アプリをよろしくお願い致します!
realtime-push-notification

Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。

  • このエントリーをはてなブックマークに追加