2011-03-06 19 views
6

Google Analytics presenta una vista de 'Análisis de página' para mostrar las tasas de clics y otra información directamente en su propio sitio web. Estoy buscando construir algo similar que registre todos los clics.¿Cómo funciona Google Analytics In-Page Analytics?

El problema es que no estoy seguro de cómo Google implementa sus vistas de In-Page Analytics: parecen usar un iframe, o dos, y han inyectado su propio HTML y JavaScript en otras páginas.

¿Cómo se puede hacer para lograrlo? ¿Son los marcos la mejor manera de hacerlo? ¿Cómo evitaría las políticas de seguridad de origen idéntico de Javascript si domainX está intentando manipular la representación de domainY?

+0

Si va a hacer algo así, entonces use eventos personalizados para rastrear. Publiqué más información antes: http://stackoverflow.com/questions/5132388/how-to-track-where-on-page-was-link-clicked/5132409#5132409 – CarneyCode

+0

La respuesta al título de esta pregunta es " Por lo general, no es así ". – Yahel

+0

Funciona bien en los numerosos sitios en los que lo he probado ... – CJD

Respuesta

-1

I piensa esto se puede hacer de manera bastante simple. Inyecta javascript que garantiza que cada vez que un usuario haga clic en un enlace, solicite o publique en una página especial del iframe. Algo así (jquery):

$('a').live('click', function() { 
    $('#' + iframeid).attr('http://somedomain.com/my_magic_page.php?linkClicked=' + $(this).attr('id') + '&page=' + window.location.toString()); 
} 

No sé si funcionará bien.

+0

No creo que esto funcione. La función jQuery attr toma uno o dos parámetros. Si llama con un parámetro que necesita ser un mapa de atributos que desea establecer, o un nombre de atributo que desea obtener. Tal vez estoy equivocado, pero parece que este ejemplo no es correcto. – Briganti

9

Esta es una pregunta muy interesante. Tienes razón, la misma política de origen prohíbe inyectar JS. Pero Google Analytics tiene una ventaja: ya está en su sitio (el código del rastreador).

Así que aquí es cómo funciona (por lo que puedo ver):

  • Al abrir análisis dentro de la página, que se toman primero en https://www.google.com/analytics/reporting/iyp_launch
  • Esta página redirige a su sitio y agrega una sesión de Google en la url (como http://example.com/#gaso=THESESSION
  • El rastreador ahora comprueba si el referente es iyp_launch y se establece gaso. En caso afirmativo, no solo carga el rastreador, sino que también inyecta el JS necesario para solicitar más datos y renderizar el superposiciones. De esta manera, el JS se ejecuta dentro del marco (o ventana) y evita el p de origen olicy.
  • Dado que Google Anaytics ya realiza un seguimiento de su visita (es decir, lo identifica como el mismo usuario que vio la página anterior), puede inyectar el JS adicional junto con el rastreador hasta que termine su visita (es decir, cierre la página) . De esta manera, las superposiciones se pueden representar de nuevo después de hacer clic en un enlace.

así que supongo que la conclusión es la siguiente: Las cosas como en la página de análisis se puede hacer si el propietario del sitio ya le ha confiado mediante la adición de una secuencia de comandos que controles a su sitio web (esto es un buen ejemplo por qué hay que ten mucho cuidado antes de hacer tal cosa). Si no tiene ese tipo de acceso al sitio, podría ser imposible eludir la política del mismo origen, al menos, no puedo pensar en otra forma de hacerlo (excepto tal vez el envío de todas las solicitudes a través de su servidor). , pero eso lleva a otros problemas importantes).