Respuestas:
Editar : A partir del 16 de noviembre de 2011, la _trackPageLoadTime
función quedó obsoleta y su funcionalidad se estableció como configuración predeterminada . (Hablando funcionalmente, ha pasado de ser una función de suscripción voluntaria a una función de exclusión voluntaria).
_setSiteSpeedSampleRate
es la nueva función para configurar la frecuencia de muestreo en esta función; su valor predeterminado es 1
(como en 1%). Para optar por no usar esta función de Velocidad del sitio, debe pasar 0
a esta función:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
Desde el Centro de ayuda de Google Analytics :
Actualmente, este informe admite los siguientes navegadores: Chrome, Internet Explorer 9 y versiones anteriores de Internet Explorer con la barra Google instalada. Más específicamente, los informes de velocidad del sitio requieren navegadores que admitan la interfaz HTML5 NavigationTiming o que tengan instalada la barra de herramientas de Google Internet Explorer.
Por lo tanto, no implementa su propio temporizador, como lo tenían muchas soluciones anteriores de Homeback, para calcular cuánto tiempo tarda una página en cargarse. En su lugar, utiliza una nueva función HTML5, actualmente solo compatible en los casos enumerados anteriormente, llamada NavigationTiming.
EDITAR : esto ahora es compatible con Firefox 7
(Es importante tener en cuenta que no se ejecuta en todas las cargas; en cambio, actualmente muestra alrededor del 2% de las páginas vistas, aunque está configurado para intentar realizar un seguimiento de todas las cargas de página en el 10% de las visitas; ya que más navegadores admiten la API NavigationTiming, puede esperar que el porcentaje total de la muestra comience a acercarse al 10%).
Se accede a esta interfaz bajo el objeto DOM window.performance
(o, en versiones anteriores de Chrome, window.webkitPerformance
), usando el timing
atributo (entonces, window.performance.timing
). El objeto almacena los valores medidos de todos los tiempos de eventos de carga de la página clave, y Google Analytics resta 2 de los valores externos más importantes para juzgar la velocidad de carga de la página.
Para una carga de Mashable.com sin caché, aquí hay un ejemplo de lo que mide (en Chrome 11):
timing = {
connectEnd: 1306677079337,
connectStart: 1306677079337,
domComplete: 1306677083482,
domContentLoadedEventEnd: 1306677081765,
domContentLoadedEventStart: 1306677081576,
domInteractive: 1306677081576,
domLoading: 1306677079478,
domainLookupEnd: 1306677079337,
domainLookupStart: 1306677079337,
fetchStart: 1306677079337,
loadEventEnd: 1306677083483,
loadEventStart: 1306677083482,
navigationStart: 1306677079337,
redirectEnd: 0,
redirectStart: 0,
requestStart: 1306677079394,
responseEnd: 1306677079669,
responseStart: 1306677079476,
secureConnectionStart: 0,
unloadEventEnd: 0,
unloadEventStart: 0
}
Esos números son milisegundos de época, o milisegundos desde el 1 de enero de 1970. No he visto ninguna documentación sobre qué valores restan para generar sus valores, pero de una inspección superficial de ga.js , parece que es loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Para la muestra anterior, eso significa que registraría 4,14 segundos en la _trackPageLoadTime
llamada.
Si el nuevo recurso se va a obtener mediante HTTP GET o equivalente, fetchStart debe devolver la hora inmediatamente antes de que el agente de usuario comience a comprobar los cachés de aplicaciones relevantes. De lo contrario, debe devolver la hora en la que el agente de usuario comienza a buscar el recurso.
Este atributo debe devolver la hora inmediatamente anterior a la activación del evento de carga del documento actual. Debe devolver cero cuando el evento de carga aún no se ha disparado.
Para las fiestas curiosas, el orden parece ser el siguiente:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Para los valores 0 enumerados:
unloadEventStart
y unloadEventStart
muestra los tiempos de descarga de la carga de la página anterior (pero solo si esa página tiene el mismo origen que la actual).
redirectEnd
y redirectStart
medir la latencia agregada si hubo una redirección HTTP en la cadena de carga de la página.
secureConnectionStart
parece ser una medida opcional para medir el tiempo de conexión SSL.
secureConnectionStart
es una medida estándar, pero es opcional para el navegador (o lo que maneje el contenido) para informar. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
en una cola, y luego active todas las funciones en esa cola secuencialmente una vez que ga.js se haya cargado. Le permite cargar de formaga.js
asincrónica de forma segura .