Loading...
X

Монетизация посетителей сайта с блокировщиками рекламы через CPA и партнёрские программы


В этом посте я расскажу как настроить свои банеры для показа пользователям, у которых установлены блокировщики рекламы, а также дам исходный код, который вы сможете использовать у себя. А пока небольшое предисловие.

Как бороться с AdBlock'ом

По статистике Яндекс.Метрики, у меня на сайтах около 25% посетителей с блокировщиками рекламы. Скорее всего, у вас похожие цифры. Но как говорится, есть две новости, хорошая и плохая. Плохая новость в том, что эта цифра занижена, скорее всего, довольно значительно, поскольку достаточно разных блокировщиков и прокси с функцией фильтрации, которые не только не показывают рекламу, но и полностью вырезают код, в том числе этих самых счётчиков (той же Яндекс.Метрики) и эти посетители не только не попадают в статистику, график которой показан в заголовке к этой статье, но даже не засчитываются счётчиками посещений. Если вы установите какой-нибудь плагин статистики WordPress, то вы увидите, что количество посетителей будет примерно в 1.5-2 раза больше, чем показывает счётчик Яндекс.Метрики и аналогичные. Конечно, часть из них являются разного рода ботами, которых более продвинутые метрики отсеивают, но большая часть из них это всё-таки неучтённые посетители. В этом и есть плохая новость — процент использующих блокировщики рекламы выше, чем мы думаем. А хорошая новость в том, что посетителей на наших сайтах чуть больше, чем мы думаем — а это в любом случае хорошо.

Бороться с пользователями AdBlock'ов и аналогичных программ, на мой взгляд, смысла нет. В статье «Как для посетителей с блокировщиком рекламы не показывать форму комментирования и картинки в WordPress» я показывал готовые решения мягкого давления на них, но там же написал, что смысла в этом особого нет. Вообще, нужно понимать, что невозможно монетизировать каждого посетителя сайта. Точно также в торговом центре невозможно монетизировать каждого зашедшего: кто-то что-то купит, кто-то купит много, кто-то просто погуляет по магазину, так как ему нужно убить час-другой, кто-то просто зашёл, чтобы сходить в туалет и даже не взял с собой бумажник…

И тем не менее, стоит пытаться выжать что-то полезное и из этих посетителей. К примеру, с помощью партнёрских программ, таких как eBay (смотрите «Как зарабатывать с партнёрской программой eBay») и аналогичных.

Монетизация посетителей с AdBlock в CPA

Одним из вариантов монетизации пользователей, которые не видят рекламу, является CPA.

Википедия нам говорит, что: Cost Per Action (с англ. — «цена за действие») — модель оплаты интернет-рекламы, при которой оплачиваются только определённые действия пользователей на сайте рекламодателя. CPA-модель является одним из самых экономически эффективных вариантов оплаты рекламы, поскольку рекламодатель платит не за показы или клики, эффективность которых крайне сложно измерить, а за конкретных потребителей, подтвердивших интерес к продукту целевыми действиями.

Всё что я написал выше большинство из вас и так знают. Я для себя настроил работу с CPA так, чтобы её банеры показывались только посетителям, у которых заблокирована реклама AdSense. Сделал простейший код для показа случайно выбираемых баннеров посетителям, при этом предпринимаются меры, которые позволяют избегать блокировки самих банеров CPA. Именно этим я и хочу поделиться в этой статье.

Итак, начать нужно с набора нескольких партнёрских программ. Нужно предположить, что может быть интересно/близко посетителям моих сайтов и найти варианты с реферальной системой. Кроме этого, я решил воспользоваться Admitad. Если кто-то не в курсе, это площадка с большим количеством разнообразных CPA партнёров. Там легче искать подходящие предложения.

Особенности работы с Admitad

После регистрации в Admitad, нужно добавить и подтвердить свои сайты — каждый по отдельности. Процедура довольно простая и занимает всего несколько минут на каждый сайт.

Далее нужно подобрать партнёрские программы. Каждая программа подключается к определённому сайту. Поэтому если вы добавили, допустим, пять сайтов и хотите подключить определённую CPA для каждого из них, то это придётся делать пять раз.

К некоторым партнёрам можно подключиться автоматически, у некоторых ручная модерация, которая может занять несколько дней. Поражает отношение некоторых партнёрок с модерацией: они отказывают, но в комментарии к отказу пишут, что нужно связаться со службой поддержки и предоставить им какие-то доказательства трафика и чего-то подобного. Причём это не какие-то серьёзные партнёры, а мутнейшие игрульки, которых там «хоть попой ешь». И, кстати, мой первоначальный негативный опыт в admitad связан именно преимущественно с играми — видимо, они считают, что если пользователь не сделал их богатыми и не отправляет как сумасшедший деньги за «игровой стаф», значит веб-мастеру платить необязательно. Это их личное дело и их персональная шиза, благо, что нормальных партнёрок более чем хватает.

При выборе CPA не надо слишком сильно зацикливаться на особенностях своей аудитории. Допустим, один из моих сайтов с инструкциями для системных администраторов и веб-мастеров. По идее, кажется, что им может быть интересен хостинг, регистрация доменов и подобные услуги. Но, скорее всего, такие предложения им будут мало интересны — и по хостингу, и по регистраторам доменов у них уже есть свои предпочтения, которые будет трудно перебить. Эту аудиторию (веб-мастера) стоит рассматривать как мужчин возраста 25-35. С этой позиции уже проще подобрать CPA партнёрки: курсы программирования, сайты знакомств, компьютерные игры, всякие гаджеты.

На мой взгляд, желательно подобрать несколько партнёрок, чтобы ротировать (показывать разные) банеры.

Также можно заметить, что некоторые партнёры предлагают свои реферальные программы, помимо admitad и других агрегаторов, а также к ним можно подключиться через агрегаторы. При этом условия могут быть очень разными. К примеру, возьмём Kwork. При работе через admitad, оплачивается только первый заказ на сайте; за это дают 200р. Если же сотрудничать с Kwork напрямую, то правило следующее:

«Вознаграждение рассчитывается с суммы, оплаченной покупателем за заказ с основного баланса, и составляет 3.5% пользователю, пригласившему покупателя данной услуги, и 2.5% пользователю, пригласившему продавца данной услуги. Оплата средствами бонусного баланса (промокодами и другими бонусами) в расчет вознаграждения не идёт».

Причём, платят не вечно, как во многих других реферальных программах — платят только первые 3 года.

Чтобы набрать 200 рублей, получая по 3.5%, нужно, чтобы реферал сделал заказов на:

200 / 3.5 * 100 ≈ 5,700 рублей

Сделает ли ваш реферал заказов на 5,700 рублей? Если вы считаете что да, сделает и даже больше, то вам выгоднее сотрудничать с партнёркой (в данном случае с Kwork) напрямую.

С агрегаторами вроде admitad удобнее работать, чем с десятками отдельных партнёрок — но как лучше для вас и как выгоднее, вы уже решайте сами.


Не нужно ударяться в тизёры и разные сомнительные предложения. Наша задача не сформировать плохую репутацию сайту, а всего лишь получить хоть какой-то доход с немонетизируемой ранее аудитории. По крайней мере, я исхожу из этой концепции.

Как защитить банеры CPA от блокировщиков рекламы

Если мы будем использовать стандартный код, банеры, которые загружаются с сайта admitad, прямые ссылки, ведущие на сайт рекламодателя, то у таких банеров мало шансов пережить блокировщики.

Для обхода блокировщиков я рекомендую:

  • загрузить банеры к себе на сайт и поменять их стандартное название на другое
  • при вставьке банеров в сайт использовать нестандартные размеры. Даже если банер стандартного размера, в HTML коде можно изменить его высоту и ширину на несколько пикселей — визуально это не будет заметно
  • обязательно обёртывайте ссылки на сайт рекламодателей и на Admitad. Для этого не нужно использовать какие-то внешние сервисы, простейший сократитель ссылок можно реализовать несколькими строчками PHP прямо у себя на сайте
  • не нужно помещать свои CPA банеры в div'ы с уникальным атрибутом name, class или id — это позволит их очень легко заблокировать, хотя в примере ниже я делаю именно так — моя задача просто показать общие принципы. О том, какие меры можно принять для рандомизации имён div'ов я также напишу.

Как показывать банеры CPA только посетителям с фильтром рекламы

CPA партнёрки вряд ли будут выгоднее AdSense'а (хотя у кого как), поэтому нет смысла заменять ими AdSense или размещать совместно с AdSense, так как в последнем случае они будут отвлекать часть внимания или вызовут неприятные ощущения от перебора рекламы.

Поэтому идеальным вариантом представляется показ CPA рекламы только тем, у кого AdBlock (или что-то подобное). Поскольку AdBlock (и подобные) работают на пользовательской стороне, то мы можем проверить, присутствуют ли эти расширения, также только на пользовательской стороне (а не на стороне сервера). Мы для этого будем использовать JavaScript.

По умолчанию банер будет видимым. Если обнаружен Adblock, то будем делать этот банер видимым.

Как обнаружить Adblock на моём сайте?

Есть множество готовых решений. К примеру BlockAdBlock, плагины под WordPress, примеры кода на форумах и сайтах. Готовые решения надо использовать внимательно, поскольку есть тенденция, что блокировщики, которые должны блокировать AdBlock, через некоторое время сами начинают им блокироваться…

Здесь я нашёл очень простое и изящное решение для определения, есть ли фильтр рекламы.

Банер с рекламным кодом помещается в div с именем roleback. При этом банером является фрейм, который показывает то, что выводит suay.php. Файл suay.php — это ротатор банеров. Код показа банера:


<div name="roleback">
	<!--noindex--><iframe src="suay.php" frameborder="0" ></iframe ><!--/noindex-->
</div>

Как вы можете увидеть, по умолчанию банер виден. На странице можно вставлять банер несколько раз, например, а начале, середине и конце статьи, а также в боковой панели.

Далее скрипт, который проверяет, есть ли AdBlock, и если он есть, то скрипт ничего не делает, а если блокировщика некламы нет, то скрипт прячет наши самопальные банеры:

<script>
	var adBlockEnabled = false;
	var testAd = document.createElement('div');
	testAd.innerHTML = '&nbsp;';
	testAd.className = 'adsbox';
	document.body.appendChild(testAd);
	window.setTimeout(function() {
	if (testAd.offsetHeight === 0) {
		adBlockEnabled = true;
	}
	testAd.remove();
	console.log('AdBlock Enabled? ', adBlockEnabled)
	if( adBlockEnabled == false ){
		showFallbackImage();
	}
	}, 100);

function showFallbackImage() {
	var roleback = document.getElementsByName('roleback')
	for(var i=0; i<roleback.length; i++)roleback[i].style.display='none';

}
</script>

Результат работы скрипта очень простой — если НЕ обнаружен блокировщик рекламы, то вызывается функция showFallbackImage(). Эта функция (несмотря на своё название), делает все элементы с именами roleback невидимыми. Такой подход лучше, чем делать банеры по умолчанию невидимыми, а затем видимыми, если обнаружен AdBlock, поскольку при моём варианте, даже если у пользователя отключён JavaScript, мои сапомальные банеры он увидит всё равно.

Ротатор банеров и сократитель ссылок

Теперь возвращаемся к файлу suay.php, который выводит код индивидуального банера.

Это ротатор банеров, поэтому у него задача показывать случайный банер. Ещё, чтобы не реализовывать в отдельном файле, этот же ротатор выполняет функцию сократителя ссылок и сам же обрабатывает эти ссылки. Он показывает банер с ссылкой вида имя_файла.php?goto=N, где в качестве N подставляется число. Эта ссылка ведёт на сам файл suay.php, поэтому он же и перенаправляет на нужную страницу.

Имя файла можно выбрать любое — скрипт сам определит правильное имя и сам будет делать правильные ссылки. Это полезно, если вы создаёте более одного ротатора банеров — например, один с горизонтальными банерами, а другой с вертикальными банерами.


Ещё можно поменять имя папки, из которой подгружаются изображения, для этого достаточно изменить переменную $folder.

Можно добавить любое количество банеров и при этом не требуется никакая дополнительная настройка — скрипт сам будет правильно определять, сколько банеров в ротации.

Каждый банер добавляется строкой вида:

'IMG|картинка.jpg|реферальная_URL',

Пример:

'IMG|security2.jpg|https://ad.admitad.com/g/k3dfvevwit54f68b8c5465a37ca03d/',

картинка.jpg — это файл с изображением банера — можно использовать абсолютно любой формат, который поддерживают веб-браузеры.

Обратите внимание, что все строчки банеров, кроме последней, заканчиваются запятыми. После последней запятая не нужна.

Банеры должны показываться с равной вероятностью, если вы хотите, чтобы какой-то из них показывался чаще, то просто продублируйте одну и ту же строчку несколько раз.

Начало строки IMG является обязательным, чтобы отделяться от текстовых рекламных ссылок (пока не реализованы).

Пример файла suay.php с несколькими банерами:

<?php

function showRandomImage() {

    $script = basename(__FILE__);
    $folder = "imgsu";


    $images = array(
        'IMG|kwork1.jpg|https://ad.admitad.com/g/hfrq9tjrspe44cfd2beed7a732141a/',
        'IMG|kwork2.jpg|https://ad.admitad.com/g/hfrq9tjrspe44cfd2beed7a732141a/',
        'IMG|kwork3.jpg|https://ad.admitad.com/g/hfrq9tjrspe44cfd2beed7a732141a/',
        'IMG|kwork.gif|https://ad.admitad.com/g/hfrq9tjrspe44cfd2beed7a732141a/',
        
        'IMG|aviasales1.png|https://pafutos.com/g/bd7a1b8337e44cfd2bee8b0fa31d56/',
        'IMG|aviasales2.jpg|https://pafutos.com/g/bd7a1b8337e44cfd2bee8b0fa31d56/',
        'IMG|aviasales3.jpg|https://pafutos.com/g/bd7a1b8337e44cfd2bee8b0fa31d56/',
        'IMG|aviasales4.jpg|https://pafutos.com/g/bd7a1b8337e44cfd2bee8b0fa31d56/'        
    );

    if (isset($_GET["goto"])) {
        $link = $_GET["goto"];

        $strings = explode("|", $images[$link]);
        header("Location: $strings[2]");
        die;
    } else {

        $num = rand(0, count($images) - 1);

        $strings = explode("|", $images[$num]);

        if ($strings[0] == "IMG") {
            $banner = "<a target=\"_blank\" rel=\"nofollow\" href=\"./$script?goto=$num\"><img border=\"0\" src=\"./$folder/$strings[1]\" /></a>";
        }
        return '<p style="text-align: center">' . $banner . '</p>';
    }
}

echo showRandomImage();

Подключение к CPA программам

Я для тестов реализовал эту систему на более трафиковых сайтов, чем этот блог. Но на примере сайта Suay.ru я покажу вам как именно добавлять банеры CPA программ.

Допустим, я хочу пустить в ротацию банеры Kwork и Aviasales, показывая их только тем, у кого стоит какой-либо фильтр рекламы.

Переходим на страницу партнёра Kwork в раздел с рекламными материалами и нахожу банеры, которые мне подходят (по размеру и оформлению):

Кликаю на него и сохраняю с именем, например, kwork1.jpg:

Затем кликаю на «Получить код»:

Меня не интересует «HTML код», поскольку он будет вырезан любым фильтром рекламы, меня интересует «Стандартная ссылка». В моём случае это https://ad.admitad.com/g/hfrq9tjrspe44cfd2beed7a732141a/, итак, я добавляю первый банер в файл suay.php, получаю первую строку:

'IMG|kwork1.jpg|https://ad.admitad.com/g/hfrq9tjrspe44cfd2beed7a732141a/',

Аналогичным образом добавляю любое количество банеров. Затем аналогично делаю с Aviasales и любыми другими партнёрками.

Все скаченный картинки банеров сохраняю в папку imgsu заливаю на сайт suay.ru.

Также на сайт закачиваем файл suay.php (или как вы его назвали).

Получаем тот самый файл, который я привёл в качестве примера:

Вставляем банер в WordPress

Теперь для отображения банера нам нужно вставить следующий код в HTML страницы:

<div name="roleback">
	<!--noindex--><iframe src="suay.php" frameborder="0" ></iframe ><!--/noindex-->
</div>

В WordPress я использую Quick Adsense (подробности о нём статье «Бесплатный плагин для вставки рекламы в WordPress»).

Переходим к нужному слоту и вставляю прямо после кода Adsense:

Банер можно вставить несколько раз — вставляю вначале и в конце статьи.

Также после самого последнего банера нам нужно вставить следующий код JavaScript. Его можно вставить прямо в рекламный слот Quick Adsense:

<script>
	var adBlockEnabled = false;
	var testAd = document.createElement('div');
	testAd.innerHTML = '&nbsp;';
	testAd.className = 'adsbox';
	document.body.appendChild(testAd);
	window.setTimeout(function() {
	if (testAd.offsetHeight === 0) {
		adBlockEnabled = true;
	}
	testAd.remove();
	console.log('AdBlock Enabled? ', adBlockEnabled)
	if( adBlockEnabled == false ){
		showFallbackImage();
	}
	}, 100);

function showFallbackImage() {
	var roleback = document.getElementsByName('roleback')
	for(var i=0; i<roleback.length; i++)roleback[i].style.display='none';

}
</script>

Эскалация противостояния с блокировщиками рекламы

Если делать в точности, как я показал (загрузка изображений банеров на свой сайт, маскировка ссылок, изменение названий и так далее), то эти банеры не будут блокироваться. Если же после определённого времени банеры будут вырезаться фильтрами рекламы, то в первую очередь следует поменять имя div блока, а также это имя в коде JavaScript. В случае необходимости код банера и JavaScript можно создавать на лету так, чтобы div каждый раз имели уникальные имена. Это позволит добиться полной победы на AdBlock'ом и подобными. Невозможно победить AdBlock для AdSense, поскольку нам запрещено изменять код AdSense, но для своих банеров мы сами создаём код и можем полностью справиться с AdBlock. Менять можно не только атрибут name, также можно обфусцировать (то есть делать нечитаемым при полном сохранении работоспособности) код JavaScript, рандомизировать имена изображений, поменять папку расположения, имя файла-ротатора банеров и так далее.

Стоит ли этим заниматься

Поскольку у всех разные условия, то сделаю очень грубые, очень средние подсчёты. CTR страницы (процент посетителей кликнувших на рекламу) будет примерно 0.5%. Таким образом, за тысячу просмотров получаем 5 кликов. Цена одного клика составит в среднем 3 рубля (при условии, что у вас действительно много кликов, чтобы сработал закон больших чисел). Это число (3 р.) взято из прикидки «на глаз» EPC разных партнёров admitad — там разброс 0.5-10 рублей за клик). Получаем, за тысячу просмотров страницы примерно 15 рублей. Если у вас 2,000 просмотров страниц пользователями, у которых фильтр рекламы, то дополнительный доход в день должен составлять 30 рублей или 900 рублей в месяц… Не особо впечатляет, конечно.

Заключение

Показанный вариант подключения CPA не самый простой: у той же admitad есть автобанер и другие инструменты. Но готовые инструменты будут рано или поздно блокироваться AdBlock'ом. А показанный пример позволяет избежать этого. Мы хоть как-то монетизируем аудиторию, которая в противном случае кроме нагрузки на сервер ничего бы нам не дала. Мы в любом случае ничего не теряем, какие бы результаты не показала CPA.

Необходимо тестировать CPA партнёрки и оставлять тех, кто польше приносит с аудитории конкретного сайта. Также необходимо их сравнивать с доходностью контекстной рекламы.

Эффект от CPA может быть намного выше, если рекламировать товар/услугу в статье, как бы между прочим, поскольку банеры уже приелись и многие их просто не замечают.


Билеты на автобусы, паромы и поезда, в том числе стыковочные маршруты:

Авиабилеты на международные и местные направления по минимальным ценам:

Рекомендуется вам:


Buy Me a Coffee

6 observations on “Монетизация посетителей сайта с блокировщиками рекламы через CPA и партнёрские программы
  1. Devvver

    К сожалению этот метод годится для малопосещаемых сайтов. Потому что часть пользователей делают так 

    и жмут на "заблокировать элемент".

    И спустя время у тебя  на сайте начинает всплывать окошко  с надписью типа "этот сайт использует обход Adblock бла бла бла".  

     
    Reply
    1. MiAl

      С этим не поспоришь. Но на самом деле — это не главная проблема. Как я написал, можно делать рандомный код, который будет каждый раз уникальным. К сожалению, настоящая проблема в другом: этот самый admitad приносит слишком мало, чтобы с этим заморачиваться. Можно продолжить искать другие партнёрки — но с моим объёмом трафика это просто мышиная возня.

      П.С.: сейчас добавлю плагин, чтобы можно было прикреплять картинки прямо к комментариям.

       
      Reply
  2. Alex

    Протестил скрипт, Adblock Plus распознает неплохо. Вот только блокировщик ADGUARD в яндекс браузере вообще не распознает как блокировщик рекламы. Следовательно банеры не показыват… Может есть вариант исправить этот косяк?

     
    Reply
    1. MiAl

      Приветствую!

      Механизм работы скрипта следующий:

      1. Создаётся тэг (контейнер) DIV с идентификатором adsbox. Он вставляется в DOM модель документа

      2. Проверяется размер этого контейнера — если он равен нулю, значит блокировщик рекламы присутствует.

      Вывод — тестируемый вами блокирощик не блокирует тэги div с идентификатором adsbox. Чтобы это исправить, попробуйте найти более универсальный идентификатор. К примеру, Google AdSense использует идентификатор adsbygoogle — можете взять его.

      То есть в приведённом коде JavaScript найдите слово adsbox и замените на adsbygoogle — реклама от Гугл является популярной и её уж точно должна блокировать любая резалка рекламы.

       
      Reply
  3. Nataly

    "В этом посте я расскажу как настроить свои банеры для показа пользователям, у которых установлены блокировщики рекламы, а также дам исходныЕ код" - "исходныЙ".

     
    Reply

Leave an observation to MiAl Cancel observation

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo