Регламент подключения

RTB-хост предоставляет следующие функции:

  • Аукцион и выдачу рекламы;

  • Метод для ассоциации информации с браузером пользователя.

Аукцион и выдача рекламы

Javascript-код на сайте, размещающем рекламу RTB-хоста, делает http/https get-запрос в RTB-хост, передавая id сайта и минимальную цену, за которую он готов показать объявление (MinCPM).

RTB-хост формирует и отправляет post-запрос в DSP по http-протоколу в формате JSON в соответствии со спецификацией. Запрос отправляется на url, согласованный с DSP.

RTB-хост ожидает ответа в течение 300 миллисекунд. Если DSP не прислал ответ в течение этого времени, считается, что DSP не ответил. DSP должен ответить в формате JSON в соответствии со спецификацией.

RTB-хост через 300 миллисекунд или после получения ответов от всех DSP (если это случилось раньше) начинает аукцион. По итогам аукциона выигрывает ответ одного DSP или не выигрывает ни один ответ. В аукционе участвуют ответы, цены которых превышают или равны MinCPM. Ответы сортируются по убыванию цены, объявленной DSP. После этого выбирается первый ответ и цена понижается до максимума из:

  • MinCPM

  • цены, объявленной вторым DSP + шаг аукциона.

Объявленная цена, полученная цена, факт выигрыша, проигрыша и неответа всех запрошенных DSP и время (с точностью до дня) аукциона логируются RTB-хостом.

RTB-хост возвращает в ответ на запрос Javascript-строку, полученную в DSP-ответе в поле adm первого элемента массива bid первого элемента массива bidset (bidset[0].bid[0].adm).

В случае отсутствия выигрыша возвращается пустой ответ.

Пример запроса от RTB к DSP

Пример ответа DSP к RTB

Где Units – тип цены.

В поле price используется строго целочисленное представление фишек.

Как интерпретируются передаваемые фишки в поле price в реальные цены, используемые в торгах, в зависимости от выбранного типа цены:

Значение units

Соотношение

Пример

0

по умолчанию

1 рубль CPM = 100 фишек

200 рублей за 1000 показов должны быть переданы как 20 000 фишек.

В аукционе будет использоваться ставка 0,2 руб. за показ.

1

1 рубль CPM = 1 фишке

200 рублей за 1000 показов должны быть представлены как 200 фишек.

В аукционе будет использоваться ставка 0,2 руб. за показ.

2

1 рубль CPM = 1000 фишек

200 рублей за 1000 показов должны быть переданы как 200 000 фишек.

В аукционе будет использоваться ставка 0,2 руб. за показ.

Метод для ассоциации информации с браузером пользователя

RTB-хост предоставляет http-/https-метод, с помощью которого можно «привязать» произвольную строку к браузеру пользователя и получать эту строку впоследствии в запросе к DSP.

RTB-хост начнёт передавать привязанные данные в следующем запросе после запроса, в котором эти данные были привязаны (с точностью до корректности работы браузера пользователя).

Данные привязываются с помощью их сохранения в cookies браузера пользователя, выполняющего запрос к RTB-хосту.

RTB-хост гарантирует передачу данных пользователю по стандарту http-протокола.

RTB-хост гарантирует передачу данных в DSP при их получении от пользователя.

RTB-хост не гарантирует сохранность и неизменность данных на стороне пользователя.

Спецификация метода

Для пользователя у нас имеется следующая информация:

  • IP-address — запишем его как ip1.ip2.ip3.ip4, и введём синтетическую сущность: short_ip = ip1.ip2.ip3 (учитываем только IPv4);

  • Referer — значение соответствующего http-заголовка, который получит RTB-хост;

  • UserAgent — значение соответствующего http-заголовка;

  • DSP хочет привязать к пользователю данные: data — 27 символов;

  • DSP может пожелать перенаправить пользователя после данного вызова на какой-либо URL —- location;

  • Существует заранее оговорённый ключ подписи — key;

  • DSP должен сформировать подпись: sign=crc32(short_ip.Referer.UserAgent.location.data.key), все части соединены без разделителей;

  • Tag — заранее оговорённое ключевое слово, идентифицирующее данный DSP в RTB-хосте.

Для привязывания данных, необходимо вызвать URL следующего вида:

В ответ на такой запрос пользователь получит один из следующих ответов:

  • в случае отсуствия location: 200 ОК

  • в случае наличия location: 302 redirect

  • в случае неправильной подписи: 404 not found