Как 100 000 раз в секунду выбирать правильный рекламный...

56
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри Павел Бейзман Data-Centric Alliance Архитектор высоконагруженных систем

Upload: ontico

Post on 06-Jan-2017

139 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри

Павел БейзманData-Centric AllianceАрхитектор высоконагруженных систем

Page 2: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

Exebid.DCA DSP

Page 3: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

Exebid.DCA DSP

Рекламодатели

Page 4: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

Биржа

Биржа

Биржа

Exebid.DCA DSP

Рекламодатели

Page 5: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

Биржа

Биржа

Биржа

Exebid.DCA DSP

Рекламодатели

Data managementplatform

Page 6: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

Predictions

Биржа

Биржа

Биржа

Exebid.DCA DSP

Рекламодатели

Data managementplatform

Page 7: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

• 100 000 запросов в секунду

Page 8: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

• 100 000 запросов в секунду• 10 000 рекламных материалов

Page 9: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

• 100 000 запросов в секунду• 10 000 рекламных материалов• Рост неравномерный

Page 10: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Что такое programmatic-платформа?

• 100 000 запросов в секунду• 10 000 рекламных материалов• Рост неравномерный• 50 мc на ответ

Page 11: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинги

Page 12: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинги: наивная реализация

● Проверяем по очереди каждую кампанию и каждый таргетинг

Page 13: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинги: наивная реализация

● Проверяем по очереди каждую кампанию и каждый таргетинг

● Линейная зависимость от количества кампаний

Page 14: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинги: наивная реализация

● Проверяем по очереди каждую кампанию и каждый таргетинг

● Линейная зависимость от количества кампаний● Деградация производительности

Page 15: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинги: оптимизированная реализация

● Множество кампаний - битовая маска

Page 16: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинги: оптимизированная реализация

● Множество кампаний - битовая маска

Пример:

Page 17: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел
Page 18: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Пример: белый список доменов

Page 19: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Пример: белый список доменов

Page 20: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Пример: белый список доменов

Page 21: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Пример: белый список доменов

Page 22: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Пример: белый список доменов

Result:

Page 23: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинг на подстроку в URL

● Хеш-таблицы не подойдут

Page 24: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Таргетинг на подстроку в URL

● Хеш-таблицы не подойдут● Алгоритм Ахо-Корасик

Page 25: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Алгоритм Ахо-Корасик

● Дано: произвольный набор строк

Page 26: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Алгоритм Ахо-Корасик

● Дано: произвольный набор строк● Требуется: быстро находить в текстах все вхождения строк

из набора

Page 27: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

catzcatphonephoto

Page 28: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

catzcatphonephoto

Page 29: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Подсчет вероятности клика● Для каждого баннера делаем запрос к предиктору

Page 30: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Подсчет вероятности клика● Для каждого баннера делаем запрос к предиктору

Page 31: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Три группы параметров:● Параметры сайта или приложения

Запросы к предиктору

Page 32: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Три группы параметров:● Параметры сайта или приложения● Параметры пользователя

Запросы к предиктору

Page 33: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Три группы параметров:● Параметры сайта или приложения● Параметры пользователя● Параметры рекламного материала

Запросы к предиктору

Page 34: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

● Vowpal Wabbit: текстовый формат

Запросы к предиктору

|c windows |d 269557783 |e windows-7 |f between |g p-33662 |h s-34629 |l 2017370-1502020 |o 14 |a 373470 |b ethernet |i 0 |j null |k desktop |m 2017370-1485997 |n 4 |p 0 |q lc:0.0092 li:1.13 lm:0.07 |r 1671 |s 2484 |t 8408 |u 12491 |v 300x250

Page 35: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

● Параметры пользователя и сайта генерим один раз

Запросы к предиктору

Page 36: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

● Параметры пользователя и сайта генерим один раз● Оптимизация перевода из числа в строку

Запросы к предиктору

Page 37: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

● Параметры пользователя и сайта генерим один раз● Оптимизация перевода из числа в строку

Запросы к предиктору

Page 38: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Смотрим на данные

Остальные 0 - 10000

Page 39: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Конвертация числа в строку

ns

Page 40: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Конвертация числа в строку

ns

Page 41: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Запросы к предиктору: обработка ответов

void process_responses() { while (!stopped()) { wait_for_data(); process_data(); }}

Page 42: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Запросы к предиктору: обработка ответов

void process_responses() { while (!stopped()) { sleep(milliseconds(1)); process_data(); }}

Page 43: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Перегрузка

Page 44: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Считаем загруженность потокаvoid process_responses() { while (!stopped()) { Time before_sleep = now(); sleep(milliseconds(1)); totalSleepTime_ += now() - before_sleep; process_data(); }}

Page 45: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Считаем загруженность потокаvoid process_responses() { while (!stopped()) { Time before_sleep = now(); sleep(milliseconds(1)); totalSleepTime_ += now() - before_sleep; process_data(); }}

Page 46: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Загруженность потоков

Predictor

Router

Aerospike

Page 47: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Загруженность потока

● Выше 95% - опасность

Page 48: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Загруженность потока

● Выше 95% - опасность● Режем часть трафика

Page 49: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Загруженность потока

● Выше 95% - опасность● Режем часть трафика● Гарантированно отвечаем за 50 мс

Page 50: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Выводы

● Полезно знать алгоритмы

Page 51: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Выводы

● Полезно знать алгоритмы ( http://e-maxx.ru/ )

Page 52: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Выводы

● Полезно знать алгоритмы ( http://e-maxx.ru/ )● Используйте особенности своих данных

Page 53: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Выводы

● Полезно знать алгоритмы ( http://e-maxx.ru/ )● Используйте особенности своих данных● Latency vs throughput: найдите баланс

Page 54: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Выводы

● Полезно знать алгоритмы ( http://e-maxx.ru/ )● Используйте особенности своих данных● Latency vs throughput: найдите баланс● Мониторинг внутренностей системы полезен

Page 55: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Выводы

● Полезно знать алгоритмы ( http://e-maxx.ru/ )● Используйте особенности своих данных● Latency vs throughput: найдите баланс● Мониторинг внутренностей системы полезен● Не допускайте перегрузок

Page 56: Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmatic-платформа Exebid.DCA изнутри / Павел

Спасибо!

Павел Бейзман

Data-Centric Alliance

[email protected]

Skype: pavel.b.beyzman

Вопросы?