Обнаружить 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".