Показывать рекламу% пользователей
У меня есть сайт, на котором я хочу показывать рекламу до 10% моего трафика. Я получаю в среднем около 30 000 просмотров в день и хочу, чтобы 10% этих пользователей видели рекламу одного из моих рекламодателей.
Каков наилучший способ реализации этого?
Я думал о подсчете посетителей в базе данных, а затем каждые 10 человек, которые посещают 1 пользователя, получают рекламу. Или есть лучший способ сделать это?
Я не очень разбираюсь в математике, поэтому я не уверен, какой подход лучше.
7 ответов
Сгенерируйте случайное число от 1 до 10 и сравните его с фиксированным числом, и ваш код будет выполняться в среднем 10% времени:
if (rand(1,10) == 1) {
echo 'ad code';
}
Вы можете сделать это для каждого пользователя вместо просмотра страниц, сохранив, был ли этот пользователь "выбран" в их сеансе.
session_start();
if (isset($_SESSION['show_me_ads']) || rand(1,10) == 1)
$_SESSION['show_me_ads'] = true;
echo 'ad code';
}
Я использую Google DFP (Doubleclick for Publishers) для показа объявлений на своем сайте. Это довольно надежно. Вы должны иметь учетную запись AdSense, но это не очень сложно получить, просто раздражает ожидание одобрения.
После того как вы настроили его и загрузили свои объявления, вы можете контролировать, сколько людей увидят ваше объявление в процентах (например, 10%, о которых вы говорили), общем количестве просмотров страниц и т. Д.
Посмотрите на это: http://google.com/dfp
Если вы не хотите использовать стороннее программное обеспечение, я думаю, что самым простым способом было бы рандомизировать его, чтобы 1/10 посетителей увидели ваше объявление. Простой способ будет:
if (rand(1,10) == 1) {
echo 'YOUR AD CODE HERE';
}
Вы сказали, что плохо разбираетесь в математике, и я понимаю, что я тоже довольно ужасен в этом, но в основном, каждый раз, когда страница загружается, она "катит" 10-гранный "кубик". Каждый раз, когда он "катит" 1 (что будет 1 из 10 раз, или 10%), он будет показывать рекламу. Иначе это будет проигнорировано.
Причина, по которой это лучше, чем полагаться на подсчет количества пользователей (помимо простоты), заключается в том, что он все равно будет показывать 10% времени, будь то 30 000 посетителей или 3 000 000.
Ты можешь использовать
if(mt_rand(1,10)==10){
//show your code;
}
Он будет показывать рекламу примерно 10% пользователей
Если бы это было для объявлений Google, то вам нужно было бы сделать вставку рекламы необязательной (используя вышеупомянутую логику вероятности), предложить что-то похожее на Google Ads Async (асинхронный)
<script type="text/javascript"><!--
// dynamically Load Ads out-of-band
setTimeout((function ()
{
// placeholder for ads
var eleAds = document.createElement("ads");
// dynamic script element
var eleScript = document.createElement("script");
// remember the implementation of document.write function
w = document.write;
// override and replace with our version
document.write = (function(params)
{
// replace our placeholder with real ads
eleAds.innerHTML = params;
// put the old implementation back in place
document.write=w;
});
// setup the ads script element
eleScript.setAttribute("type", "text/javascript");
eleScript.setAttribute("src", "http://pagead2.googlesyndication.com/pagead/show_ads.js");
// add the two elements, causing the ads script to run
document.body.appendChild(eleAds);
document.body.appendChild(eleScript);
}), 1);
//-->
</script>
Зачем показывать рекламу нескольким неудачникам, а не выбирать случайным образом по количеству показов страницы (а не по посетителю)?
В php вы можете просто написать:
$adPercent = 10;
if (rand(0, 100) < $adPercent) {
echo '<div class="ads">Buy now!</div>';
}