javascript - ejemplo - Determine qué anuncio hizo una solicitud a/eyeblaster/addineyev2.html
iframe url (4)
He encontrado mi propia respuesta, y la compartiré aquí para el raro caso de que otro desarrollador web intente en vano localizar un anuncio que haga lo mismo con ellos.
El anuncio digital ofensivo estaba llegando con un iframe que apuntaba hacia "/eyeblaster/addineyev2.html" Usé este conocimiento y codifiqué el siguiente javascript para recopilar información sobre la página que contenía el iframe (es decir, la página con el anuncio en eso).
if(top != self) {
$.post("/ad_diagnose/log.php", {
a: $(''#ad-div-one'', top.document).html(),
b: $(''#ad-div-two'', top.document).html(),
c: $(''#ad-div-three'', top.document).html(),
d: $(''#ad-div-four'', top.document).html(),
e: $(''#ad-div-five'', top.document).html(),
});
}
Este JavaScript utiliza JQuery (que nuestro proveedor de CMS incluye en todas las páginas de todos modos). Comprueba si la página de error existe en un iframe (arriba! = Self) y luego captura el html sin procesar para cada elemento html en la página principal que debe contener un anuncio.
Los datos se envuelven en un objeto y se publican en un simple script php que escribiría un registro de cada valor publicado en un archivo.
Al final, recibí un archivo de registro con una alta probabilidad de que el código del anuncio ofensivo estuviera dentro. Pude hacer un grep rápido en el archivo y descubrí el anuncio con un iframe apuntando hacia "/eyeblaster/addineyev2.html"
Espero que esto ayude a alguien más por ahí!
Tengo un sitio web grande que utiliza dos grandes proveedores de "Remanentes" de publicidad en línea. Estos proveedores son tales que inician y detienen campañas publicitarias de forma regular que se publican en nuestro sitio web.
Uno de los anuncios provenientes de uno de los proveedores está realizando una solicitud incorrecta para:
/eyeblaster/addineyev2.html
He determinado que algunos sitios web utilizan el archivo solicitado cuando los anuncios en el sitio web se publican a través de iframes. En teoría, este archivo evitaría las restricciones de dominio cruzado para que el proveedor de anuncios pueda cambiar el tamaño del iframe usando javascript dentro del iframe.
Determiné este uso del archivo tropezando con este documento de soporte:
http://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1085693
Mi problema es que nuestros sitios web no utilizan iframes para publicar anuncios, por lo que las solicitudes al URI "/eyeblaster/addineyev2.html" generan un error 404 y no son necesarias. Debido a que el error proviene de un gran CMS proporcionado por el proveedor, el error se procesa con nuestro código de seguimiento de Google Analytics. Esto tiene el resultado de inflar nuestras vistas de página aparentes.
La inflación de páginas visitadas puede ser muy grave, ya que la página de error 404 también contiene anuncios. Esa página 404 también podría cargar el anuncio defectuoso, lo que resultaría en un bucle recursivo de anuncios que cargarían exactamente la misma página 404 "/eyeblaster/addineyev2.html".
Hasta ahora no he podido ver un anuncio que haga una solicitud directa a esta URL a través de Firebug o herramientas de desarrollador similares. Sin embargo, el tráfico a esta página inexistente es gigantesco, por lo que el anuncio ofensivo todavía está en la mezcla. El problema es que no puedo averiguar qué anuncio está roto, por lo que no puedo decirle a nuestros proveedores remanentes que lo eliminen. Ambos proveedores están fingiendo ignorancia del tema.
No puedo eliminar el código de seguimiento de Google en la página de error 404, pero puedo agregar JavaScript adicional a la página.
¿Hay alguna forma de identificar el anuncio que provoca una solicitud de "/eyeblaster/addineyev2.html" agregando un poco de javascript al error 404 que se produce al intentar solicitar esa página dentro de un iframe?
¿Esencialmente casi un script de "destructor de cuadros" que, en lugar de romper el marco, proporciona información sobre los nodos HTML cercanos al elemento iframe? Creo que es ligeramente posible, pero no veo un camino claro en este momento.
¡Gracias!
Parece que hay más editores que tienen este problema. Yo también. Siguiendo las instrucciones de Tals, pude registrar información al apuntar un iframe a una página 404 a propósito, pero no pude detectar este problema porque aparece al azar y no puedo comprobar por qué el script no lo está detectando.
¿Qué hay de agregar /eyeblaster/addineyev2.html y registrar desde este archivo?
Pude determinar el propietario del script haciendo una búsqueda en la web. Viene de http://www.mediamind.com/ Pero deshabilitar "mediamind" en Google AdSense no funciona, así que les pedí ayuda para enviarme el archivo.
Voy a probar el script y si las llamadas 404 son cada vez más bajas. Tal vez también use el script para verificar el contenido que se está cargando y determinar la dirección URL de anuncio correcta para apagarlo.
Solo pensé que compartiría que esto también está sucediendo en nuestro sitio web de Ozzu. La primera vez que me di cuenta del problema fue cuando algunos de nuestros miembros se quejaban, pero no me fijé demasiado en mi opinión porque pensé que era un caso aislado.
Durante el mes pasado también noté que mis archivos de registro de errores en el servidor han sido más altos de lo normal, lo que empuja la partición / usr a alrededor del 82% de su uso. No puse dos y dos juntos hasta el día de hoy, ya que finalmente comencé a analizar los errores y parece que esta no es una instancia aislada con este tipo de anuncios. Debido a esto, muchos miles de usuarios ingresan a nuestro sitio y luego son redirigidos a una página 404 en nuestro sitio web. Aquí hay una muestra de uno de los errores en nuestro archivo de registro, y parece que numerosas redes están usando este software de Eyeblaster de Media Mind:
[Thu Dec 13 16:36:51 2012] [error] [client 123.123.123.123] File does not exist: /public_html/eyeblaster, referer: http://lax1.ib.adnxs.com/if?enc=AAAAAAAAAAAAAAAAAAAAAAAAAGC4Hvs_AAAAAAAAAAAAAAAAAAAAAMqchzp-qp9L_vlliXOoLV2gdMpQAAAAAEMUDABGAQAAQAEAAAIAAADXo0AA-FcCAAAAAQBVU0QAVVNEAKAAWAIAeAAAYk4AAgMCAQUAAIIA5BXJnQAAAAA.&cnd=%21QxtEWwidpzIQ18eCAhgAIPivCTAEOIDwBUABSMACUMOoMFgAYL4FaABwKngAgAH6AYgBAJABAZgBAaABAqgBALABALkBAAAAAAAAAADBAQAAAAAAAAAAyQEgEFk1j_LCP9kBAAAAAAAA8D_gAQA.&udj=uf%28%27a%27%2C+15986%2C+1355445408%29%3Buf%28%27c%27%2C+824221%2C+1355445408%29%3Buf%28%27r%27%2C+4236247%2C+1355445408%29%3B&ccd=%21mgWjMAidpzIQ18eCAhj4rwkgAQ..&vpid=18&referrer=http%3A%2F%2Fwww.ozzu.com%2F&dlo=1
[Thu Dec 13 16:36:56 2012] [error] [client 123.123.123.123] File does not exist: /public_html/eyeblaster
Acabo de contactar a la compañía Media Mind también para ver si tienen más información. Los errores en nuestros registros provienen al menos de algunos servidores de anuncios como:
lax1.ib.adnxs.com
showads.pubmatic.com
ad.yieldmanager.com
Entonces, tengo la impresión de que muchas compañías de medios están utilizando este software Eye Blaster. Busqué más en lo que supuestamente hace Eye Blaster, y es un tipo de tecnología que sincroniza numerosos anuncios en la página como si fueran un gran anuncio. Por ejemplo, una animación comenzará en un anuncio y terminará en otro. De todos modos, debe ser popular ya que muchas empresas publicitarias parecen estar usándolo y, como tal, probablemente tendría que desactivar muchos anunciantes.
Creo que la mejor manera de solucionar el problema sería que Media Mind lo solucione, pero no estoy seguro.
De todos modos, solo quería compartir mi experiencia y que este problema parece estar afectando a numerosos sitios web.
Para evitar ese seguimiento no deseado, debe colocar un archivo vacío ficticio en /eyeblaster/addineyev2.html
, o, si usa nginx
haga algo como
server {
...
location = /eyeblaster/addineyeV2.html { echo ""; }
}
o mejor
server {
...
location = /eyeblaster/addineyeV2.html { return 404 "404 - page not found";}
}
Si no tiene un alojamiento estático y no puede configurar un servidor proxy, puede poner una condición en el seguimiento de su página 404 a través de javascript
if (document.URL.indexOf(''/eyeblaster/addineyeV2.html'') == -1) {
doAnalyticsTracking();
}