ルームフォロー情報を活用したターゲティングpush通知をトライしました

こんにちわ。

SHOWROOMエンジニアのシミズです。

https://twitter.com/SHOWROOM_corp/status/977084945414864896

僕です。

今回はこちらの取り組みについて紹介したいと思います。

きっかけ

こちらの機能を作ったきっかけはIBPの取り組みによるものです。 IBPについてはこちらの記事を参照下さい。

tech.showroom.co.jp

IBPで何を作ろうかなーと考えていた時に、

せっかくなら楽しみにしている配信をより盛り上げたい!

というテーマに絞って考えたときに思いつきました。

思いついてから実装するために出社する足取りは、いつの間にか少し早歩きになりました。

何を作ったのか

push通知を送信する仕組みを作りました。

f:id:otto13:20180326181812p:plain

すみません、また、技術的な話は少なくなりそうです。

何がすごいのか

今回、ルームのフォロワー以外のユーザーにも通知を送信させていただきました。

一部のユーザーにはびっくりさせてしまったかもしれません。

ですが、この通知は闇雲に送信したわけではありません。

今回の取り組みでは、個人の配信ルームをもつ演者さんが別の配信ルームの配信に出演するものでした。

SHOWROOMの配信ルームは主に個人単位で取得いただいており、ユーザーはグループよりも個人をフォローする傾向が強いです。

いわゆる推しメンです。

SHOWROOMのフォロー情報は、ユーザーの推しメン情報です。

今回はその情報を利用して、その推しメンが出演した時に、その推しメンのフォロワーに通知を送信させていただきました。

手前味噌ですが、かなりコンバージョン率の高いターゲティングができているなと思います。

公式のtwitterでも何名かにお礼させていただきましたが、この機能に激励のコメントを頂きとても嬉しかったです。

トライに至るまで

この機能は、誰かや他部署に作って欲しいと依頼されていた機能ではありません。

なので、

「こんな機能を作ったよ!」

「こんな感じで使ったら良さそうだと思うんです!」

と軽く営業メンバーに売り込んだら、早速やってみることになりました。

このスピード感が素敵です。

通常の告知などの宣伝業務であれば、営業メンバーが担当しますが、

今回は作ったばかりの機能だったので、当然、利用マニュアルもなく、自分の手で送信作業を行いました。

いきなり大規模配信に投入

通常であれば、小規模、中規模の配信でトライしてから大規模な配信に投入しますが今回は、いきなり大規模な配信に投入しました。

もちろん、配信内容がとてもよかったことが主要因ですが、この取り組みの配信がSHOWROOM史上最高の閲覧者数になりました。

今思うと、そんな配信に、新機能がいきなり投入していたことはとても恐ろしいですが、

やらせてもらえるとなったときはとてもワクワクしました。

出てきた課題

大規模配信でトライできたこともあり、課題点もたくさん出てきました。

ちょっとだけ技術の話します。

queueの処理が追いつかない

今回の取り組みに出演された演者さんたちは多くのフォロワーを抱えており、その全てのフォロワーに通知を送信したところ、queueが捌ききれず大量にスタックする事件が起きました。

原因

分散処理ができていなかった。

SHOWROOMではpush通知をQ4Mを利用した非同期処理にて実現しています。

また、そのQ4Mのサーバーは複数台構成となっており、キューイング先を散らすことで分散処理を行っています。

f:id:otto13:20180327020344p:plain

キューイング先はMyDNSのラウンドロビンで切り替えながら、まんべんなく散らすように作っているのですが、それがうまくできませんでした。

通知のqueueはN件毎に分割してキューイングしているのですが、全てが1箇所のサーバーに集中してしまったのです。

その原因は、一度接続したサーバーにそのまま繋ぎっぱなしになっていたことでした。

N件毎に分割してキューイングした際に、都度MyDNSを参照してサーバーの接続をし直すように修正しました。

問題解決に協力いただいたDeNAのインフラチームに感謝です

通知がユーザー毎に大きく異る

こちらは未解決ですが、送信対象ユーザー数が多いことが主な要因です。

送信を実行するワーカー数を増やすことでもある程度解決はできそうですが、どうしてもユーザー毎に早い、遅いが出てきてしまいます。

なので、遅延を解決することと同時に、送信順番を決める新ロジックを作ったり、そもそも通知を希望するかユーザーに選ぶ機能を作って送信対象を減らすことも検討しています。

総括

またまた手前味噌ですが、この機能を本番に投入できたことで少なからず配信の盛り上げに寄与できたのではないかと思います。

それができたことが何よりも喜びです。

我々のSHOWROOM Tech Studioチームではユーザーにサービスを提供することに重きをおいて仕事をしていますが、

今回の記事では、そのサービスがどのように生まれていくのかを簡単に紹介させていただきました。

最後に

今回の取り組みの配信で、一時映像が正常に配信できない時間が発生してしまい、大変申し訳ありませんでした。

このようなことが繰り返されないように、我々も成長していきたいと思います。

これからも引き続きSHOWROOMをよろしくおねがいします。