TG Telegram Group & Channel
ML Advertising | United States America (US)
Create: Update:

Floor Price Optimization in RTB Auctions

Хочу сделать разбор статьи по оптимизации floor прайса в RTB аукционах в Yahoo Ad Exchange.

1️⃣ Какая мотивация?
Floor price (или еще Reserved price) - минимальная цена, ниже которой ставки не принимаются. Это также минимальная цена, которую выплачивает биддер в случае победы. Выставляется паблишером и характеризует в какой-то степени ценность продаваемого инвентаря.

В аукционе первой цены выигравшая DSP платит свою же ставку, отчего DSP стараются приблизить ее как можно ближе к флору. В результате получается распределение ставок с длинным хвостом вправо. Его удобно приближать распределениям Weibull'а.

При изменении флора мы с одной стороны влияем на выручку (чем выше флор, тем выше средняя выручка с аукциона). Но с другой стороны, если сильно задрать флор, то это поднимет порог на вход в аукцион, и меньше DSP будут готовы биддить, что наоборот понизит выручку. Поэтому ставится задача найти такое значение минимальной цены, которое обеспечить максимальный revenue.

2️⃣ Что по статье?
Задача оптимизации ставится следующим образом:

Целевая функция 


eRev(floor | X) = rev(floor | X) + ADXRev * proba (bids < floor | X)


- т.е. берется выручка как функция от флора при условии фичей (девайс, user-agent, dsp)
- если на бид реквест все биды ниже флора, то Yahoo отправляют реквесты на Google Ad Exchange и через него продают инвентарь

постановка задачи: найти такой флор, чтобы максимзировать суммарную выручку floor * = argmax eRev(floor | X)
- rev(floor | X) представляется в виде интеграла
- rev(floor | X) = sum(k_i * sum(bid_i * mult(F(bid_i | floor, X))). Здесь суммарную выручку считают как интеграл от бида ДСП  умноженного на функциую распределения бида ДСП при условии флора. k_i = {0, 1} и нужен для того, если ДСП бидить или не бидит. Аналогичный интеграл приводится и для Google ADX

далее оценивают распределение F(bid_i | floor, X)  из исторических данных как распределение Weibull’а с параметрами scale, shape .
- чтобы нащупать кривую F рандомизируют флоры и логируют значения бидов. При этом отсекают 95% квантиль, чтобы убрать выбросы. Данные берут за 7 дней
- далее оценивают параметры  scale, shape для F. Здесь просто фитят это распределение на гистограмму, полученную с прошлого шага
- далее решают задачу максимизации rev(floor | X) , после того как узнали параметры распределения F. При этом считают флор отдельно для связки (placement, site, publisher, DSP)
- после этого пушат флор в SSP

Floor Price Optimization in RTB Auctions

Хочу сделать разбор статьи по оптимизации floor прайса в RTB аукционах в Yahoo Ad Exchange.

1️⃣ Какая мотивация?
Floor price (или еще Reserved price) - минимальная цена, ниже которой ставки не принимаются. Это также минимальная цена, которую выплачивает биддер в случае победы. Выставляется паблишером и характеризует в какой-то степени ценность продаваемого инвентаря.

В аукционе первой цены выигравшая DSP платит свою же ставку, отчего DSP стараются приблизить ее как можно ближе к флору. В результате получается распределение ставок с длинным хвостом вправо. Его удобно приближать распределениям Weibull'а.

При изменении флора мы с одной стороны влияем на выручку (чем выше флор, тем выше средняя выручка с аукциона). Но с другой стороны, если сильно задрать флор, то это поднимет порог на вход в аукцион, и меньше DSP будут готовы биддить, что наоборот понизит выручку. Поэтому ставится задача найти такое значение минимальной цены, которое обеспечить максимальный revenue.

2️⃣ Что по статье?
Задача оптимизации ставится следующим образом:

Целевая функция 

eRev(floor | X) = rev(floor | X) + ADXRev * proba (bids < floor | X)


- т.е. берется выручка как функция от флора при условии фичей (девайс, user-agent, dsp)
- если на бид реквест все биды ниже флора, то Yahoo отправляют реквесты на Google Ad Exchange и через него продают инвентарь

постановка задачи: найти такой флор, чтобы максимзировать суммарную выручку floor * = argmax eRev(floor | X)
- rev(floor | X) представляется в виде интеграла
- rev(floor | X) = sum(k_i * sum(bid_i * mult(F(bid_i | floor, X))). Здесь суммарную выручку считают как интеграл от бида ДСП  умноженного на функциую распределения бида ДСП при условии флора. k_i = {0, 1} и нужен для того, если ДСП бидить или не бидит. Аналогичный интеграл приводится и для Google ADX

далее оценивают распределение F(bid_i | floor, X)  из исторических данных как распределение Weibull’а с параметрами scale, shape .
- чтобы нащупать кривую F рандомизируют флоры и логируют значения бидов. При этом отсекают 95% квантиль, чтобы убрать выбросы. Данные берут за 7 дней
- далее оценивают параметры  scale, shape для F. Здесь просто фитят это распределение на гистограмму, полученную с прошлого шага
- далее решают задачу максимизации rev(floor | X) , после того как узнали параметры распределения F. При этом считают флор отдельно для связки (placement, site, publisher, DSP)
- после этого пушат флор в SSP


>>Click here to continue<<

ML Advertising






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)