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

Holish

16:03, 1st July, 2020

Теги

browser   analytics    

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

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

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



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

piter

18:03, 1st July, 2020

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

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

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


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

COOL

18:03, 1st July, 2020

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

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

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


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

JUST___

18:03, 1st July, 2020

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

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

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

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


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

PAGE

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


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

lool

18:03, 1st July, 2020

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


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

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