2010-10-20 8 views
5

Si tengo html como el siguiente en mi propio sitio, ¿cómo es que puedo rastrear el evento? ¿Es posible que el navegador comience a cargar el http://google.com en la misma ventana antes de realizar la solicitud de seguimiento ya que es asíncrona?Cómo la api asíncrona de Google Analytics puede rastrear los enlaces de clics

<a href="http://google.com" onclick="_gaq.push(['_trackEvent', 'category', 'event']);">click</a> 

En caso de utilizar la API síncrona el navegador, obviamente, espera hasta que se corrió la secuencia de comandos en el onclick, pero no puedo envolver mi cabeza en torno a éste.

+0

me pregunté sobre eso también. Creo que tal vez haya un controlador para el evento onunload para verificar el tamaño de la matriz junto con una función que recibe un llamado en intervalos regulares para verificar si hay algo en la matriz. –

+0

Al inspeccionar la actividad de la red en Fiddler, el código de seguimiento se envía correctamente a Google Analytics en Firefox e IE, pero no en Chrome (versión probada 17). Por lo tanto, parece que no podremos rastrear el evento de clic si un usuario hace clic en una etiqueta de anclaje que carga otra página. –

Respuesta

1

Al cargar el google-analytics.com/ga.js -script que reemplaza la variable de matriz _gaq con un objeto. Ese objeto tiene una función llamada push, donde está ocurriendo toda la magia.

Si desea ver el código que puede hacer alert(_gaq.push) después de ga.js ha sido cargado.

Por cierto, si sirve sus páginas comprimidas es posible que desee comprobar cómo incluir el script ga.js en shortest possible way.

+0

Entonces, ¿el seguimiento de eventos es sincrónico después de todo cuando se carga ga.js? No permite que el controlador onclick regrese hasta que tenga respuesta de los servidores ga o qué? – JtR

Cuestiones relacionadas