Respostas:
Editar : em 16 de novembro de 2011, a _trackPageLoadTime
função foi descontinuada e sua funcionalidade foi definida como uma configuração padrão . (Falando funcionalmente, deixou de ser um recurso opcional para ser um recurso opcional.)
_setSiteSpeedSampleRate
é a nova função para definir a taxa de amostragem neste recurso; seu valor padrão é 1
(como em 1%). Para optar por não usar o recurso Velocidade do site, você deve passar um 0
para esta função:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
Na Central de Ajuda do Google Analytics :
Este relatório atualmente oferece suporte aos seguintes navegadores: Chrome, Internet Explorer 9 e versões anteriores do Internet Explorer com a Barra de Ferramentas Google instalada. Mais especificamente, os relatórios de velocidade do site exigem navegadores que suportem a interface HTML5 NavigationTiming ou que tenham a barra de ferramentas do Google Internet Explorer instalada
Portanto, ele não implementa seu próprio cronômetro, como muitas soluções anteriores de homeback faziam, para descobrir quanto tempo leva para uma página carregar. Em vez disso, ele usa um novo recurso HTML5, atualmente suportado apenas nos casos listados acima, chamado NavigationTiming.
EDITAR : Agora é compatível com Firefox 7
(É importante observar que ele não é executado em todos os carregamentos; em vez disso, ele atualmente obtém amostras de cerca de 2% das visualizações de página, embora esteja configurado para tentar rastrear todos os carregamentos de página em 10% das visitas; à medida que mais navegadores suportam a API NavigationTiming, você pode esperar que a porcentagem total da amostra comece a se aproximar de 10%.)
Essa interface é acessada sob o objeto DOM window.performance
(ou, em versões anteriores do Chrome, window.webkitPerformance
), usando o timing
atributo (so, window.performance.timing
). O objeto armazena valores medidos de todos os tempos de evento de carregamento da página principal, e o Google Analytics subtrai 2 dos valores externos mais importantes para julgar a velocidade de carregamento da página.
Para carregar o Mashable.com sem cache, aqui está um exemplo do que ele mede (no 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
}
Esses números são milissegundos de época, ou milissegundos desde 1 de janeiro de 1970. Não vi nenhuma documentação sobre quais valores eles subtraem para gerar seus valores, mas de uma inspeção rápida do ga.js , parece que é loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Para o exemplo acima, isso significa que registraria 4,14 segundos na _trackPageLoadTime
chamada.
Se o novo recurso for buscado usando HTTP GET ou equivalente, fetchStart deve retornar a hora imediatamente antes que o agente do usuário comece a verificar quaisquer caches de aplicativos relevantes. Caso contrário, ele deve retornar a hora em que o agente do usuário começa a buscar o recurso.
Este atributo deve retornar a hora imediatamente antes do evento de carregamento do documento atual ser disparado. Deve retornar zero quando o evento de carregamento ainda não foi disparado.
Para curiosos, a ordem parece ser a seguinte:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Para os 0 valores listados:
unloadEventStart
e unloadEventStart
mostra os tempos de descarregamento do carregamento da página anterior (mas apenas se essa página tiver a mesma origem da atual.)
redirectEnd
e redirectStart
medir a latência adicionada se houver um redirecionamento HTTP na cadeia de carregamento da página.
secureConnectionStart
parece ser uma medida opcional para medir o tempo de conexão SSL.
secureConnectionStart
é uma medida padrão, mas é opcional para o navegador (ou qualquer outra coisa que lida com o conteúdo) relatar. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
em uma fila e, em seguida, disparar todas as funções nessa fila sequencialmente, depois que ga.js for carregado. Ele permite que você carregue com segurança de formaga.js
assíncrona.