_Gaq.push (['_ trackPageLoadTime']) nasıl çalışır?


102

Google Analytics Site Hızı özelliği nasıl _gaq.push(['_trackPageLoadTime'])çalışır? Nasıl çalıştığına dair herhangi bir belge var mı?


2
@ stuken.yuri, Google Analytics Eşzamansız çağrısının sözdizimidir. Temel olarak şu anlama gelir: işlevi (adı) _trackPageLoadTimebir kuyruğa ekleyin ve ardından, ga.js yüklendikten sonra bu kuyruktaki tüm işlevleri sırayla çalıştırın. ga.jsEşzamansız olarak güvenli bir şekilde yüklemenizi sağlar .
Yahel

Yanıtlar:


181

Düzenleme : 16 Kasım 2011 itibariyle , _trackPageLoadTimeişlev kullanımdan kaldırılmış ve işlevselliği varsayılan ayar olarak belirlenmiştir . (İşlevsel olarak konuşursak, bir tercih özelliği olmaktan çıkma özelliği haline geldi.)

_setSiteSpeedSampleRatebu özellikte örnek oranını ayarlamak için yeni bir işlevdir; varsayılan değeri 1(% 1'de olduğu gibi). Bu Site Hızı özelliğini kullanmaktan vazgeçmek için 0, bu işleve bir geçmeniz gerekir :

_gaq.push(["_setSiteSpeedSampleRate", 0]);

Gönderen Google Analytics Yardım Merkezi'ndeki :

Bu rapor şu anda aşağıdaki tarayıcıları desteklemektedir: Chrome, Internet Explorer 9 ve Google Araç Çubuğu'nun yüklü olduğu Internet Explorer'ın önceki sürümleri. Daha spesifik olarak, Site Hızı raporları, HTML5 NavigationTiming arayüzünü destekleyen veya Google Internet Explorer araç çubuğunun yüklü olduğu tarayıcılar gerektirir.

Bu nedenle, bir sayfanın yüklenmesinin ne kadar sürdüğünü anlamak için önceki birçok geri dönüş çözümünün yaptığı gibi kendi zamanlayıcısını uygulamıyor. Bunun yerine, şu anda yalnızca yukarıda listelenen durumlarda desteklenen, NavigationTiming adlı yeni bir HTML5 özelliğini kullanır.

DÜZENLEME : Bu artık Firefox 7'de destekleniyor

(Her yüklemede çalışmadığını unutmayın; bunun yerine, şu anda sayfa görüntülemelerinin yaklaşık% 2'sini örneklemektedir, ancak ziyaretlerin% 10'unda tüm sayfa yüklemelerini izlemeye çalışacak şekilde yapılandırılmıştır ; daha fazla tarayıcı NavigationTiming API'sini desteklediğinden, toplam örnekleme yüzdesinin% 10'a yaklaşmaya başlamasını bekleyebilirsiniz.)

Bu arayüze DOM nesnesi altında window.performance(veya Chrome'un önceki sürümlerinde window.webkitPerformance) timing(so, window.performance.timing) özniteliği kullanılarak erişilir . Nesne, tüm temel sayfa yükleme olay zamanlarının ölçülen değerlerini depolar ve Google Analytics, sayfa yükleme hızını değerlendirmek için daha önemli dış değerlerden 2'sini çıkarır.

Önbelleği olmayan bir Mashable.com yüklemesi için, neyi ölçtüğüne dair bir örnek aşağıda verilmiştir (Chrome 11'de):

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
}

Bu numaralar Ben onların değerlerini üretmek için çıkarma değerleri olarak hangi herhangi bir belge görmedim 1970. 1 Ocak beri çağ milisaniye veya milisaniye, ama bir üstünkörü muayene gelen ga.js'den , bu gibi görünüyor loadEventStart-fetchStart:

h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);

Yukarıdaki örnek için bu , aramada 4,14 saniye kaydedeceği anlamına gelir _trackPageLoadTime.

W3C Navigasyon Zamanlaması spesifikasyonundan:

fetchStart özniteliği

Yeni kaynak HTTP GET veya eşdeğeri kullanılarak getirilecekse, fetchStart, kullanıcı aracısı ilgili uygulama önbelleklerini kontrol etmeye başlamadan hemen önce zamanı döndürmelidir. Aksi takdirde, kullanıcı aracısının kaynağı almaya başladığı zamanı döndürmesi gerekir.

loadEventStart özniteliği

Bu öznitelik, geçerli belgenin yükleme olayının tetiklenmesinden hemen önceki zamanı döndürmelidir. Yükleme olayı henüz tetiklenmediğinde sıfır döndürmelidir.

Meraklı taraflar için sıralama aşağıdaki gibi görünüyor:

connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd

Listelenen 0 değerler için:

unloadEventStartve unloadEventStartönceki sayfa yüklemesinin boşaltma zamanlarını gösterin (ancak bu sayfanın mevcut sayfayla aynı orijine sahip olması durumunda).

redirectEndve redirectStartsayfa yükleme zincirinde bir HTTP yönlendirmesi varsa eklenen gecikmeyi ölçün.

secureConnectionStart SSL bağlantı süresini ölçmek için isteğe bağlı bir ölçüm gibi görünüyor.


6
Harika dostum, cidden. Böylesine ayrıntılı bir yanıt için teşekkürler.
Sid

secureConnectionStartstandart bir ölçümdür, ancak tarayıcının (veya içeriği işleyen her şeyin) rapor etmesi isteğe bağlıdır. w3c-test.org/webperf/specs/NavigationTiming/…
Eric
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.