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
86
メディアアプリLIMIAにおけるプッシュ通知配信システム
GREE Tech Conference 2020 での発表資料です。
mahiguch
September 18, 2020
Tweet
Share
More Decks by mahiguch
See All by mahiguch
爆速で成長する おでかけ情報サービスの成長を支えるデザインと開発の取り組みについて
mahiguch
0
31
WebView認証連携
mahiguch
0
57
公式部活動技術書典部の活動紹介
mahiguch
0
98
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
mahiguch
1
1k
PHPからgoへの移行で分かったこと
mahiguch
2
3.9k
BigQueryを使った機械学習プロジェクトの分析とオフライン検証
mahiguch
2
1.1k
gRPCを使ったメディアサービス2
mahiguch
0
180
LIMIAでのBigQuery活用事例
mahiguch
0
190
機械学習輪講会資料
mahiguch
0
130
Other Decks in Technology
See All in Technology
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
8
750
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.3k
日経のデータベース事業とElasticsearch
hinatades
PRO
0
260
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
9
750
Change Managerを活用して本番環境へのセキュアなGUIアクセスを統制する / Control Secure GUI Access to the Production Environment with Change Manager
yuj1osm
0
110
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
540
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
280
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.5k
DeepSeekとは?何がいいの? - Databricksと学ぶDeepSeek! 〜これからのLLMに備えよ!〜
taka_aki
1
160
困難を「一般解」で解く
fujiwara3
7
1.6k
AWSアカウントのセキュリティ自動化、どこまで進める? 最適な設計と実践ポイント
yuobayashi
7
960
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.8k
Featured
See All Featured
It's Worth the Effort
3n
184
28k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
For a Future-Friendly Web
brad_frost
176
9.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
GitHub's CSS Performance
jonrohan
1030
460k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
520
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Gamification - CAS2011
davidbonilla
80
5.2k
BBQ
matthewcrist
87
9.5k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Code Review Best Practice
trishagee
67
18k
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