December 10th, 2010

Ротация объявлений

Допустим есть группа объявлений.

Сортируются по доходности (ставка*ctr)
Получаем допустим 20 объявлений, а мест всего - 5.
Нужен не за мудреный алгоритм который бы показывал эти 20 объявлений в рамках 5 мест. Т.е. на первом бы месте показывал объявление в n раз чаще, чем второе, а второе в n раз чаще чем третье. т.е. у объявления с рейтингом 3 было бы в 3 раза больше шансов попасть на первое место чем у объявления с рейтингом 4. Ну думаю суть ясна.

UPD: Кажется придумал

20 объявлений поделить на 5 зон

т.е. delta_zone=верхний рейтинг-нижний рейтинг / 5


получается на первом месте показываем объявление -  rand(верхний-рейтинг-delta-zone,верхний-
рейтинг)
на втором месте показываем объявление -  rand(верхний-рейтинг-delta-zone*2,верхний-рейтинг-delta-zone*1)
 
и так далее.
что скажете?

UPD2:
Правда таким способом объявление из зоны например 2 никогда не попадет в зону 1, но это в принципе приемлемо как мне кажется. Предвосхищая вопросы о новых объявлениях не имеющих статистики: по дефолту ставим ctr=1 при первом же клике ads получает реальный ctr.