Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
adserver 30min
Search
Daisuke Yamazaki
August 22, 2010
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
adserver 30min
広告配信サーバの作り方を30分ほどで説明します。
Daisuke Yamazaki
August 22, 2010
More Decks by Daisuke Yamazaki
See All by Daisuke Yamazaki
ゼロトラブルへの道
yamaz
23
9.2k
RWC2019 rubyによる超大量データ配信
yamaz
1
230
学び実践してきたこと
yamaz
1
430
スケールアウト再考
yamaz
1
400
RTB 30 min
yamaz
0
130
RailsとCで広告システムを作って起業した話
yamaz
1
380
robust logprocessing
yamaz
1
110
Other Decks in Programming
See All in Programming
contenteditable と日本語入力に向き合う
colorful12
0
200
JIS keyboard support in Omarchy
lef237
0
130
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
AmebaブログはKMPから卒業します
kmars0605
0
200
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
970
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.3k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
100
Workers Cache を知る
syumai
0
370
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Building AI with AI
inesmontani
PRO
1
1.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Optimising Largest Contentful Paint
csswizardry
37
4k
Ethics towards AI in product and experience design
skipperchong
2
440
4 Signs Your Business is Dying
shpigford
187
23k
Product Roadmaps are Hard
iamctodd
55
13k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Transcript
30分でわかる広告配信 エンジンの作り方 (BTからコンテキスト広告まで) 1 株式会社 スケールアウト 山崎大輔
はじめに 1. 「広告エンジンって実際なにやってるの?」 というのを理解してもらうための内容になってます。 2. 今回説明する実装はコンセプト実装なので、 実際の実装とはかなり違います。 3. するどい突っ込みは大歓迎です。 2
アジェンダ 自己紹介 オンライン広告システムとは 基礎編 広告エンジンの役割
Railsによる実装例 応用編 BT(行動ターゲティング)の実装 コンテキストマッチの実装 まとめ 3
自己紹介 山崎大輔 Twitter: @yamaz Blog : 最速配信研究会 http://d.hatena.ne.jp/yamaz/ 現在:株式会社スケールアウト 代表
1日数億~を超えるような配信をカジュアルに行うための 広告配信システム「ScaleAds」の開発と販売およびコンサル かれこれオンライン広告業界で14年やってます 4
広告ってなんだ? 5 これ (バナー広告)
広告ってなんだ? 6 これ(テキストバナー) リロードすると広告が変わったりします
広告システムの悩み いろいろあります(その1) いろんなクリエイティブのパターンどうする? 通常バナー RSS広告 動画広告
各種モバイル対応 その他新規デバイス対応 (wiiチャネル, オンラインゲーム…) 今回説明しません 7
広告システム実装の悩み いろいろあります(その2) いろいろな配信パターンどうする? コンテンツマッチ(AdSenseみたいなの) ビヘイビアターゲティング(行動ターゲティング) 地域ターゲティング
PV売り 枠売り 上記の組み合わせ その他.. 今回これらを説明します 8
広告エンジンがやってること 配信エンジン ブラウザ 問い合わせ 最適な広告 営業さんは言います 「広告エンジンはユーザに対して 最適な広告を配信してます!」 9 それではわかりません><
最適な広告とは? 1. スケジュールされている広告の中で、 2. その瞬間に配信してもOKなもののうち、 3. その瞬間において一番優先度が高いもの 10
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 スケジュールされている広告の中で 広告エンジンの動き
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なもののうち 広告エンジンの動き
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 その瞬間において一番優先度が高 いものを配信する 今回選ばれた広告 広告エンジンの動き
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
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
条件評価部 # 配信をしていい広告案件を抽出 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
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
エンジンが取得可能な情報 配信エンジン ブラウザ 問い合わせ 18 •IP •Cookie •URL •browser •その他ヘッダ情報
ユーザDB ページ MetaDB IPDB
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
優先度評価部 # 一番優先度が高いものを選択 .max{|sched1, sched2| sched1.priority<=>sched2.priority} 優先度を決定する要素 案件につけられた優先度
クリック単価が高い(優先度高) PV達成がやばい(優先度高) 特別なユーザがアクセスした時(優先度高) 自社稿(優先度低) など 20
クリエイティブ最適化 # 最適なクリエイティブを作成 .to_html デバイス・表示ページにあわせた出力 ユーザに応じた最適化 これだけでまたえらく長い話になるので、 今回は割愛します
21
まとめ 広告配信エンジンのやっていることを 簡単に説明しました。 やってることの大半は条件評価と 案件優先度の比較です 22
まとめ オンラインメディアはマーケターさんがずっと追い求めてきた 「1to1ターゲティング」を「リアルタイムレスポンス」で 可能とする唯一のメディアです。 その中でオンライン広告システムはその一端を担うシステムで、 ビジネスとアカデミックが共存している領域なので、楽しいです。 今回なにかしら興味を持ってもらえたのなら幸いです メンバー募集中です!大量配信・大規模集計やりたい人はぜひ。 バイト・インターンも可です(
[email protected]
まで) 23