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
mahiguch
September 18, 2020
Technology
0
99
メディアアプリLIMIAにおけるプッシュ通知配信システム
GREE Tech Conference 2020 での発表資料です。
mahiguch
September 18, 2020
Tweet
Share
More Decks by mahiguch
See All by mahiguch
爆速で成長する おでかけ情報サービスの成長を支えるデザインと開発の取り組みについて
mahiguch
0
46
WebView認証連携
mahiguch
0
67
公式部活動技術書典部の活動紹介
mahiguch
0
110
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
mahiguch
1
1k
PHPからgoへの移行で分かったこと
mahiguch
2
4k
BigQueryを使った機械学習プロジェクトの分析とオフライン検証
mahiguch
2
1.2k
gRPCを使ったメディアサービス2
mahiguch
0
220
LIMIAでのBigQuery活用事例
mahiguch
0
200
機械学習輪講会資料
mahiguch
0
160
Other Decks in Technology
See All in Technology
[MIRU25] NaiLIA: Multimodal Retrieval of Nail Designs Based on Dense Intent Descriptions
keio_smilab
PRO
1
170
Wasmで社内ツールを作って配布しよう
askua
0
180
AI コードレビューが面倒すぎるのでテスト駆動開発で解決しようとして読んだら、根本的に俺の勘違いだった
mutsumix
0
140
SAE J1939シミュレーション環境構築
daikiokazaki
1
200
Claude CodeでKiroの仕様駆動開発を実現させるには...
gotalab555
1
130
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
280
Strands Agents & Bedrock AgentCoreを1分でおさらい
minorun365
PRO
6
120
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
1
230
AI によるドキュメント処理を加速するためのOCR 結果の永続化と再利用戦略
tomoaki25
0
300
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
220
Unson OS|48時間で「売れるか」を判定する AI 市場検証プラットフォーム
unson
0
160
「手を動かした者だけが世界を変える」ソフトウェア開発だけではない開発者人生
onishi
15
8k
Featured
See All Featured
It's Worth the Effort
3n
185
28k
A Tale of Four Properties
chriscoyier
160
23k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building Adaptive Systems
keathley
43
2.7k
Automating Front-end Workflow
addyosmani
1370
200k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Designing Experiences People Love
moore
142
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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