Проверяет знание методов обнаружения блокировщиков рекламы на веб-странице и их практическое применение.
Блокировщики рекламы (Adblock, uBlock Origin и другие) работают, перехватывая запросы к известным рекламным доменам и скрывая элементы с определёнными классами или атрибутами. Чтобы определить, активен ли блокировщик, разработчики используют обходной путь: создают элемент, который имитирует рекламный блок, и проверяют, был ли он скрыт или удалён браузером.
Самый распространённый способ — добавить на страницу элемент с классом, который часто используется в рекламных баннерах (например, ad-banner), и затем проверить его свойства через JavaScript. Если элемент имеет нулевую высоту, ширину или не отображается, значит, блокировщик вмешался.
// Создаём тестовый элемент
const testAd = document.createElement('div');
testAd.className = 'ad-banner';
testAd.innerHTML = ' ';
testAd.style.position = 'absolute';
testAd.style.left = '-9999px';
document.body.appendChild(testAd);
// Проверяем, скрыт ли элемент
const isBlocked = testAd.offsetHeight === 0 ||
testAd.offsetWidth === 0 ||
getComputedStyle(testAd).display === 'none';
// Удаляем тестовый элемент
document.body.removeChild(testAd);
if (isBlocked) {
console.log('Adblock обнаружен');
} else {
console.log('Adblock не активен');
}Другой подход — попытаться загрузить скрипт с известного рекламного домена (например, pagead2.googlesyndication.com) и проверить, выполнился ли он. Если скрипт не загрузился, это указывает на блокировку. Однако этот метод менее надёжен, так как может зависеть от сетевых ошибок.
Обнаружение Adblock используется для показа пользователям сообщения с просьбой отключить блокировку, чтобы поддержать сайт, или для адаптации контента (например, предложить подписку без рекламы). Важно делать это деликатно, чтобы не раздражать пользователей и не нарушать их выбор.
Детектирование Adblock — простая и эффективная техника, основанная на проверке поведения DOM. Она полезна для монетизации сайтов и улучшения пользовательского опыта, но требует аккуратного подхода, чтобы не отпугнуть посетителей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию