Как обнаружить блокировщик рекламы — Блог о самом интересном.

От создателя: одно из неписанных правил Интернета состоит в том, что большая часть контента является «бесплатной»… за счет того, что интернет-страница содержит рекламу и трекеры. В 1-ое время веба это не было большой проблемой , но трекеры и маркетинговые объявления стали так назойливыми и брутальными, что для вас практически непременно необходимо применять расширение для браузера, блокирующее рекламу.

Ad Blocker Plus пользуется большой популярностью, и таковой браузер, как Brave, гордится тем, что основное внимание уделяет блокировке рекламы. Нередко я захожу на веб-сайт и вижу, что на нем модалы отключены блокировщиком рекламы, что принуждает меня задуматься о том, как идеальнее всего найти Ad Blocker. Опосля огромного количества тестов и тестов я отыскал весьма обычный метод отыскать и найти блокировщик рекламы!

На самом деле, мой способ состоит в том, что я пробую загрузить JavaScript файл службы рекламы Гугл, и если запрос не производится, это, возможно, соединено с тем, что у юзера включен Ad Blocker:

JavaScript

// Определяем, что, быстрее всего, юзер включил блокировщик рекламы

async function checkAdBlocker() {

let isBlocked;

async function tryRequest() {

try {

return fetch(

new Request(«https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js», {

method: ‘HEAD’,

mode: ‘no-cors’

}))

.then(function(response) {

// Запрос Гугл Ads прошел удачно, потому, быстрее всего, блокировщик не употребляется

isBlocked = false;

return isBlocked;

}).catch(function(e) {

// Запрос не прошел, потому, быстрее всего, блокировщик включен

isBlocked = true;

return isBlocked;

});

} catch (error) {

// извлекаем ошибку API; может быть извлечение не будет поддерживаться (старенькый браузер)

// Помечаем, как блокер, потому что появилась ошибка, и означает

// закончить последующие запросы, когда эта функция запущена

console.log(error);

isBlocked = true;

return isBlocked;

}

}

return isBlocked !== undefined ? isBlocked : await tryRequest();

}

// Используем проверку блокировщика рекламы

const usingBlocker = await checkAdBlocker();

Что такое статуя свободы?

1234567891011121314151617181920212223242526272829303132333435 // Определяем, что, быстрее всего, юзер включил блокировщик рекламыasync function checkAdBlocker() {  let isBlocked;   async function tryRequest() {    try {      return fetch(        new Request(«https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js», {          method: ‘HEAD’,          mode: ‘no-cors’        }))        .then(function(response) {          // Запрос Гугл Ads прошел удачно, потому, быстрее всего, блокировщик не употребляется          isBlocked = false;          return isBlocked;        }).catch(function(e) {          // Запрос не прошел, потому, быстрее всего, блокировщик включен          isBlocked = true;          return isBlocked;        });    } catch (error) {      // извлекаем ошибку API; может быть извлечение не будет поддерживаться (старенькый браузер)      // Помечаем, как блокер, потому что появилась ошибка, и означает      // закончить последующие запросы, когда эта функция запущена      console.log(error);      isBlocked = true;      return isBlocked;    }  }   return isBlocked !== undefined ? isBlocked : await tryRequest();} // Используем проверку блокировщика рекламыconst usingBlocker = await checkAdBlocker();

Логика заключается в последующем:

Маркетинговый файл Гугл adsbygoogle.js, является безупречным примером файла, поэтому что он считается противником № 1 — первым файлом, который блокировщик рекламы захотит заблокировать из-за популярности маркетингового сервиса Гугл

Этот файл также имеет главное значение для бизнеса Гугл, потому фактически гарантировано время неотказной работы 99,999999999%.

Есть маленькой шанс, что будет иметь пространство неувязка сети; неверные срабатывания могут происходить от заморочек с сетевым подключением либо отвратительного service worker

Если вы не считаете adsbygoogle.js наилучшим примером файла себе, вы сможете просто переключиться на хоть какой иной URL

Исходя из убеждений создателя контента, было бы безупречным иметь свойство navigator, которое докладывало бы, был ли задействован блокировщик рекламы,… но это не произойдет в наиблежайшее время (…по сути, никогда). Но внедрение таковых обычных сниппетов дает разумную возможность определять блокировщик рекламы!

Создатель: David Walsh

Редакция: Команда blogedward.ru