Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
Search
gree_tech
PRO
September 18, 2020
Technology
0
680
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
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
2.3k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
26
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
150
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
150
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.5k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
270
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
290
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
210
Other Decks in Technology
See All in Technology
RAG/Agent開発のアップデートまとめ
taka0709
0
180
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.3k
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
3.4k
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
280
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
150
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
400
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
200
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/09 - 2025/11
oracle4engineer
PRO
0
160
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
2
120
Jakarta Agentic AI Specification - Status and Future
reza_rahman
0
110
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Docker and Python
trallard
47
3.7k
Code Reviewing Like a Champion
maltzj
527
40k
Facilitating Awesome Meetings
lara
57
6.7k
Embracing the Ebb and Flow
colly
88
4.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Visualization
eitanlees
150
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
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を計測 • 計測用ライブラリについて • ユーザーごとに最適なコンテンツを配信 •
ユーザーの興味にあった記事の配信システム • 配信システムを運用する上で気をつけていること まとめ アプリ内の イベントを収集 ユーザーごとに最適な コンテンツを配信