Сведения о вопросе

Ayrat

16:03, 1st July, 2020

Теги

browser   analytics    

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

Просмотров: 475   Ответов: 5

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



  Сведения об ответе

P_S_S

18:03, 1st July, 2020

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

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

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


  Сведения об ответе

#hash

18:03, 1st July, 2020

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

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

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


  Сведения об ответе

appple

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

nYU

18:03, 1st July, 2020

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);
      }
    }
  }
}


  Сведения об ответе

ASER

18:03, 1st July, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться