Теперь есть лучший способ сделать это, используя простой JS-скрипт с именем AdBlock Detector
Вот как его использовать:
Добавьте это в свой <head>
раздел:
<script type="text/javascript">
window.onload = function() {
var iframe = document.createElement('iframe'),
randomDomain = Math.floor(Math.random() * (10000 - 100 + 1)) + 100,
iframeLoaded = true;
iframe.src = "http://"+ randomDomain +".com/ads.html";
iframe.height = ".1px";
iframe.width = ".1px";
iframe.id = 'some-ad';
iframe.onload = function() {iframeLoaded = false;};
document.body.appendChild(iframe);
setTimeout(function() {
var someAd = document.getElementById('some-ad');
if(!iframeLoaded ||
someAd == null ||
someAd.style.display == "none" ||
someAd.style.display == "hidden" ||
someAd.style.visibility == "hidden" ||
someAd.offsetHeight == 0)
document.getElementById('ab-message').style.display = 'block';
someAd.remove();
}, 500);
};
</script>`<br>
Теперь вы можете использовать идентификатор ab-message
везде, где хотите отобразить сообщение для пользователей AdBlock:
<div id="ab-message" style="display: none">Your message here!</div>
Обратите внимание на встроенный стиль, добавленный, чтобы скрыть его изначально (Конечно, вы также можете сделать это из вашего собственного файла CSS).
Также обратите внимание, что это занимает 500 мс, потому что ему нужно ждать, пока adblocker сделает свое дело, или он не будет работать.
Небольшое объяснение того, как работает этот скрипт
Во-первых, он добавляет iframe с источником случайно сгенерированной ссылки.(Он генерируется случайным образом, потому что некоторые рекламные блоки умные, в какой-то момент они понимают, что ссылка фальшивая).
Затем он запускает несколько проверок для этого iframe (если он был загружен успешно или его стиль был изменен).Если один из этих тестов верен, он отображает элемент ab-message
для пользователей adblock.
Этот скрипт работает для большинства (если не всех) блокировщиков рекламы.
EXTRA
Нет никакого смысла в том, чтобы просто создать гист, но вместо этого я создал проект Github, но все же, проверьте его и отметьте его, если он вам помог.
abDetector: Простой ванильный JavaScript AdBlock Detector.
Наслаждайтесь.