Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メディアアプリLIMIAにおけるプッシュ通知配信システム
Search
gree_tech
PRO
September 18, 2020
Technology
0
310
メディアアプリLIMIAにおけるプッシュ通知配信システム
GREE Tech Conference 2020 で発表された資料です。
https://techcon.gree.jp/2020/session/ShortSession-1
gree_tech
PRO
September 18, 2020
Tweet
Share
More Decks by gree_tech
See All by gree_tech
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
140
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
100
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
110
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
83
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
100
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
120
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
120
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
150
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
310
Other Decks in Technology
See All in Technology
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.9k
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
170
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
150
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
12
1.6k
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
220
型チェック 速度改善 奮闘記⌛
tocomi
1
240
組織成長を加速させるオンボーディングの取り組み
sudoakiy
3
320
LINEヤフーにおけるPrerender技術の導入とその効果
narirou
2
1.1k
強いチームと開発生産性
onk
PRO
38
12k
Application Development WG Intro at AppDeveloperCon
salaboy
0
210
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
120
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
670
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Language of Interfaces
destraynor
154
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
BBQ
matthewcrist
85
9.3k
Typedesign – Prime Four
hannesfritz
40
2.4k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Transcript
グリーライフスタイル株式会社 ソフトウェアエンジニア 樋口雅拓 メディアアプリLIMIAにおける プッシュ通知配信システム
• グリーグループのグリーライフスタイル株式会社で、LIMIA という住ま い領域のメディアを作っています。ゲーム会社ですが、最近はメディア に力を入れています。 • LIMIAではインフラ、サーバ、Web、RecSysを経てAndroidを担当してい ます。6歳の娘のパパ。twitter: @mahiguch1 •
技術書典7からサークル参加しています。 • https://limia.jp/ • https://arine.jp/ • https://aumo.jp/ • https://www.mine-3m.com/mine/ 2 Masahiro Higuchi/樋口雅拓
新宿拠点に勤務し ています。最大190 名収容可能な勉強 会スペースがあり ます。オフライン で集まれるように なったら、社内外 の勉強会を開催し たいと思っていま す。
松屋自販機もあり ます! 最高すぎる勉強会スペースと松屋自販機 3
グリーグループ公式部活動と して技術書典部を立ち上げ、 合同誌を作って頒布しました。 17:20から技術書典部の活動 紹介を行います。 企業部活動として技術書典7/8/9にサークル参加
5 背景と目的 何故システム内製化したのか 5
LIMIAとは? • メディアサービス • Android, iOS, Web • 記事一覧を表示し、タップす ると記事詳細を閲覧できる。
• 記事一覧はパーソナライズ。 • 記事詳細読了後に関連記事を 出している。 • 分析基盤はBigQuery
• 起動経路で最も多かったのは、プッシュ通知か らの起動。 • 以前は人手で良さそうな記事を送信していた。 分析して特徴を見つけ、自動で最適な記事を送信 することで起動数増加を目指す! LIMIAサービスの特徴
8 どうやって最適なプッシュ通知を見つけるか 以下のPDCAを高速回転させる。 • 仮説立案 • オフライン検証 • オンライン検証 •
自動入稿対応 ここからは各項目について説明していきます。 8
9 仮説立案 9
目標はLTV - CPI > 0の状態を保つこと。 ブレストを行い、LTVに繋がりそうな仮説を立てた。 • ユーザの興味に合わせた記事を配信すると起動率が上がる • 読了率が高い記事を配信すると起動率が上がる
• ユーザが普段使っている時刻に配信すると起動率が上がる • 配信回数を減らすとアンインストールが減る • 配信回数を増やすと起動数が増える 仮説一覧
11 11 ⓘ Start presenting to display the poll results
on this slide. 仮説の中で最も効果が高かったものは、どれでしょう?
12 オフライン検証 12
これまでの配信実績がBigQueryに蓄積されている。 これを使って、もし仮説の配信を行ったらどうなるかをシミュレ ーションする。 効果がありそうなら、オンライン検証へ進める。 なさそうなら、ここで終了。 効果が高そうな仮説を絞り込む! 13 オフライン検証方法
• ユーザが直近見た30記事のカテゴリを調べ、 最も多かったものをユーザの興味セグメン トとした。 • 興味セグメント毎に起動率(=起動数/ユーザ 数)を集計。 • 配信した記事のカテゴリと興味関心が一致/ 不一致で起動率を比較
• 一致していたケースでは不一致に比べて、 20%起動率が高かった。採択。 オフライン検証(採択事例) ユーザの興味に合わせた記事を配信すると起動率が上がる
• 15日前から2日前のログからアプリ起動時刻を調べ、時刻毎のユーザ セグメントを作成。 • 1日前のログから「その時刻のみに送信」と「全時刻に送信」を比較。 • 対象時刻のみだと、起動数が40%減少。アンインストールが減って もカバーしきれない減少幅だったため、棄却。 オフライン検証(棄却事例) ユーザが普段使っている時刻に配信すると起動率が上がりアンインストール減少
16 オンライン検証 16
オフライン検証で効果が見込めるものをABテストした。 2週間を1ラウンドとし、ラウンド毎に異なる仮説を検証した。 30ラウンドあたりで収束したので、検証を終了した。 その結果、以下のパターンが最もLTVが高かった。 • 一斉送信は1日5回 • そのうち4回は興味関心と一致した記事 • 記事は直近2週間の読了率が高かったもの
この結果は当時のLIMIAユーザに対する最適値なので注意! そのまま使っても上手くいかない可能性が高い。 参考にするなら結果ではなくプロセスを。 オンライン検証 ABテスト
18 自動入稿対応 18
興味関心に合わせた記事を配信しようとすると、興味セグメント毎に配 信記事を選ぶ必要がある。興味セグメントを10個にした場合、10倍の記 事を選ばなければならない。人手では10倍のコストがかかってしまうた め、抽出作業を自動化した。 • 配信枠に自動で3件づつ入稿 • それを人が確認し、最適なものを選ぶ。 完全自動化すると、季節外れの記事(イベント終了後にイベント記事な ど)を送ってしまう可能性があるため、人手でのチェックを残した。
運用改善: 配信記事抽出自動化 ここからは少しシステムの話です
20 システム構成 20
バッチが毎分起動して、送信時刻になる と原稿と対象ユーザをSQSに送る。送信 バッチはSQSにqueueがあると、それ をFCMに対して送信する。 システム構成(配信)
入稿ツールでは、次の4つの画面を 作った。 • 通知: 配信時刻 • 条件: どの原稿を誰に送るか • 原稿:
通知送信内容 • コンテンツ: 遷移先コンテンツ 条件を設定すれば、ABテストや特 定のユーザへの配信が可能。原稿 を工夫することで複雑な通知を送 信可能。 入稿ツール
条件を満たした記事をBigQueryで集計。バッチで結果 を読んで、MySQLに書き込む。当時の基準は、以下の もの。 • CTRが高い • 読了率が高い • 記事の長さが一定以上 システム構成(自動入稿)
• ユーザの興味に一致したコンテンツを配信することで、起動数が 10%から20%増加した。 • 入稿作業の属人性排除と工数削減ができた 改善結果
• 自由に仮説を立て検証するためにプッシュ通知配信システムを内製 化した • その結果、運用コストを下げるとともにCTRを改善する事ができた。 • 機械学習的手法を取り入れて改善継続中 Ask The Speakerは、D会場です。
まとめ 25
26