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
77
メディアアプリLIMIAにおけるプッシュ通知配信システム
GREE Tech Conference 2020 での発表資料です。
mahiguch
September 18, 2020
Tweet
Share
More Decks by mahiguch
See All by mahiguch
爆速で成長する おでかけ情報サービスの成長を支えるデザインと開発の取り組みについて
mahiguch
0
20
WebView認証連携
mahiguch
0
50
公式部活動技術書典部の活動紹介
mahiguch
0
89
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
mahiguch
1
970
PHPからgoへの移行で分かったこと
mahiguch
2
3.8k
BigQueryを使った機械学習プロジェクトの分析とオフライン検証
mahiguch
2
1.1k
gRPCを使ったメディアサービス2
mahiguch
0
160
LIMIAでのBigQuery活用事例
mahiguch
0
170
機械学習輪講会資料
mahiguch
0
120
Other Decks in Technology
See All in Technology
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
630
ネット広告に未来はあるか?「3rd Party Cookie廃止とPrivacy Sandboxの効果検証の裏側」 / third-party-cookie-privacy
cyberagentdevelopers
PRO
1
130
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
27
12k
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
470
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.6k
とあるユーザー企業におけるリスクベースで考えるセキュリティ業務のお話し
4su_para
3
330
visionOSでの空間表現実装とImmersive Video表示について / ai-immersive-visionos
cyberagentdevelopers
PRO
1
110
一休.comレストランにおけるRustの活用
kymmt90
3
580
使えそうで使われないCloudHSM
maikamibayashi
0
170
「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
shuzon
2
4.8k
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
6
1.1k
Amazon_CloudWatch_ログ異常検出_導入ガイド
tsujiba
4
1.6k
Featured
See All Featured
Docker and Python
trallard
40
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Agile that works and the tools we love
rasmusluckow
327
21k
Git: the NoSQL Database
bkeepers
PRO
425
64k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Speed Design
sergeychernyshev
24
570
Measuring & Analyzing Core Web Vitals
bluesmoon
1
41
Designing Experiences People Love
moore
138
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
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