2011-01-30 10 views
11

Deseo detectar el software de bloqueo de anuncios en mi sitio web y solicitar a los usuarios que desactiven adblock redireccionando. La única forma que encontré fue usando Javascript.Detectar adblock y javascript

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

  2. Si no, ¿cómo puedo detectar si Javascript está deshabilitado y redirigirlos a una página determinada?

+14

@Ivo eso es mierda de caballo.Estoy totalmente a favor de la libertad de elección, pero no se puede pedir a los pequeños startups de video que no utilicen anuncios de video. Supongo que puedes, pero luego simplemente te pedimos que vayas y veas utilizar BitTorrent. Prefiero que consuma contenido pirateado ilegal en otro lugar que pagar los costos de transmisión de CDN, pagarle a mi licenciante su tarifa y luego no obtener nada a cambio. – Nuby

+5

Ivo tiene el muy buen punto de que no puede obligar al usuario a usar su servicio. Es mejor hacer que quieran usarlo. – Johan

+7

@Johan Lo que extrañas es que no quiero que usen mi servicio gratuito si no quieren ver anuncios. ¿Por qué debería? No tengo una organización benéfica, estoy manejando un negocio. Si desea bloquear anuncios, pero una suscripción. Si lo quieres gratis, entonces deja de perder mi ancho de banda – John

Respuesta

5

No se puede "detectar" si javascript está deshabilitado. Dado que javascript es una función del lado del cliente, el servidor no puede detectarlo, y "detectar" cosas del lado del cliente se hace con javascript. Verá la captura 22.

Lo que está disponible es la etiqueta <noscript>, que solo es mostrada por el navegador si javascript está desactivado. 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 presente para usar su sitio.

No hay forma de redireccionar automáticamente usuarios que tienen desactivación de javascript. Puede redirigir a los usuarios de forma selectiva mediante el uso de 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 intermedio.

En cuanto a la detección de anuncios bloqueados, esto va a variar según el navegador y el método de bloqueo de anuncios. No existe un indicador consistente 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 está cargado en la página.

+0

Puede usar JavaScript para representar el contenido que le interesa al usuario. Por lo tanto, no tiene JavaScript ni contenido. En su lugar, el usuario recibiría un mensaje de que se requiere JavaScript. Una vez que JavaScript está activado, puede usarlo para detectar si sus anuncios están siendo bloqueados. –

35

Para detectar si el usuario está bloqueando anuncios, todo lo que tiene que hacer es encontrar una función en el anuncio javascript e intentar probarlo. No importa qué método estén usando para bloquear el anuncio. Esto es lo que parece que 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.metamorphosite.com/detect-web-popup-blocker-software-adblock-spam

Para redirigir todos los usuarios con JavaScript desactivado, sólo tiene que poner este código en la cabecera de su HTML:

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

+1. Esta es la respuesta. – nalply

+1

booo! ¡sin anuncios! .. –

+11

? ads mantiene la web ejecutándose –

1

No pude obtener la solución de @Beach para trabajar en la comprobación de 'window.google_render_ad', pero funcionó al marcar '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'.

+0

ambos funcionan bien para mí – andufo

+0

Puedo verificar esto, 'window.google_render_ad' no funcionó pero' window.google_jobrunner' hizo el truco. ¡Gracias! – jesal

2

Cito de este post 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 
} 
Cuestiones relacionadas