SlideShare a Scribd company logo
1 of 26
Download to read offline
Revive Adserverではじめる
パーソナライズドリターゲティング

2014/2/26
浦 信将
アジェンダ

1. Revive Adserverってなに?
2. パーソナライズドリターゲティングってなに?
3. プラグインを作ってみよう
4. Reviveでパーソナライズドリターゲティング

2
Revive Adserverってなに?
•

オープンソースのアドサーバー

•

PHP

•

2013年9月、OpenX Technologies, Inc.が作ったOpenX Source
を、Andrew Hillをはじめとするオリジナル開発メンバーが買い取
り、Reviveと名付け直した

•

Prolocationというオランダの会社がスポンサー

3
Revive Adserverってなに?
システム管理者
広告主A

広告主B

ブランディングキャンペーン

販促キャンペーン

・2014/1/1∼2014/1/31

・2014/2/1∼2014/2/14

Aバナー

トップ右上
レクタングル

キャンペーン

Cバナー

ニュースポータルサイト
4

ゾーン
(広告枠)

ECサイト

スポーツ
上帯

バナー

スマホ
画面下

Bバナー

Webサイト
パーソナライズドリターゲティングってなに?
行動ターゲティング広告(こうどうターゲティングこうこく)とは、
広告の対象となる顧客の行動履歴を元に、顧客の興味関心を推測し、
ターゲットを絞ってインターネット広告配信を行う手法。
例えば、旅行関連のページを最近訪れたことがあったり、航空会社
の広告をクリックしたことがあるユーザーは、「旅行」というジャン
ルに興味関心があると判定し、「旅行」関連の広告を配信するといっ
たもの。
ここでいう「行動」は、ページの閲覧、広告のクリック、検索のキー
ワードなどを指し、広告の配信を行う媒体・事業者によって定義は
異なる。コンテンツ連動型広告を併用している場合が多い。行動ター
ゲッティング広告は、追跡型広告(ついせきがたこうこく)やリター
ゲティング広告とも呼ばれる。
(wikipediaより)
5
パーソナライズドリターゲティングってなに?

①ユーザがリンクを
クリック

6
パーソナライズドリターゲティングってなに?

Webサイト
ユーザ(ブラウザ)

!
!

ページA

②Cookieをセット
ID

7
パーソナライズドリターゲティングってなに?

アドネットワーク

GDN

YDN

!
③ウチのページA見た人
(Cookie持ってる人)
に広告出したい

Webサイト

ID

8
パーソナライズドリターゲティングってなに?

!
④このCookieには
この広告出そう

ID

GDN
9
パーソナライズドリターゲティングってなに?

犬カテゴリのページ
見た人にはこの広告

猫カテゴリのページ
見た人にはこの広告

<普通のリタゲ>
ゆるやかな分類
汎用的なクリエイティブ

10
パーソナライズドリターゲティングってなに?

もっとユーザの特性を考慮すれば
効果の高い広告を出せるのではないか

11
パーソナライズドリターゲティングってなに?
例えば行動履歴から、その人に合った細やかな広告を表示

12
パーソナライズドリターゲティングってなに?

要素
•

ユーザの行動履歴分析

•

広告クリエイティブの多様性

•

広告選択(レコメンド)アルゴリズム

•

すばやく広告を表示するパフォーマンス

13
パーソナライズドリターゲティングってなに?

主なリタゲプレーヤー
•

Criteo(Criteo)

•

リマーケティング(Google)

•

HotView(SILVER EGG)

•

リターゲティング(MicroAd)

•

サイトリターゲティング(Yahoo!)

14
プラグインを作ってみよう

Reviveにはリタゲの機能がありません

15
プラグインを作ってみよう
Reviveはプラグインシステムを採用しています

Custom

Workflow

Video Ads

Delivery Logs

Invocation Tags

Reports

Delivery Limitation

Delivery Cache Store

Banner Types

Revive
16
プラグインを作ってみよう
配信制限プラグイン
Delivery Limitation

•
•
•

ブラウザ制限
ジオターゲティング
日時制限

リターゲティング用配信制限
・リタゲ対象URL

abc.com/category/xxx

・訪問日時

2014/2/1

・コンバージョン

購入

17

∼
▼

2014/2/28
有

▼
プラグインを作ってみよう

訪問
リタゲ配信判定

Revive
バナー配信

18
プラグインを作ってみよう

1. XML定義
2. 配信制限設定フォーム作成
3. 配信時の判定ロジック作成
4. 作ったファイルをzipに固める
5. 管理者権限でログインし、zipをプラグインとして
インストール

19
Reviveでパーソナライズドリターゲティング

作ったら問題が起きました
※EC2 mediumインスタンス上に構築。JMeterでテスト実施

表示候補
バナー数

同時アクセス
スレッド数

表示までにかかった
処理時間(ms)

100

30

147

100

80

164

500

80

5470 !?

20
Reviveでパーソナライズドリターゲティング

想定した広告配信パターン

※本資料は楽天株式会社と一切関係ありません

一つの枠に、候補となるバナーが500個
商品数万、製品数十万点が存在する場合はありえる
21
Reviveでパーソナライズドリターゲティング
Reviveは候補が多い場合、バナー選択ロジックに難有り
1. ゾーン(枠)に紐づくバナーを全て取得し、基本配信条件を満たすか全件判
定(キャンペーンが有効か、etc)
2. 配信制限プラグインによる判定
3. キャンペーン・バナーのウェイトを考慮し、バナーを選択
4. バナーのフリクエンシーキャップなどを再度判定
5. 配信

ゾーンに紐づくバナーが増えると、1だけで数秒使ってしまう可能性がある

22
Reviveでパーソナライズドリターゲティング
バナー選択ロジックのカスタマイズ
1. 【前準備】ゾーン 配信条件ごとに条件を満たすバナーを選択、パフォー
マンスが落ちない数まで抽出、キャッシュ
2. 【前準備】マークしてあるユーザ 許可する配信条件をあらかじめ計算
3. ユーザ訪問時に、ユーザから許可する配信条件を取得
4. 訪問したページのゾーン 配信条件からバナーを取得
5. ウェイトを考慮しバナーを選択、フリクエンシーキャップなどを判定
6. 配信

23
Reviveでパーソナライズドリターゲティング
Webサイト
①訪問

ユーザA(cookie)

zone1

②広告表示
リクエスト

⑦バナー配信
③ユーザAをキーにして
許可する配信制限を取得

Revive

ユーザA:[配信制限A、配信制限C]
ユーザB:[配信制限B]
ユーザC:[配信制限D]

④配信制限A、C
⑤zone1+
配信制限A、C
でバナー取得

⑥表示候補となるバナーが返る
cache_zone1_配信制限A.php

【バッチ】
行動履歴から
リタゲ対象ユーザ抽出

バナーキャッシュディレクトリ

!
cache_zone1_配信制限A.php
cache_zone2_配信制限B.php
cache_zone2_配信制限C.php
cache_zone3_配信制限D.php

【バッチ】
バナーを抽出して
シリアライズ
24

Webサイト行動履歴
Reviveでパーソナライズドリターゲティング
表示候補
バナー数

同時アクセス
スレッド数

表示までにかかった
処理時間(ms)

100

30

147

100

80

164

500

80

5470 !?

500

30

60

200000

30

159

25
Reviveでパーソナライズドリターゲティング
まとめ
•

前処理をすることで配信時の負荷を減らす

•

前処理のバナーの抽出間隔を短くすることでバナー選択のリアルタイム性をも
たせる(バナーの抽出方法を工夫すればバナーが増えてもスケールする)

26

More Related Content

What's hot

What's hot (20)

リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
アジャイル開発とメトリクス
アジャイル開発とメトリクスアジャイル開発とメトリクス
アジャイル開発とメトリクス
 
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 ) JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
 
MQ入門
MQ入門MQ入門
MQ入門
 
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
paizaのオンラインジャッジを支えるDockerとその周辺
paizaのオンラインジャッジを支えるDockerとその周辺paizaのオンラインジャッジを支えるDockerとその周辺
paizaのオンラインジャッジを支えるDockerとその周辺
 
Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
Modern C# Programming 現代的なC#の書き方、ライブラリの選び方Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
 
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧
 
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
 

Viewers also liked (6)

Introduction to Using the OpenX AdServer for your Nonprofit Website
Introduction to Using the OpenX AdServer for your Nonprofit WebsiteIntroduction to Using the OpenX AdServer for your Nonprofit Website
Introduction to Using the OpenX AdServer for your Nonprofit Website
 
Manual usuario AdServer
Manual usuario AdServerManual usuario AdServer
Manual usuario AdServer
 
DSP「ScaleOut」の成長と負荷対策
DSP「ScaleOut」の成長と負荷対策DSP「ScaleOut」の成長と負荷対策
DSP「ScaleOut」の成長と負荷対策
 
フルスクラッチで書いたアドサーバの開発運用史
フルスクラッチで書いたアドサーバの開発運用史フルスクラッチで書いたアドサーバの開発運用史
フルスクラッチで書いたアドサーバの開発運用史
 
アドテク勉強会0819
アドテク勉強会0819アドテク勉強会0819
アドテク勉強会0819
 
Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04
 

Similar to ReviveAdserverではじめるパーソナライズドリターゲティング (7)

アドテク案件入門講座 8月20日(公開版)
アドテク案件入門講座 8月20日(公開版)アドテク案件入門講座 8月20日(公開版)
アドテク案件入門講座 8月20日(公開版)
 
Khronos Overview JP Translation
Khronos Overview JP TranslationKhronos Overview JP Translation
Khronos Overview JP Translation
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 
【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)
【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)
【IMJ】デジタルマーケティング基盤を駆使して『利益を産むサイト』adobe.com(I・CON2014)
 
アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術アドネットワークのデータ解析チームを支える技術
アドネットワークのデータ解析チームを支える技術
 
エースホームのWeb戦略を実現したサイト構築
エースホームのWeb戦略を実現したサイト構築エースホームのWeb戦略を実現したサイト構築
エースホームのWeb戦略を実現したサイト構築
 
リーンスタートアップの奇妙な冒険
リーンスタートアップの奇妙な冒険リーンスタートアップの奇妙な冒険
リーンスタートアップの奇妙な冒険
 

ReviveAdserverではじめるパーソナライズドリターゲティング