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

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