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
440
スケールアウト再考
yamaz
1
410
RTB 30 min
yamaz
0
130
RailsとCで広告システムを作って起業した話
yamaz
1
390
robust logprocessing
yamaz
1
110
Other Decks in Programming
See All in Programming
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.8k
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
310
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Modernizing iOS Apps
seyfoyun
0
150
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
SODA - FACT BOOK(EN)
sodainc
1
220
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
730
protojson における文字化けの扱い
kazuki1023
0
200
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
120
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
300
Code Reviewing Like a Champion
maltzj
529
40k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
470
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Git: the NoSQL Database
bkeepers
PRO
433
67k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.4k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
520
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building an army of robots
kneath
307
47k
A designer walks into a library…
pauljervisheath
211
25k
How to build a perfect <img>
jonoalderson
1
6.2k
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