- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Может кто сталкивался с написанием такого скипта...
Имеем в массиве три баннера. Сейчас в баннерной сети у меня сделано так, что баннера загоняются в массив и рандомом показываются по очереди, а нужно сделать показы с учетом веса баннеров.
Пусть страница показывается 100 раз нужно, чтоб первый показался 80 раз, а два других по 10. Т.е. вес у них будет 80 и по 10 соответственно.
Я пока вижу только вариант размножить первый баннер восемь раз и добавить в массив, т.е. массив получится уже из 10 элементов, а дальше опять их рандомно выбирать, вроде тогда будут показы с учетом веса, но что-то мне подсказывается, что такой вариант не идеален.
Есть идеи как это можно сделать по другому?
P.S. Делаю на php, хотя интересует сам принцип
В свое время сделал через не идеальный вариант, который был Вами описан. Все получилось просто в реализации.
Собственно код:
<?php
$txt_array[1] = 'код баннера 1';
$txt_array[2] = 'код баннера 1';
$txt_array[3] = 'код баннера 2';
srand ((double) microtime() * 10000000);
$bannertext = $txt_array[mt_rand(1,3)];
echo($bannertext);
?>
В частности баннер 1 будет показываться в 66 процентах, второй в 33 процентах. Ну +/- 1 процент :)
спасибо, не хотелось забивать память фигней, но наверное придется...
Есть идеи как это можно сделать по другому?
Вопрос стоит так, нужно ли чтобы показы самых "редких" и самых "частых" баннеров были одинаково распределны во времени? Если да, то Ваш вариант очень даже приемлем и требует минимум гемора.
Если равномерность роли не играет, то делаем так:
1. Показываем рандомом все.
2. Убираем из массива те баннеры, количество показов по которым закончилось.
3. Переходим к п1.
да, тут наверное надо считать количество показов каждого баннера, и от этого плясать какой баннер будет показан следующим.
Массив из 100 элементов. Сообразно процентному отношению показов забивается различными баннерами, потом берём оттуда случайный элемент. Скажем баннер1 показывается в 20%, баннер2 в 41%, остальное баннер3 - в массиве 20 элементов баннера1, 41 элемент баннера2 и 39 элементов баннера3. а потом случайный элемент оттуда. Остальные способы уже показали.
ок, спасибо