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.1k
RWC2019 rubyによる超大量データ配信
yamaz
1
220
学び実践してきたこと
yamaz
1
420
スケールアウト再考
yamaz
1
390
RTB 30 min
yamaz
0
130
RailsとCで広告システムを作って起業した話
yamaz
1
370
robust logprocessing
yamaz
1
110
Other Decks in Programming
See All in Programming
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.8k
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
330
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
500
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
920
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
570
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
330
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
8.3k
Family mrubyの進捗
kishima
1
130
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
16
14k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
390
スマート反転とウェブアクセシビリティ
camiha
0
210
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
A designer walks into a library…
pauljervisheath
211
25k
Believing is Seeing
oripsolob
1
220
Paper Plane
katiecoart
PRO
4
53k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
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