2010-08-23 22 views
11

Estoy trabajando en un sitio web que genera tráfico para sitios asociados. Cuando se hace clic en el logotipo de un sitio asociado en nuestro sitio, abrimos el sitio asociado en una página que contiene nuestro encabezado básico y el sitio asociado dentro de un iframe. Antes solo estábamos abriendo el sitio de socio en una nueva ventana. Todo genial hasta el momento.iFrames + Google Analytics + Cookies + P3P

La mayoría de los sitios socios usan Google Analytics para rastrear el tráfico que les enviamos y poco después comenzamos a abrir sitios dentro de iframe. Nuestros socios informaron que Google Analytics ya no rastrea datos (o rastrea solo una fracción de los datos).

He hecho mi parte justa de la tarea/investigación en googleverse y encontré el problema conocido con Google Analytics o las cookies en general en todos los dominios e iframes.

Estoy tratando de resolver este problema y la única solución a la que se ha hecho referencia es el uso de encabezados P3P.

  1. Primero, ¿a dónde van los encabezados P3P? En las páginas de mis sitios o en las páginas de sitios asociados. Como tenemos muchos sitios asociados (grandes y pequeños), no será práctico si la solución es colocar etiquetas en cada uno de estos sitios. Puedo agregarlos fácilmente a la página que contiene el iframe.

  2. Entre los diversos generadores de encabezado p3p hay uno confiable que usted recomiende?

  3. ¿Hay alguna forma de solucionar este problema? Realmente necesito abrir los sitios en iframes y, obviamente, los sitios asociados realmente necesitan rastrear el tráfico.

Gracias por la ayuda.

+0

@eduardocereto: Se agregaron más ejemplos de código. – Mrchief

Respuesta

7

Lamentablemente, tanto usted como el sitio asociado deben configurar los encabezados.

Alternativas:

  • Si no desea que el sitio asociado para establecer cabeceras, una opción es bajar el nivel de seguridad (en IE) o permitir el acceso a las cookies de 3 ª parte (en FF) en el navegador configuraciones. Cada cliente tiene que hacer esto, por lo que esta puede no ser una solución atractiva.
  • Use localStorage (HTML5 thingy: los navegadores que admiten localStorage permiten el acceso tanto al sitio como al contenido del iFrame que se almacena en localStorage). Esto puede no ser factible a corto plazo, ya que requiere que usted y su sitio asociado implementen la información de guardado/lectura en localStorage y no todos los exploradores lo admiten (navegadores IE más antiguos especialmente).

para agregar un encabezado política básica (lo ideal es que generar su propia política, que es sencillo - compruebe el artículo # 2 abajo)

en php añadir esta línea:

<?php header('P3P: CP="CAO PSA OUR"'); ?> 

en ASP.Net:

HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\""); 

en HTML páginas:

<meta http-equiv="P3P" content='CP="CAO PSA OUR"'> 

con respecto a sus otras preocupaciones:

1)P3P cabeceras se refieren a la cabecera HTTP que ofrece algo que se llama a compact policy en el navegador. Sin una política así, IE (más notablemente) y otros navegadores bloquearán el acceso a cookies de terceros (un término usado para referirse a las cookies de iFrame) para proteger las preocupaciones de privacidad del usuario.

Por lo que va de Google Analytics, tanto su sitio y el sitio pareja aún tiene que configurar cross domain tracking como se indica en su documentación.

2) Puede utilizar esta cabecera básica política (lo cual es suficiente para fijar las cookies de iFrame):

P3P: CP = "CAO PSA NUESTRO"

o generar tu propio. Si no está seguro de lo que significan esos términos, consulte this.

Para generar dicha política, puede usar editores en línea como p3pedit.com o IBM tool que presentan un conjunto de preguntas y le permiten presentar respuestas. Esto facilita la generación rápida de dicha política. Puede generar el policy XML, compact policy y más.

3) Puede probar las dos alternativas mencionadas anteriormente.

pasos para agregar la política a todo el sitio

  1. generar una política compacta (utilizando una de las herramientas mencionadas anteriormente) o utilizar la política básica
  2. En IIS, haga clic la página, directorio o sitio deseado, y luego haga clic en Propiedades.
  3. En la pestaña Encabezados HTTP, haga clic en Agregar.
  4. En el campo Nombre del encabezado personalizado, escriba P3P.
  5. En el campo Valor del encabezado personalizado, ingrese su Política Compact P3P (o la básica desde arriba) y luego haga clic en Aceptar.
  6. En Apache, una línea mod_header como esto hará:
Header append P3P "CP=\"CAO PSA OUR\"" 

THS Hope ayuda.

+0

Buena respuesta. Me di cuenta de que el CP = "CAO PSA NUESTRO", suele ser suficiente para evitar la limitación de cookies. – Eduardo

+2

¿Hay alguna razón para crear el archivo P3P completo que no se ajuste a una especificación que a nadie le importa? – Eduardo

+1

¡El motivo para crear un archivo P3P completo es que te importe! :) – Mrchief