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

StackOverflow https://stackoverflow.com/questions/2472

  •  08-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

Форум 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);
      }
    }
  }
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top