SlideShare une entreprise Scribd logo
1  sur  49
Анатомия RTB
Владимир Климонтович
Real time biding
Old school
Проблемы
• Финальный исход зависит от порядка ad
networks в цепочке
• Большой размер цепочки замедляет
загрузку страницы
RTB! (new school)
Аукцион второй цены
• Выигравший участник платит вторую цену +
delta (1 цент, 1 копейка)
• Если участник один, оплачивается
минимальная цена (floor cpm) + delta
• Аукцион второй цены стимулирует
участников называть реальную цену
• Время ответа: 100ms
Основные субъекты рынка
• SSP (Sell Side Platform) – обслуживает
интересы площадок
• DSP (Demand Side Platform) – обслуживает
интересы рекламодателей
• DMP (Data Management Platforms/Data
Exchange) – собирает данные о
пользователе
SSP
• Обслуживает интересы площадок
размещения (сайтов)
• Технологически проще DSP
• По сути, одинаковая бизнес-модель у всех
SSP
DSP
• Обслуживает рекламодателей
• Сложнее чем SSP
• Разные бизнес модели: retargeting, search
retargeting, audience targeting
• Разные модели оплаты: pay-per-click, pay-
per-conversion
Retargeting
• Показываем рекламу только тем
пользователям, которые уже были на сайте
рекламодателя
• По статистике, вероятность конверсии
может вырасти с 0.005% до 0.9%
Audience targeting
• Показываем объявления только
заинтересованной аудитории
• Например, показываем рекламу новой
Honda посетителям автомобильных сайтов
• Данные можно брать свои, можно покупать
у DMP
Pay-per-click/pay-per-conversion
• Рекламодатель платит DSP только в случае
совершения пользователем целевого
действия (клик, конверсия)
• DSP всегда платит SSP за показы
• Вывод: DSP должна хорошо уметь
оценивать вероятность клика/конверсии
Cookie sync
Cookie sync – проблема
• До RTB-эры пользователей
идентифицировали по cookie
• Но DSP и SSP “живут в разных доменах”
Cookie sync – проблема
Cookie sync – решение (sync pixel)
Match table
• Порядок: 10-100 млн строк
• В идеале хранится на стороне SSP, но не
всегда
SSP User Id DSP User ID
10:22741675 03goMw3rI64
Виды cookie sync
• Инициированный SSP
• Инициированный DSP
Что еще?
• До RTB-эры данные о пользователе (частота
показов, посещенные сайты) хранились в
cookie
• Cookie sync обеспечивает только
синхронизацию ID. Остальное нужно
хранить в БД на стороне DSP (NoSQL )
Под капотом RTB
Основные проблемы
• HTTP-нагрузка (тысячи входящих и
исходящий HTTP-запросов в секунду)
• Хранение и анализ логов (10-100Gb в день)
• Online хранилища (match table, user table)
• Machine learning: алгоритмы предсказания
кликов/конверсий
HTTP-нагрузка
• Средняя SSP: 5 000 входящих, 20 000
исходящих запросов в секунду
• Средняя DSP: 10 000 входящих запросов в
секунду
HTTP-нагрузка, что делать?
• Не боятся!
• Использовать Java/C++, остерегаться Python
и PHP
• Использовать event-driven подход, lock-free
синхронизацию и т.д.
HTTP-нагрузка: библиотеки
• Java: akka, NIO, Netty
• C++: libevent, libev
И последнее: RAM и только RAM!
Храним в памяти
• Все рекламные кампании, таргетинги,
настройки и т.д.
• На диск пишем только логи, ничего не
читаем
Online хранение пользователей
Что храним?
SSP USER ID SSP INTERNAL USER ID
10:22741675 adfox 03goMw3rI64
USER ID USER DATA
03goMw3rI64 Частота показов по кампаниям и т.д.
Cookie sync table (100 млн записей)
User data (100 млн записей)
Требование к хранилищу
• Ответ на чтение: 10ms (помним, timeout
всего аукциона 100ms)
• Хранение всех данных в RAM
• Цена! И еще раз цена!
• Легкое масштабирование
Чего требовать не надо
• Надежности
• 99,99% availability – более, чем достаточно
Варианты
• Терпимые: Mongo, Redis, Cassandra,
Tarantool
• Плохие: Hbase
• Неясные: MySQL/PostgreSQL
Offline данные оно же Big Data
Проблемы
• Данных много: 10-100Gb в день
• Люди хотят быстро получать ответы на
сложные вопросы: сколько у нас есть
показов в Киеве людям в возрасте 20-25
лет, которые до этого искали билеты на
самолет в Яндексе
Философия данных
Философия данных
• Там где идет речь об аналитике, как
правило, скорость ответа важнее точности
• Там, где идет речь о деньгах, как правило,
точность важнее скорости
Как пожертвовать точностью?
date domain city impressions (показы)
2013-01-14 12:12 a.com Moscow 1
Считаем показы в Москве за один день:
SELECT sum(impressions) WHERE
city=‘Moscow’ and date=‘2013-01-14’
Sampling
• Выбросим случайны 9 строчек из 10
• Для оставшихся строчке умножим
impressions на 10
• SELECT sum(impressions) WHERE
city=‘Moscow’ and date=‘2013-01-14’
date domain city impressions (показы)
2013-01-14 12:12 a.com Moscow 10
Sampling – считаем ошибку
• Пусть в ответе на запрос мы получили число
N
• Тогда оценка ошибки:
• При N=1 000 000, ошибка: 0.6%
2
N /10
Sampling
0.00%
10.00%
20.00%
30.00%
40.00%
50.00%
Статистическая ошибка
Уникальные пользователи
• SELECT count (distinct user_id) WHERE
city=‘Moscow’ and date=‘2013-01-14’
• Как оптимизировать?
date domain city user_id impressions (показы)
2013-01-14 12:12 a.com Moscow 6VdckZtTUkN 1
Вероятностные алгоритмы
• Наглядные: K-minimum values, linear counter
• Другие: LogLog counters
Что использовать?
• Apache Hadoop – лучшее из худших
решений
• Storm (from Twitter) – потоковый
“MapReduce”. Для некоторых задач
заменяет Hadoop
• Колоночные БД
Колоночные БД
Колоночные БД
• Важно! Hbase, Cassandra – не колоночные
• Пример: SELECT sum(impressions) WHERE
city=‘Moscow’ and date=‘2013-01-14’
• Будут прочитаны только файлы для с
данными impressions и city
Колоночные БД – преимущества
• Данные хорошо сжимаются (данные в
колонках однородные)
• Скорость агрегирующих запросов в разы
выше
• Недостатки: сложность загрузки данных
Machine learning
Machine learning
• Предсказание вероятности клика
• Предсказание вероятности конверсии
• Look-alike (предсказание пола, возраста,
поведения пользователя)
Несколько фактов
• На рынке есть хорошие open-source
решения
• Лучше плохой алгоритм, чем никакой
• Алгоритм важен, но еще важнее параметры
обучений (features) и настройки
Вопросы?
• klimontovich@gmail.com
• Skype: klimontovich

Contenu connexe

En vedette

Больше DMP, хороших и разных
Больше DMP, хороших и разныхБольше DMP, хороших и разных
Больше DMP, хороших и разныхHybridRussia
 
20121129 boris omelnitskiy_i_prof2012
20121129 boris omelnitskiy_i_prof201220121129 boris omelnitskiy_i_prof2012
20121129 boris omelnitskiy_i_prof2012Boris Omelnitskiy
 
Обработка данных в RTB: быстро, дешево и на 98% точно
Обработка данных в RTB:  быстро, дешево и на 98% точноОбработка данных в RTB:  быстро, дешево и на 98% точно
Обработка данных в RTB: быстро, дешево и на 98% точноPavel Kalaidin
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop Vladimir Klimontovich
 
Александр Иванов. Programmatic: новая эра в digital-рекламе
Александр Иванов. Programmatic: новая эра в digital-рекламеАлександр Иванов. Programmatic: новая эра в digital-рекламе
Александр Иванов. Programmatic: новая эра в digital-рекламеAuditorius
 
Мифы об RTB и Programmatic
Мифы об RTB и ProgrammaticМифы об RTB и Programmatic
Мифы об RTB и ProgrammaticHUBRUS
 
Dmp - cookie synching (11-15-11)
Dmp - cookie synching (11-15-11)Dmp - cookie synching (11-15-11)
Dmp - cookie synching (11-15-11)Marcus Tewksbury
 
Bluekai: Data Management Platforms (dmp) for Publishers
Bluekai: Data Management Platforms (dmp) for PublishersBluekai: Data Management Platforms (dmp) for Publishers
Bluekai: Data Management Platforms (dmp) for PublishersBrian Crotty
 
Real time bidding (DSP, SSP, DMP, ATD, ITD)
Real time bidding (DSP, SSP, DMP, ATD, ITD)Real time bidding (DSP, SSP, DMP, ATD, ITD)
Real time bidding (DSP, SSP, DMP, ATD, ITD)Mutlu Dogus Yildirim
 
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT - A complete digital ...
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT -  A complete digital ...All about Programmatic buying(RTB), DSP,SSP, DMP & DCT -  A complete digital ...
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT - A complete digital ...Karunakar Ravirala
 

En vedette (11)

Data Mining in RTB
Data Mining in RTBData Mining in RTB
Data Mining in RTB
 
Больше DMP, хороших и разных
Больше DMP, хороших и разныхБольше DMP, хороших и разных
Больше DMP, хороших и разных
 
20121129 boris omelnitskiy_i_prof2012
20121129 boris omelnitskiy_i_prof201220121129 boris omelnitskiy_i_prof2012
20121129 boris omelnitskiy_i_prof2012
 
Обработка данных в RTB: быстро, дешево и на 98% точно
Обработка данных в RTB:  быстро, дешево и на 98% точноОбработка данных в RTB:  быстро, дешево и на 98% точно
Обработка данных в RTB: быстро, дешево и на 98% точно
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
 
Александр Иванов. Programmatic: новая эра в digital-рекламе
Александр Иванов. Programmatic: новая эра в digital-рекламеАлександр Иванов. Programmatic: новая эра в digital-рекламе
Александр Иванов. Programmatic: новая эра в digital-рекламе
 
Мифы об RTB и Programmatic
Мифы об RTB и ProgrammaticМифы об RTB и Programmatic
Мифы об RTB и Programmatic
 
Dmp - cookie synching (11-15-11)
Dmp - cookie synching (11-15-11)Dmp - cookie synching (11-15-11)
Dmp - cookie synching (11-15-11)
 
Bluekai: Data Management Platforms (dmp) for Publishers
Bluekai: Data Management Platforms (dmp) for PublishersBluekai: Data Management Platforms (dmp) for Publishers
Bluekai: Data Management Platforms (dmp) for Publishers
 
Real time bidding (DSP, SSP, DMP, ATD, ITD)
Real time bidding (DSP, SSP, DMP, ATD, ITD)Real time bidding (DSP, SSP, DMP, ATD, ITD)
Real time bidding (DSP, SSP, DMP, ATD, ITD)
 
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT - A complete digital ...
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT -  A complete digital ...All about Programmatic buying(RTB), DSP,SSP, DMP & DCT -  A complete digital ...
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT - A complete digital ...
 

Similaire à Rtb

"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли..."Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...Ontico
 
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Ontico
 
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...Игорь Мызгин
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Ontico
 
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)Ontico
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самSergey Xek
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, BadooOntico
 
Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)Ontico
 
Петрова Ксения - Data mining на практике - dmlabs.org
Петрова Ксения - Data mining на практике - dmlabs.orgПетрова Ксения - Data mining на практике - dmlabs.org
Петрова Ксения - Data mining на практике - dmlabs.orgWG_ Events
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015Alexandr Petrov
 
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в суткиРоман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в суткиNaZapad
 
Исерсон Илья. Золотая маска: как увеличить продажи, когда топ уже ваш
Исерсон Илья. Золотая маска: как увеличить продажи, когда топ уже вашИсерсон Илья. Золотая маска: как увеличить продажи, когда топ уже ваш
Исерсон Илья. Золотая маска: как увеличить продажи, когда топ уже вашДмитрий Шахов
 
Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...
Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...
Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...WG_ Events
 
как математика позволяет зарабатывать деньги
как математика позволяет зарабатывать деньгикак математика позволяет зарабатывать деньги
как математика позволяет зарабатывать деньгиYandex
 
Лямбда-архитектура с обратной связью
Лямбда-архитектура с обратной связьюЛямбда-архитектура с обратной связью
Лямбда-архитектура с обратной связьюAlexander Makeev
 
Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...
Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...
Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...Daniil Zabolotny
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниАлександр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниGlobal Innovation Labs
 
Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.
Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.
Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.Molinos
 

Similaire à Rtb (20)

"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли..."Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
 
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
Опыт совместной работы хостера (Webzilla) и клиента (CityADS) над достижением...
 
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
 
Real time bidding
Real time biddingReal time bidding
Real time bidding
 
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
Аналитическая инфраструктура оптимизации рекламной сети (Александр Зайцев)
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
 
Cергей Aверин, Badoo
Cергей Aверин, BadooCергей Aверин, Badoo
Cергей Aверин, Badoo
 
Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)
 
Петрова Ксения - Data mining на практике - dmlabs.org
Петрова Ксения - Data mining на практике - dmlabs.orgПетрова Ксения - Data mining на практике - dmlabs.org
Петрова Ксения - Data mining на практике - dmlabs.org
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в суткиРоман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
 
Исерсон Илья. Золотая маска: как увеличить продажи, когда топ уже ваш
Исерсон Илья. Золотая маска: как увеличить продажи, когда топ уже вашИсерсон Илья. Золотая маска: как увеличить продажи, когда топ уже ваш
Исерсон Илья. Золотая маска: как увеличить продажи, когда топ уже ваш
 
Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...
Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...
Левин Михаил - Как заработать миллионы на своих данных и машинном обучении. Y...
 
как математика позволяет зарабатывать деньги
как математика позволяет зарабатывать деньгикак математика позволяет зарабатывать деньги
как математика позволяет зарабатывать деньги
 
Лямбда-архитектура с обратной связью
Лямбда-архитектура с обратной связьюЛямбда-архитектура с обратной связью
Лямбда-архитектура с обратной связью
 
Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...
Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...
Ретаргетинг и суперклик на тизерном трафике. Примеры и анализ размещений за а...
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камниАлександр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
Александр Сербул. 1С Битрикс. Массовый скоринг в CRM — секреты и подводные камни
 
Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.
Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.
Как перестать бояться и начать любить медийку. Алгоритмический маркетинг.
 

Rtb

Notes de l'éditeur

  1. - Всемдоброеутро! Яприятноудивлен, чтовстольраннийчассобралосьтакмноголюдей. Значиттемадостаточноинтересная.(Всемдоброеутрохорошо, чтолюдейтакнемного. Значитвывсенастольколюбите RTB, чтоготовыпожертвоватьутреннимсном)(пауза)Вообще, язанимаюсьвсякимиштукамиоколо RTB ужепочти 4ре года, имогурассказатьоченьмногоинтересного. Вообщемойдоклад, скореепростыкбизнесаитехнологии, прото, какбизнесдиктуеттехнологическиеусловиявданнойобласти. Слайдовяприготовилмного, такчтонеуверен, чтопровсеуспеюрассказатьподробно. Хочуспроситьувас: подминимитеруките, комускореепробизнесаспекты RTB? Акомупротехнологии?И еще последний момент. В любой момент вы можете прервать меня и задавать вопросы. Возможно, мы я тогда про что-то не успею рассказать, но это лучше недопонимания. На простые вопросы я буду отвечать сразу.Однако, если вопрос сложный, я его с вашего позвления пропущу, и отвечу после в частном порядке
  2. RTB. Расшифровываетсякак Real time bidding, илиаукционреальноговремени. Этонекотораяпопыткаперенестибиржевыемоделивмиронлайнрекламы. Насамомделе, доконцанеясночтоизэтоговышло. Рынокпоявилсягде-тов 2009-ом годуидосихпорстремительноэволюционирует
  3. Итак, давайтенемногопроисторию. Воткакбылаустроенажизньдо RTB. Площадка, продаваярекламноеместоставилакодкакой-нибудьрекламнойсети. Сзаходомпользователя, вызывалсяэтоткодирекламнаясетьискалаподходящееобъявлениевсвоейбазе. Еслиподходящийбаннернашелся, тосетьвыдавала HTML-коддляотображениябаннера. Еслиничегоненашлось, сетьвыдавалакодследующейрекламнойсетивцепочке.Впрочем, этонето, чтобыистория. Простораньшеэтобылединственныйвариант
  4. Итак, проблемыстарогоподхода: - Нуво-первых, то, какоеобъявлениебудетпоказановрезультате, сильнозависитотпорядкарекламныхсетейвцепочке. Здесьнетчестнойконкуреции - Во-вторых, длиннаяцепочкарекламныхсетейтормозитзагрузкусайта - Ряддругихпроблем
  5. Чтобырешитьэтупроблему, появилось RTB. Накаждыйрекламныйпоказпроводитсяаукцион. Аукционпроводяттакназываемые SSP, sell-side platforms, которыепредставляютинтересыплощадок. Ваукционахучаствуют DSP, demand side platforms, которыепредставляютинтересырекламодателей.Аукционпроводитьсячерез HTTP. SSP вместес HTTP запросомприсылаетмногоразнойинформации: IP адреспользователя, егобраузер, urlразмещенияит.д.Вответ DSP отвечаетставкойи HTML-кодом, которыйбудетпоказанпользователювслучаевыигрыша
  6. RTB - этоаукционвторойцены. Все сначала удивляются и расстраиваются. Но на самом деле, так выгоднее
  7. Итак, ещераз, повторяем!Ещебывают DMP, этоплатформы, которыеводихместахсобираютданныеопользователе. "Данные" этообычнопол, возраститакдалее. Этиданные DMP продают DSP, чтобытемоглипоказыватьболеетаргетированнуюрекламуПро DMP мысегодняговоритьнебудем. Во-первых, этонетакинтересно. А, во-вторых, яперсональносчитаю, чтоэтодовольнодурацкийибесполезныйбизнес
  8. Подробнеепо SSP. Во-первых, какяужеисказал, SSP обслуживаетинтересыплощадок. Во-вторых, SSP штукахотьисложная, нопроще DSP. Ещеонивсеодинаковыевсмыслебизнесмоделе.Явсеклонюктому, что SSP этонеоченьинтересно, имыпронихсегодняпочтинебудемговорить
  9. Абудемговоритьвосновномпро DSP. Какяужеиговорил, DSP обслуживаетрекламодаталей. АсрекламщикамивсегдавсесложноТехнологическиэтосложнееиинтереснее. Тутестьнесколькоинтересныхбизнесмоделей, онекоторыхизнихярасскажупоподробнее
  10. Самаяраспостраненнаямодель - retargeting.- (!!!!!) КСТАТИ, НАВЕРНОЕ, У МНОГИХ ТУТ СТОИТ AD-BLOCK ИЛИ ЧТО-ТО ВРОДЕ ЭТОГО. ПОДНИМИТЕ РУКУ, У КОГО ОН ЕСТЬ?- Остальные, наверное, знаютчтотакоеретаргетинг. Этокогдавыодинраззашливинтернет-магазин, апослецелыймесяцвасмучаетрекламаэтогожемагазина.- Каксказалодинмойзнакомый: невозможнокупитьженеподарокнановыйгодвинтернете, чтобыонаобэтомнеузнала. Хотя, думаю, этонесамаянеловкаяситцацяикотораяможетвсвязисретаргетингомвозникнуть- Итого, идеяретаргетингапонятно. Надопонимать, чтоделаетсяэтонеизвредности. Статистика - упрямаявещь. Вероятностьконверсииприусловиипоказаретаргетированногобаннерасущественновыше
  11. Ещеестьаудиторныйтаргетинг. Есливкратце, этопоказобъявленийзаинтересованнойаудитории. Останавливатьсянаэтомнебудем. По-моемумнению, этонеоченьрабочаямодель
  12. Ещеважнаяштукапо DSP. Некоторыеигрокиработаютсрекламодателямипомоделиоплатызакликилизаконверсию. Приэтомрасчетыс SSP происходятвсегдазапоказы. Тутпоявляетсякучаинтересныхтехническихмоментов, связанныхсточнойоценкивероятностикликаиликонверсиидлякаждого RTB запроса, чтобынеработатьвминус. Всяэтаисторияназываетсяарбитраж. Пронееподробнееярасскажувконце, еслиуспею
  13. - Ещеважнаяштуканазывается cookie sync. Этонасамомделеоченьнудноинеинтересно. Новажносточкизренияпониманиятехнологий. - Обратитевниманиенакартинкунаслайде. Еслиничегонепонятно, тотакидолжнобыть. Какяисказал, cookie sync эторутина, нопостарайтесьпотерпетьпаруминутиявсеобъясню
  14. Итак, зачемвсеэтонужно. До RTB дляидентификациипользователейихраненияонихинформации ()
  15. Вотещеразпроблема. Когда SSP размещаеткоднасайте, онооперируеткукамивсвоемдомене, ssp.com. Приэтому DSP кукивсвоемдоменеикакая-тосвояинформацияопользователе.Если, например, DSP показалокакое-тообъявление 100 разодномупользователспомощьюдругого SSP ипользовательнанемнекликал, тонаверное, показыватьегодальшебесполезно. Нокакузнать, чтонатекущем SSP пришелтотсамыйпользователь.
  16. Итак, решение. Когда SSP показыватобъявление, неважнооткакого DSP, оноставитвконцемногомаленьких, прозрачныхпикселей (такназываемыезиро-пиксели). Каждыйпиксельсоответсвуетодной DSP.Этипикселивызывают URL насайте DSP, передаваявпараметрахзапросасвойидентификаторпользователя. А DSP всвоюочередь, идетифицируетпользовтелякукойвсвоемдоменеиможетвнутрисебязапомнитьсоответсвие.Когдавследующийразот SSP придетзапрос, DSP сможетвтаблиценайтисвой, внутреннийидентификаторпользователяииспользоватьэтуинформацию
  17. Итого, длясоответсвияпользователейнужнохранитьтакуютаблицуиздвухколонок, коотораяназывается match tableНадопонимать, чтовмиререкламыпользовательэтонетожесамое, чтопользовательсайта. Людиимеютсвойствотеретькуки, менятьбраузерыит.д. Такчтодлясредней DSP таблицапользователейможетбытьот 10 до 100 млн.Ещевпрошломслайдебылапредставленачутьупрощеннаякартинамира. Всеможетбытьнесколькосложнее. Такчтовзависимостиотреализации cookie sync table могутхранитькак SSP, таки DSP. Лучшебы, чтобывсегдахранили SSP, ноэтонетак
  18. Ещепарумоментовпро cookie sync. Взависимостиоттого, гдестоитпиксельнастороне SSP или DSP, различаютдвавида
  19. Чтотутещеможносказать? Ну, например, еслираньшетакуюинформацию, какчастотупоказовбаннера, илипоследнийпоказбаннерахраниливкуках, топри RTB этовозможностьисчезла. Механизм cookie sync имеетограничения, такчтотакиевещиприходитсяхранитьв БД настороне DSP. Обычно, используютсявсякиеNoSQLрешения.
  20. ----- Meeting Notes (4/21/13 23:08) -----И так, переходим к самому интересному. К обзору технологий, которые позволяют работать всей этой экосистеме.Если приглядется, на картинке изображен двигатель машины марки Лада, которая отличается качеством.На самом деле, в мире RTB все так же. Нет устоявшихся технологий и компании не могут много вкладывать в IT. Зато получается очень весело и интересно!
  21. Итак, перечислимосновныетехнологическиепроблемы
  22. HTTP нагрузкавцифрах. Каквидно, нетакмало. Чтожеснейделать?
  23. Ну, первыйпункт, этонебоятся. ПОДНИМИТЕ РУКИ ТЕ, КТО ПИСАЛ СИСТЕМЫ ОБРАБАТЫВАЮЩИЕ более 1000 запросоввсекунду?Вотвидете, этонетакстрашно. Современноежелезоифреймворкидовольномощные.Еще, конечно, надописатьна Java или C++. Ну, есливзятьэкзотикуerlangтожеможетбытьподойдет. Главное, избегать PHP и Python. Наверное, наэтихтехнологияхможночто-тонаписать, ноуспешныеисториимненеизвестны. Нуиобязательносмотритевсторону event-driven программирования, lock free синхронизацииивообщевсторонувсяхновыхмногопоточныхштук
  24. Несколькопримеровтого, чтостоитиспользоватьдля Java иС++. В C++ яразбираюсьнеочень, такчтотамможетбытьещечто-нибудьесть.
  25. Золотое правило рекламы. Все храним только в оперативной памяти
  26. Это относится ко всем рекламным кампаниям, таргетингам, настройкам. Никаких SQL-запросов.На диск можно писать только логи
  27. Так, с HTTP разобрались. Теперь про хранение данных о пользователях.
  28. Во-первых скорость и еще раз скорость. Время чтения не должно превышать 10 милисекунд. Ну или такого порядка. Помним, что на аукционный запрос надо ответитьза 100 миллисекундИз скорости сдедуют, что хранилище должно читать данные из памяти, диск не должен быть задействован. Да, на диск будет происходить запись, потому что надежностьнам все-таки не повредит. Но чтение – только оперативная памятьЕще важна цена. Если это платное решение, и хранение пользователя стоит 1 доллар за 1000 пользователей, то при 100 миллионах записей месячная цена будетоколо 100 000 долларов. Такие затраты посильны для банков, но не для DSPНу еще неплохо бы чтобы эта штука легко масштабировалась. Бизнес DSP штука нестабильная с непредсказуемым ростом
  29. А теперь еще более важная штука – что требовать не надо. На самом деле, в таких вещах всегда важно смягчать требования там, где это возможно. Это может упростить жизнь в несколько раз.Как ни странно слышать это про базы данных, но в данном случае нам не нужна надежность. База может иногда терять данные, не отвечать на запросы и т.д. Если одному из миллиона пользователеймы покажем не тот баннер или же не покажем ничего – не страшно. Главное, чтобы ошибки не были системными и были распределенными.
  30. Вот список вариантов для хранения данных о пользователе, которые существуют на рынке. Кстати, про MySQL/PostgreSQL. Я не знаю, можно ли их эффективно использовать как key value storage для таблиц с 100 миллионами строк. Если кто-то расскажет, буду благодарен.
  31. И так, самое интересное. Это оффлайновая обработка данных. Обычно, на каждое действие (показ, аукцион, клик) пишется строчка в лог, а потом люди хотят по этим логам получать какую-то аналитику.Например, статистические отчеты.ЭТА САМАЯ ИНТЕРЕСНАЯ ЧАСТЬ ДОКЛАДА. ТОТ, КТО ЕЩЕ НЕ ПОТЕРЯЛ ИНТЕРЕСА, УЗНАЕТ, КАК СОКРАТИТЬ ОБЪЕМ ХРАНИМЫХ ДАННЫХ в 10 РАЗ НЕ ПОТЕРЯВ ПРАКТИЧЕСКИ НИЧЕГО
  32. И так, какие с логами есть проблемы. Например, из много. В зависимости от размера DSP от 10 до 100 гигабайт в день.Во-вторых, люди хотят быстро получать ответы на сложные вопросы. Например ????
  33. И так, про философию данных в RTB.Посмотрите на скришоты, всем видно? Это типичные разговоры про данные с конечными пользователями. (Зачитать, если не видно??)
  34. Итак, выводы из предыдущих скриншотов. Вывода два и они очень важны:
  35. Как пожертвовать точностью и как-то от этого выиграть? Сейчас я приведу пример довольно простой техники.Практическая задача: у нас есть логи показов баннеров. Будем считать количество показов в городе Москва за 14 января сего года. Для удобства, представим, что все у нас хранится в SQL таблице. Тогда запрос будет выглядеть примерно так.Помним о средних размерах DSP, это может быть 30 миллионов показов в сутки. Что же делать?
  36. Ответ – sampling. Около каждой строчки подкинем 10гранный кубик. Если выпала единичка, оставляем строчку. Иначе выкидываем.Итого мы выкиним 9 из 10 строчек. А в оставшихся строчках давайте домножим количество показов на 10.И выполним тот же запрос. Выглядит радикально?
  37. На самом деле нет! Пусть в ответ на запрос (помним, мы считаем количество показов в москве от 14 января) мы получили число N. Тогда статистическая ошибка будет ….Ну например, если у нас был в Москве один миллион показов, то ошибка будет около половины процента, т.е. совсем не много
  38. Как видно, чем меньше ответ, тем больше значение ошибки. Однако, если мы вспомним наш изначальный кейс, когда цифра по показам нужна менеджеру по продажам, то и 10% ошибка не страшна.Сильно большая ошибка возникает, когда ответ на вопрос менее 3000. Но в этом случае, ответ настолько мало отличается от 0, что и ошибка в общем-то не важна
  39. Ладно,Sampling это просто, есть вещи куда интереснее. Например, давайте добавим колонку идентификатор пользователя в наш лог. И попытаемся посчитать количество уникальных пользователей за один день.Опять же, для простоты будем мыслить в терминах SQL. Посмотрите на запрос, это еще мощнее чем предыдущий. sum относительно простая операция по сравнению с count distinct
  40. Что же делать? Есть куча вероятностных алгоритмов для подсчета уникальных пользователей с ошибкой. К сожаление, в рамках доклада нет времени рассказывать о них подробно, но они довольно красивые.Советую погуглить и почитать.
  41. Так, давайте резюмируем и поговорим про конкретные технологии, а не про алгоритмы.Во-первых, в большинстве случаев используется несколько технологий, для разных задач.В целом популярен Hadoop. Он стабилен, относительно других NoSQLрешений.Еще удобен Storm. Это такой потоковый MapReduce, которые местами заменяет хадупА еще спасают, колоночные базы данных.У НАС ЕЩЕ ЕСТЬ ВРЕМЯ? Тогда расскажу про них подробнее.
  42. Основная идея. Если в традиционных БД данные хранятся по строкам, то в колоночных БД – по столбцам. Один столбец – один файл.
  43. Важно.Hbaseи Cassandra не колоночные БД, хотя их так иногда называют. Так вышло, что здесь вышла путаница в терминологии. Но важно понимать, что Cassandra и Hbaseхранят данные по строчкам.Давайте посмотрим все тот же любимый пример в виде SQL запроса и будем считать количество показов в москве за определенный деньСила колоночных БД в том, что будут прочитаны только два файла с данными по нужным колонкам. При большой таблице (а в реальной жизни в логах может быть около 50 полей),будут прочитаны всего 4% дневных данных
  44. Итак, резюмируем про колоночные БД.