_gaq.push(['_ trackPageLoadTime'])はどのように機能しますか?


102

Google Analytics Site Speed機能はどのように機能し_gaq.push(['_trackPageLoadTime'])ますか?それがどのように機能するかについてのドキュメントはありますか?


2
@ stuken.yuriは、Googleアナリティクスの非同期呼び出しの構文です。基本的には、関数(名前)_trackPageLoadTimeをキューに追加し、ga.jsが読み込まれると、そのキュー内のすべての関数を順番に起動します。ga.js非同期で安全にロードできます。
Yahel

回答:


181

編集:2011年11月16日の時点で、この_trackPageLoadTime関数は非推奨になり、その機能はデフォルト設定として設定されました。(機能的に言​​えば、オプトイン機能からオプトアウト機能になりました。)

_setSiteSpeedSampleRateこの機能のサンプルレートを設定するための新しい関数です。デフォルト値は1(1%など)です。このサイト速度機能の使用をオプトアウトするには0、この関数にa を渡す必要があります。

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

Googleアナリティクスヘルプセンター

このレポートは現在、次のブラウザーをサポートしています:Chrome、Internet Explorer 9、およびGoogleツールバーがインストールされている以前のバージョンのInternet Explorer。具体的には、サイト速度レポートには、HTML5 NavigationTimingインターフェースをサポートするか、Google Internet Explorerツールバーがインストールされているブラウザーが必要です。

そのため、ページの読み込みにかかる時間を把握するために、以前の多くのホームバックソリューションのように独自のタイマーを実装していません。代わりに、NavigationTimingと呼ばれる新しいHTML5機能を使用します。現在、上記のケースでのみサポートされています。

編集:これはFirefox 7でサポートされるようになりました

(それはすべての負荷に実行されないことに注意することが重要、代わりに現在のページビューの2%の周りのサンプルを、それがするように設定されているがしようと訪問の10%上のすべてのページがロードを追跡するために、より多くのブラウザがNavigationTimingのAPIをサポートして、サンプリングされた割合の合計が10%に近づき始めることが期待できます。)

このインターフェイスには、属性(so、)を使用して、DOMオブジェクトwindow.performance(または以前のバージョンのChromeではwindow.webkitPerformance)の下でアクセスします。オブジェクトはすべての主要なページ読み込みイベント時間の測定値を保存し、Googleアナリティクスはより重要な2つの外部値を差し引いてページ読み込み速度を判断します。timingwindow.performance.timing

キャッシュなしでMashable.comをロードする場合の測定例(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
}

これらの数値はエポックミリ秒、つまり1970年1月1日からのミリ秒です。値を生成するために差し引く値についてのドキュメントは見ていませんが、ga.jsの大まかな検査からは次のようになりますloadEventStart-fetchStart

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

上記のサンプルについては、その手段は、それが計上する4.14秒_trackPageLoadTimeコール。

W3Cナビゲーションタイミング仕様から:

fetchStart属性

新しいリソースがHTTP GETまたは同等のものを使用してフェッチされる場合、fetchStartは、ユーザーエージェントが関連するアプリケーションキャッシュのチェックを開始する直前の時間を返す必要があります。それ以外の場合は、ユーザーエージェントがリソースのフェッチを開始した時刻を返す必要があります。

loadEventStart属性

この属性は、現在のドキュメントのloadイベントが発生する直前の時間を返す必要があります。ロードイベントがまだ発生していない場合は、ゼロを返す必要があります。

好奇心旺盛な関係者の場合、順序は次のようになります。

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

リストされている0の値の場合:

unloadEventStartそしてunloadEventStart、前のページのロードのアンロードの時間を表示します(ただし、そのページの起点が現在のページと同じである場合のみ)。

redirectEndredirectStartページのロードチェーンにHTTPリダイレクトがあった場合に追加されたレイテンシを測定します。

secureConnectionStart SSL接続時間を測定するためのオプションの測定のようです。


6
あなたは本気で男をロックします。このような手の込んだ対応に感謝します。
2010年

secureConnectionStart標準的な測定ですが、ブラウザ(またはコンテンツを処理するもの)がレポートするかどうかはオプションです。 w3c-test.org/webperf/specs/NavigationTiming/...
エリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.