Pregunta

Deseo detectar el software de bloqueo de anuncios en mi sitio web y pedirles a los usuarios que deshabiliten AdBlock redirigiendo. La única forma en que encontré fue usar JavaScript.

  1. ¿Hay alguna otra forma de detección?

  2. Si no, ¿cómo detecto si JavaScript está deshabilitado y los redirige a una determinada página?

¿Fue útil?

Solución

En realidad, no puede "detectar" si JavaScript está deshabilitado. Dado que JavaScript es una característica del lado del cliente, el servidor no puede detectarla y "detectar" las cosas del lado del cliente se realiza con JavaScript. Ves la captura 22.

Lo que está disponible es el <noscript> Etiqueta, que solo es representada por el navegador si JavaScript está apagado. Este es el mecanismo estándar para mostrar un mensaje a un usuario si JavaScript está deshabilitado. Usando Noscript y CSS inteligente, puede hacer que sea imperativo que los usuarios habiliten JavaScript o sigan un enlace de redirección que presenta para usar su sitio.

No hay forma de redirigir automáticamente solamente Usuarios que tienen JavaScript deshabilitado. Puede redirigir a los usuarios selectivamente utilizando JavaScript, o puede redirigir a las personas en función de los criterios del lado del servidor (encabezados HTTP, etc.). Pero no puedes atrapar a ese grupo medio.

En cuanto a la detección de ADCLOKING, esto variará según el Browser y el Método de Bloqueo. No hay una bandera constante para ello, pero puede hacer cosas como verificar la disponibilidad de su servidor de anuncios a través de JavaScript, o verificar si el contenido de su anuncio se carga en la página.

Otros consejos

Para detectar si el usuario está bloqueando los anuncios, todo lo que tiene que hacer es encontrar una función en el anuncio de JavaScript e intentar probarlo. No importa qué método estén usando para bloquear el anuncio. Así es como se ve para los anuncios de Google Adsense:

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

Este método se describe aquí: http://www.metamorphospose.com/detect-web-popup-bloker-software-adblock-spam

Para redirigir a todos los usuarios con JavaScript deshabilitado, simplemente coloque este código en la cabeza de su HTML:

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

Cito de esta publicación sobre el tema:

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
} 

No pude conseguir que la solución de @beau funcionara para ver 'window.google_render_ad', pero funcionó al verificar 'window.google_jobrunner'.

Tal vez el código de Adsense ha cambiado desde que se publicó la respuesta original, encontré 'Google_Jobrunner' en el JS descargado de Adsense pero no 'Google_Render_ad'.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top