В этой статье я расскажу вам, как можно легко определить, пользуется ли человек, который зашёл к вам на сайт, блокировщиком рекламы или нет.
Для этого я разберу небольшой тестовый пример.
Для начала создадим простой html файл:
1 2 3 4 5 6 7 8 9 |
<!DOCTYPE html> <html> <head> <script src="js/showads.js"></script> <script src="js/script.js"></script> </head> <body> </body> </html> |
Как вы видите, мы в нём подключаем 2 js файла, один из которых и будет блокироваться AdBlock или чем-то другим.
Далее создайте папку js и поместите туда следующие файлы:
showads.js:
1 |
var ads = true; |
и script.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
window.onload = function() { // при загрузке страницы будет вызвана данная функция checkAdBlock(); }; // функция, где происходит попытка получить доступ к переменной // ads из файла showads.js function checkAdBlock() { try { if (ads === true) {} // если переменная доступна showInfoAdBlock(false); } catch (err) { // если переменная ads недоступна showInfoAdBlock(true); } }; // функция, которая обрабатывает результат проверки блокировки рекламы function showInfoAdBlock(IsExistAdBlock) { if (IsExistAdBlock) { // реклама заблокирована alert("Блокировщик рекламы работает"); } else { // реклама не заблокирована alert("Блокировщик рекламы не работает"); } }; |
В файле showads.js заводим одну переменную, а в файле script.js пробуем её получить. Если AdBlock или другой блокировщик заблокирует данный файл, то мы не сможем к ней обратиться.
Данный код был проверен с AdBlock 3.15.0, uBlock Origin 1.14.8, Adguard.
Немного более кастомизированную версию данного решения можно посмотреть тут. Также код страницы, которая приведена в предыдущем предложении, можно посмотреть на Github.