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
570
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
GREE Tech Conference 2020 で発表された資料です。
https://techcon.gree.jp/2020/session/Session-1
gree_tech
PRO
September 18, 2020
Tweet
Share
More Decks by gree_tech
See All by gree_tech
コミュニケーションに鍵を見いだす、エンジニア1年目の経験談
gree_tech
PRO
0
120
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
1.7k
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
560
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
570
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
530
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
620
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
980
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
640
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
760
Other Decks in Technology
See All in Technology
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
180
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
310
5min GuardDuty Extended Threat Detection EKS
takakuni
0
180
Model Mondays S2E03: SLMs & Reasoning
nitya
0
240
OpenHands🤲にContributeしてみた
kotauchisunsun
1
500
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
190
一体いつからSRE NEXTがSREだけのカンファレンスだと錯覚していた? / When did you ever get the idea that SRE NEXT was a conference just for SREs?
vtryo
1
130
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
5.7k
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
690
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
160
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
250
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
1
2.6k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
How to train your dragon (web standard)
notwaldorf
94
6.1k
A Tale of Four Properties
chriscoyier
160
23k
Agile that works and the tools we love
rasmusluckow
329
21k
4 Signs Your Business is Dying
shpigford
184
22k
RailsConf 2023
tenderlove
30
1.1k
Music & Morning Musume
bryan
46
6.6k
Become a Pro
speakerdeck
PRO
28
5.4k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Transcript
グリーライフスタイル株式会社 サーバーサイドエンジニア 田畠 知弥 iOSエンジニア 矢崎 雄人 LIMIAアプリにおける 行動履歴を用いた コンテンツ配信の最適化
2 自己紹介 田畠 知弥 • 2013年グリー株式会社に入社 • サーバーサイドエンジニア 矢﨑 雄人
• 2017年グリー株式会社に入社 • iOSエンジニア
3 ⓘ Start presenting to display the poll results on
this slide. LIMIAを知っていますか?
お手軽で、すぐ真似できるのに、ちゃんと暮らしやすい。 LIMIAは家事の工夫が大集合するライフスタイルメディアです。 お手軽工夫で家事上手 LIMIAの紹介
• ライフスタイルに関する多種多様なコンテンツを掲載 ◦ 記事 ▪ DIYのやり方 ▪ 100均グッズ紹介 ▪ 効率的な掃除方法
▪ etc. ◦ 写真投稿 ◦ SNS機能 LIMIAアプリの紹介
• アプリ上の行動から、ユーザーの興味を推測し、その人の興 味にあったコンテンツを表示するシステム ユーザーに興味に合ったコンテンツを届けたい アプリ内の イベントを収集 ユーザーごとに最適な コンテンツを配信
7 ⓘ Start presenting to display the poll results on
this slide. アプリのイベント計測やっていますか?
• アプリ内で起きたイベントをFirebase Analyticsへ送信 • イベント名、画面名、記事IDなど各種パラメータを付与 • データはBigQueryにエクスポート Firebase Analyticsでアプリ内のイベントを計測する Firebase向け
Google Analytics BigQuery 記事のタップなど
• アプリには記事リストがたくさん並ぶ • リストをスクロールして興味のある記事をタップ • 画面に表示されてもタイトルを読んだとは限らない • 興味がなくてタップしなかったのか • スクロールして読み飛ばしたのか
ユーザーがどんなコンテンツに 興味を持っているのか計測したい
• vCTRを指標に • 「Viewable Click-Through Rate」の略 • ユーザーが目視した記事リストの中から何を選択したか • ユーザーが目視した記事リスト
= Viewable Impression • ユーザーがタップした記事 = Click • Click ÷ Viewable Impression = vCTR ユーザーがどんなコンテンツに 興味を持っているのか計測したい
• vCTRを指標に • 「Viewable Click-Through Rate」の略 • ユーザーが目視した記事リストの中から何を選択したか • ユーザーが目視した記事リスト
= Viewable Impression • ユーザーがタップした記事 = Click • Click ÷ Viewable Impression = vCTR ユーザーがどんなコンテンツに 興味を持っているのか計測したい
• ネット広告業界で使われる指標 • ユーザーが目視可能である状態を定義 • サーバー側のアクセスログでは計測できない 「領域の50%以上が1秒以上連続して画面に表示されること」 Viewable Impressionとは 記事C
記事B 記事A 記事C 記事B 記事A 記事A~Cはどれも領域 50%を満たしていない 記事Cだけ領域が50%を 満たしていない 縦方向スクロール 横方向スクロール
デモ動画 Viewable Impressionが発生する様子
Viewable Impressionのフローチャート • 記事リスト1つ1つでひたすら このループを実行 • Viewable Impressionを Firebase Analyticsに送信
• ライブラリに記事リストのビューを渡して、 Viewable Impressionを通知するシンプルな構成 グリーメディアの他アプリにも導入するため、計測用ライブラリを開発 Viewable Impression計測用ライブラリの開発 アプリ ライブラリ Viewable判定
記事リストの ビュー生成 イベント送信
• 大量のイベントループが発生 • 各タブの記事リストを合計すると200以上になることも • ループ処理の一時停止、再開を適切に管理 • 画面単位でトラッカーを作成 • アクティブな画面だけトラッカーを有効に
• 「1秒以上連続表示」を測るため領域の計算が高頻度で発生 • 領域計算のオーバーヘッドをなるべく抑える • 計算頻度を調整 • CADisplayLink/TimeAnimatorを使用 • 画面描画の数フレームに1回のように調整 記事リストすべてを計測するには負荷がかかる Viewable Impression計測の難しさ
• Firebase Analyticsを利用 • アプリ内で起きたイベントをデータとして貯める • 記事のタップとViewable Impressionを計測 • vCTRが計測できるようになった
アプリのイベント計測まとめ
18 LIMIAでコンテンツを配信するまでの流れ アプリ内の イベントを収集 ユーザーごとに最適な コンテンツを配信
19 ユーザーの興味がある記事を届けたい • ユーザー一人一人の興味にあった記事を届ける • ログから、興味を推測して、適したコンテンツを配信
20 コンテンツを配信するまでのデータの流れ 記事情報 記事のImpression 記事のClick 記事の人気度 ユーザーの興味 記事の種別、特徴 ユーザーに見せる 記事を決定
21 システムのアーキテクチャ 記事情報 記事閲覧 記事閲覧履歴 記事特徴 ユーザーの特徴 ユーザーのimpression, click 人気の記事
ユーザーの興味に あったコンテンツを配信
22 人気の記事 • ユーザーに好まれている記事を知りたい ◦ Viewable Impressionを使うことで、ユーザーがアプリの記事リ ストで実際に目に止めて、Clickした記事がわかる • アプリからのログはFirebaseを使ってBigQuery保存
• 定期的にvCTRを計算してDynamoDBに保存 ユーザーのimpression, click 人気の記事
23 • 記事の特徴 ◦ 記事を作成する際に特徴を計算しDynamoDBに記事の特徴を保存 • 閲覧情報 ◦ ユーザーの記事を閲覧情報に履歴としてDynamoDBに保存 •
ユーザー特徴 ◦ 記事の特徴とユーザーの記事閲覧情報を使ってユーザー特徴を計 算 記事の特徴とユーザーの特徴 記事情報 記事閲覧 閲覧情報 記事特徴 ユーザーの特 徴
24 • ユーザーの特徴や人気の記事などを元に、ユーザーの興味に あった記事を計算 • 新しいロジックを導入する際はA/Bテストで評価 ユーザーにオススメのコンテンツを配信する 記事閲覧 記事特徴 ユーザーの特徴
人気の記事 ユーザーに コンテンツを配信
25 ユーザーに興味のあるコンテンツをだす難しさ • 検証の難しさ ◦ オフラインの評価が必ずしもオンラインで評価した時と一致しな い • システムの難しさ ◦
一個一個は小さいが、たくさんの処理がピタゴラスイッチのよう に動く • 自チームだけでは完結しない難しさ ◦ 必要なデータ収集を集めるのに、自チームだけで完結しない
26 どうやってるか • 検証の難しさ ◦ 実際にユーザーに提供して、A/Bテストで効果を測る ◦ 考えて、実装して、検証するサイクルを速く回すのが大事 • システムの難しさ
◦ 検証のサイクルを素早く回すには、データのパイプラインを簡単 に作れるような環境にしておく ▪ 適切なコンポーネントに分割して、コードで管理する • 自チームだけでは完結しない難しさ ◦ しっかりスケジュールを立てて、気軽に相談できる環境を作る
• アプリ内のイベントを収集 • 記事のタップイベント、Viewable Impressionを計測 • 計測用ライブラリについて • ユーザーごとに最適なコンテンツを配信 •
ユーザーの興味にあった記事の配信システム • 配信システムを運用する上で気をつけていること まとめ アプリ内の イベントを収集 ユーザーごとに最適な コンテンツを配信