Slide 1

Slide 1 text

30分でわかる広告配信 エンジンの作り方 (BTからコンテキスト広告まで) 1 株式会社 スケールアウト 山崎大輔

Slide 2

Slide 2 text

はじめに 1. 「広告エンジンって実際なにやってるの?」 というのを理解してもらうための内容になってます。 2. 今回説明する実装はコンセプト実装なので、 実際の実装とはかなり違います。 3. するどい突っ込みは大歓迎です。 2

Slide 3

Slide 3 text

アジェンダ  自己紹介  オンライン広告システムとは  基礎編  広告エンジンの役割  Railsによる実装例  応用編  BT(行動ターゲティング)の実装  コンテキストマッチの実装  まとめ 3

Slide 4

Slide 4 text

自己紹介 山崎大輔 Twitter: @yamaz Blog : 最速配信研究会 http://d.hatena.ne.jp/yamaz/ 現在:株式会社スケールアウト 代表 1日数億~を超えるような配信をカジュアルに行うための 広告配信システム「ScaleAds」の開発と販売およびコンサル かれこれオンライン広告業界で14年やってます 4

Slide 5

Slide 5 text

広告ってなんだ? 5 これ (バナー広告)

Slide 6

Slide 6 text

広告ってなんだ? 6 これ(テキストバナー) リロードすると広告が変わったりします

Slide 7

Slide 7 text

広告システムの悩み いろいろあります(その1) いろんなクリエイティブのパターンどうする?  通常バナー  RSS広告  動画広告  各種モバイル対応  その他新規デバイス対応 (wiiチャネル, オンラインゲーム…) 今回説明しません 7

Slide 8

Slide 8 text

広告システム実装の悩み いろいろあります(その2) いろいろな配信パターンどうする?  コンテンツマッチ(AdSenseみたいなの)  ビヘイビアターゲティング(行動ターゲティング)  地域ターゲティング  PV売り  枠売り  上記の組み合わせ  その他.. 今回これらを説明します 8

Slide 9

Slide 9 text

広告エンジンがやってること 配信エンジン ブラウザ 問い合わせ 最適な広告 営業さんは言います 「広告エンジンはユーザに対して 最適な広告を配信してます!」 9 それではわかりません><

Slide 10

Slide 10 text

最適な広告とは? 1. スケジュールされている広告の中で、 2. その瞬間に配信してもOKなもののうち、 3. その瞬間において一番優先度が高いもの 10

Slide 11

Slide 11 text

11 ID 期間 配信条件 達成状況 優先度 1 08/01 08/31 100万PV, 女性 11万PV 2 ….. 枠売り, 20~30歳代 10万PV 3 ….. 100万PV, 東京在住 11万PV 4 ….. 1000万PV 438万PV ~ ….. ….. ….. 80 ….. Context(不動産,賃貸) CPC@30円 予算10万 56000円 81 ….. BT(保険) 100万PV 48万PV 82 ….. BT(家電) 200万PV 190万PV スケジュールされている広告の中で 広告エンジンの動き

Slide 12

Slide 12 text

12 ID 期間 配信条件 達成状況 優先度 1 08/01 08/31 100万PV, 女性 11万PV 2 ….. 枠売り, 20~30歳代 10万PV 3 ….. 100万PV, 東京在住 11万PV 4 ….. 1000万PV 438万PV ~ ….. ….. ….. 80 ….. Context(不動産,賃貸) CPC@30円 予算10万 56000円 81 ….. BT(保険) 100万PV 48万PV 82 ….. BT(家電) 200万PV 190万PV 配信してもOKなもののうち 広告エンジンの動き

Slide 13

Slide 13 text

13 ID 期間 配信条件 達成状況 優先度 1 08/01 08/31 100万PV, 女性 11万PV 30 2 ….. 枠売り, 20~30歳代 10万PV 3 ….. 100万PV, 東京在住 11万PV 12 4 ….. 1000万PV 438万PV 100 ~ ….. ….. ….. 80 ….. Context(不動産,賃貸) CPC@30円 予算10万 56000円 81 ….. BT(保険) 100万PV 48万PV 35 82 ….. BT(家電) 200万PV 190万PV 14 その瞬間において一番優先度が高 いものを配信する 今回選ばれた広告 広告エンジンの動き

Slide 14

Slide 14 text

Railsによる実装例 class AdsvrController < ApplicationController render :text Schedules.find(:all) .grep{|sched| sched.can_delivered?} .max{|sched1, sched2| sched1.priority<=>sched2.priority} .to_html end 14

Slide 15

Slide 15 text

Railsによる実装例(解説) class AdsvrController < ApplicationController render :text # 全スケジュールの中から Schedules.find(:all) # 配信してよい案件を抽出して .grep{|sched| sched.can_delivered?} # 一番優先度が高いものを選択して .max{|sched1, sched2| sched1.priority<=>sched2.priority} # 最適なクリエイティブを作成 .to_html end # これを超高速に処理するのが広告エンジンです 15

Slide 16

Slide 16 text

条件評価部 # 配信をしていい広告案件を抽出 grep{|sched| sched.can_delivered?} def can_delivered? return false if @now > end_at || @now < start_at # 広告案件に付与された複数の条件を評価 constrains.each do |cons| value ||= cons.call(@request) return true if value end return false end 16

Slide 17

Slide 17 text

BT(行動ターゲティング)の場合 BT_schedule = Schedule.new(start_at, end_at, :type => :cpm, :goal_pv => 1000000) BT_schedule.add_constraint( Proc.new do user_behaviers.include?(‘shopping’) end ) all_schedules << BT_schedule 17

Slide 18

Slide 18 text

エンジンが取得可能な情報 配信エンジン ブラウザ 問い合わせ 18 •IP •Cookie •URL •browser •その他ヘッダ情報 ユーザDB ページ MetaDB IPDB

Slide 19

Slide 19 text

CM(コンテンツマッチ)の場合 CM_schedule = Schedule.new(start_at, :type => :cpc, :goal_budget => 1000000) CM_schedule.add_constraint( Proc.new do @webpage.content_keywords.include?(‘car’) end ) all_schedules << CM_schedule 19

Slide 20

Slide 20 text

優先度評価部 # 一番優先度が高いものを選択 .max{|sched1, sched2| sched1.priority<=>sched2.priority} 優先度を決定する要素  案件につけられた優先度  クリック単価が高い(優先度高)  PV達成がやばい(優先度高)  特別なユーザがアクセスした時(優先度高)  自社稿(優先度低) など 20

Slide 21

Slide 21 text

クリエイティブ最適化 # 最適なクリエイティブを作成 .to_html  デバイス・表示ページにあわせた出力  ユーザに応じた最適化 これだけでまたえらく長い話になるので、 今回は割愛します 21

Slide 22

Slide 22 text

まとめ  広告配信エンジンのやっていることを 簡単に説明しました。  やってることの大半は条件評価と 案件優先度の比較です 22

Slide 23

Slide 23 text

まとめ オンラインメディアはマーケターさんがずっと追い求めてきた 「1to1ターゲティング」を「リアルタイムレスポンス」で 可能とする唯一のメディアです。 その中でオンライン広告システムはその一端を担うシステムで、 ビジネスとアカデミックが共存している領域なので、楽しいです。 今回なにかしら興味を持ってもらえたのなら幸いです メンバー募集中です!大量配信・大規模集計やりたい人はぜひ。 バイト・インターンも可です(yama@scaleout.jpまで) 23