Как я могу узнать, блокирует ли веб-клиент рекламу?

Каков наилучший способ записи статистики о количестве посетителей, посещающих мой сайт, которые настроили свой браузер на блокировку рекламы?

5 ответов

Решение

Поскольку такие программы, как AdBlock, на самом деле никогда не запрашивают рекламу, вам придется просматривать журналы сервера, чтобы узнать, заходил ли тот же пользователь на веб-страницу, но не обращался к рекламе. Это при условии, что реклама находится на том же сервере.

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

Лучший способ запретить пользователям блокировать рекламу - это разместить встроенные текстовые объявления, которые генерируются сервером и размещаются внутри вашего html.

Добавьте идентификатор пользователя в запрос на объявление:

<img src="./ads/viagra.jpg?{user.id}"/>

Таким образом, вы можете проверить, какие объявления видят какие пользователи.

Форум AdBlock сообщает, что это используется для обнаружения AdBlock. После некоторых настроек вы можете использовать это для сбора статистики.

setTimeout("detect_abp()", 10000);
var isFF = (navigator.userAgent.indexOf("Firefox") > -1) ? true : false,
    hasABP = false;

function detect_abp() {
  if(isFF) {
    if(Components.interfaces.nsIAdblockPlus != undefined) {
      hasABP = true;
    } else {
      var AbpImage = document.createElement("img");
      AbpImage.id = "abp_detector";
      AbpImage.src = "/textlink-ads.jpg";
      AbpImage.style.width = "0";
      AbpImage.style.height = "0";
      AbpImage.style.top = "-1000px";
      AbpImage.style.left = "-1000px";
      document.body.appendChild(AbpImage);
      hasABP = (document.getElementById("abp_detector").style.display == "none");

      var e = document.getElementsByTagName("iframe");
      for (var i = 0; i < e.length; i++) {
        if(e[i].clientHeight == 0) {
          hasABP = true;
        }
      }
      if(hasABP == true) {
        history.go(1);
        location = "http://www.tweaktown.com/supportus.html";
        window.location(location);
      }
    }
  }
}

Вам нужно подумать о различных способах блокировки рекламы. Первое, на что нужно обратить внимание, - работают ли они в noscript, поэтому вы можете добавить скрипт, который бы проверял это.

Следующее, что нужно, чтобы увидеть, блокируют ли они вспышку, должен сделать небольшой фильм.

Если вы посмотрите на сайт adblock, есть некоторые признаки того, как он блокирует:
Как работает скрытие элементов?

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

Я полагаю, вы могли бы сравнить рекламные отпечатки с просмотром страниц на вашем веб-сайте (который вы можете получить из своего аналитического программного обеспечения).

Другие вопросы по тегам