Обнаружить adblock и javascript

Я хочу обнаружить на своем веб-сайте рекламное ПО и попросить пользователей отключить рекламный блок путем перенаправления. Единственный способ, которым я нашел, - использовать Javascript.

  • Есть ли другой способ обнаружения?

  • Если нет, как определить, отключен ли Javascript и перенаправить их на определенную страницу?

Ответ 1

Вы не можете "обнаружить", если javascript отключен. Поскольку javascript является клиентской функцией, сервер не может ее обнаружить, а "обнаружение" вещей на стороне клиента выполняется с помощью javascript. Вы видите уловку 22.

Доступен тег <noscript>, который отображается только браузером, если отключен javascript. Это стандартный механизм отображения сообщения пользователю, если javascript отключен. Используя noscript и умный CSS, вы можете сделать так, чтобы пользователи либо включали javascript, либо использовали ссылку перенаправления, которую вы используете, чтобы использовать ваш сайт.

Невозможно автоматически перенаправить только тех пользователей, у которых отключен javascript. Вы можете перенаправлять пользователей выборочно, используя javascript, или вы можете перенаправлять людей на основе критериев на стороне сервера (заголовки HTTP и т.д.). Но вы не можете поймать эту среднюю группу.

Что касается обнаружения блокировки рекламы, это будет зависеть от браузера и метода блокировки. Для него нет согласованного флага, но вы можете делать такие вещи, как проверка доступности вашего сервера объявлений с помощью javascript или проверка того, загружен ли ваш контент объявления на странице.

Ответ 2

Чтобы определить, блокирует ли пользователь рекламу, вам нужно найти функцию в javascript и попробовать ее проверить. Неважно, какой метод они используют для блокировки объявления. Вот как это выглядит для объявлений Google Adsense:

if(typeof(window.google_render_ad)=="undefined") 
{ 
    //They're blocking ads, do something else.
}

Этот метод описан здесь: http://www.metamorphosite.com/detect-web-popup-blocker-software-adblock-spam

Чтобы перенаправить всех пользователей с отключенным javascript, просто поместите этот код в начало своего HTML:

<noscript>
    <meta http-equiv="refresh" content="5;url=http://newsite.com/">
</noscript>

Ответ 3

Я цитирую этот пост о предмете:

http://w3guy.com/detecting-adblock/

HTML

<div class="myTestAd">
    <!-- Adsense Ad code goes here -->
</div>

JS:

if ($('.myTestAd').height() == 0) {
    // stuff to do if adBlock is active
} 

Ответ 4

Я не смог получить решение @Beau для проверки работы на "window.google_render_ad", но это действительно работало при проверке "window.google_jobrunner".

Возможно, код AdSense изменился с момента публикации исходного ответа, я нашел "google_jobrunner" в JS, загруженном из Adsense, но не "google_render_ad".