Сглаживание алгоритма для равномерного показа рекламы за месяц - PullRequest
6 голосов
/ 10 августа 2011

Скажем, у меня есть 10 объявлений, которые отображаются на веб-сайте.

Если объявление №1 будет отображаться на 100 тыс. В данном месяце, как бы вы равномерно / плавно отображали эти объявления в течение дня?

Я должен учитывать всплески трафика, поэтому я не могу просто разделить 30 дней на 100K или 3K показов в день.

Существует ли формула для этого типа проблемной области?

Ответы [ 3 ]

9 голосов
/ 10 августа 2011

Ну, во-первых, вы не можете знать, сколько посещений будет посещать ваш сайт, поэтому вы не можете гарантировать, что каждое объявление будет показано точно X раз. Например, если объявление № 1 должно отображаться 100 000 раз, а объявление № 2 должно отображаться 200 000 раз, но вы получаете только 150 000 посещений, то, возможно, вы ничего не сможете удовлетворить. А с другой стороны, если вы получаете 600 тыс. Посещений, то при каждом втором посещении не должно быть рекламы. Но у вас нет возможности предсказать это заранее.

Следовательно, я бы посоветовал то же самое, что и tskuzzy - подбирать объявления наугад, но корректировать их вероятности так, чтобы они приближались к нужному количеству просмотров. И, конечно, отследите, сколько раз было показано каждое объявление, и снимите его с ротации, как только будет достигнут лимит.

Давайте посмотрим на пример. Предположим, у вас есть два объявления. Объявление № 1 по-прежнему нужно показывать еще 7 дней, а количество просмотров должно увеличиться на 70 000. Объявление № 2 нужно показывать еще 10 дней, и ему нужно еще 20 тысяч просмотров. Таким образом, объявление № 1 должно показываться в среднем 10 000 раз в день, а объявление № 2 - 2 000 раз в день. Таким образом, вероятность появления объявления № 1 должна составлять 10 / (10 + 2) = 5/6, а вероятность объявления № 2 должна составлять 2 / (10 + 2) = 1/6. Следовательно, для каждых 12 000 просмотров вы получите в среднем 10 000 просмотров объявления № 1 и 2 000 просмотров объявления № 2. Что вам нужно.

Пересчитывайте эти вероятности в начале каждого дня и одновременно добавляйте только новые объявления. Если вы добавите новую рекламу в середине дня, это усложнит ситуацию. Однако это будет работать так же хорошо, если вы рассчитываете время в секундах, а не в днях, так что вы можете сделать это тоже для большей точности. Просто следите за производительностью, если вы все пересчитываете так часто.

2 голосов
/ 10 августа 2011

Рассчитайте относительную долю рекламы и отображайте ее с такой вероятностью в любое время суток.

Скажем, у вас есть 3 объявления:

Ad 1 - 1000 impressions
Ad 2 - 5000 impressions
Ad 3 - 4000 impressions

Вы будете показывать объявление 1 10% времени, объявление 2 50% времени и объявление 3 40% времени. Каждый раз, когда показывается объявление, обновляйте соответственно количество оставшихся показов и вероятностей.

0 голосов
/ 10 августа 2011

Попробуйте поискать строки вроде "ad swapping" +algorithm или "ad round-robin". Google не вернул ничего хорошего для первого поиска; попробуйте duckduckgo.com. Vilx- дал отличный ответ. Я просто добавлю, чего не хватает:

Спрашивающий намекнул, что его беспокоит вполне реальная вероятность того, что с очень высоким всплеском («эффектом слэшдота») провайдеры исчерпают ВСЕ повернутые объявления за короткий промежуток времени. Это, вероятно, никогда не рассматривается, пока это не произойдет, и похоже, что его компания недостаточно велика, чтобы решить эту проблему. Сегодняшняя веб-2.0 вирусная «15 минут славы» делает это очень реальной проблемой.

Поскольку никто не хочет платить за рекламу, потраченную впустую на скачке, который привлекает «разнородную аудиторию», будут нетехнические проблемы, которые не могут быть решены только с помощью кода.

Это приводит к единственно вероятному ответу: подготовьте пункт об исключительных услугах в рекламных контрактах, чтобы определить политику компенсации / перерасхода% ( несправедливо по отношению к компании-распространителю рекламы автора ) или прекратить показ объявлений. в целом, как и ожидалось (например, некоторые акции, а иногда и целые фондовые биржи полностью прекращают всю торговлю, когда что-то серьезно не так - AOL сделал это вчера). В конце концов, миллион объявлений были обслужены! Теперь вы можете открыть для новых клиентов! (и потерять старые). Должны быть достигнуты политики среднего уровня, но дисбаланс является обычным явлением ... в конце концов, мы знаем, что происходит, когда вы полностью используете полосу пропускания вашего сайта --shutdowns и / или грубые платежные сообщения, которые показывают, что арендатор не получает несправедливого обслуживания помимо того трафика, на который они сократились ... еще один пример - тарифные планы с ограниченным количеством телефонных разговоров ... вы либо выставляете счет дополнительно и теряете клиента, либо прекращаете давать соки, а также теряете их. Проиграть / проиграть, поэтому кто-то должен отказаться от контрактной силы, и дело за отделами продаж, а не за кодерами, такими как мы.

Это также необходимо смоделировать, чтобы увидеть, как веб-страницы отображают «пустые» объявления, когда вы автоматически обслуживали миллион и одну рекламу в течение одного дня только для 1 миллиона запланированных объявлений - в конце концов, никому не нравится видеть нулевую рекламу для Остальные 29 рабочих дней!

Это трудное место, потому что контент-провайдеры (блогеры, использующие страницу, субсидируемую рекламодателями) ТАКЖЕ могут быть недовольны достижением ограничений полосы пропускания, налагаемых вашей хостинг-службой ... все одновременно с доходом от рекламы. провайдеры создают какие-то проблемы для вашей компании среднего бизнеса. Это, вероятно, обсуждается на уроках электронной коммерции в колледже, и никто не сможет это исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...