1. ホーム
  2. javascript

[解決済み] _gaq.push(['_trackPageLoadTime'])はどのように機能するのですか?

2022-12-05 17:10:41

質問

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

どのように解決するのですか?

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

_setSiteSpeedSampleRate はこの機能でサンプルレートを設定するための新しい関数です。そのデフォルト値は 1 (1%のように)です。このサイトスピード機能の利用をやめるには、サイトスピードに 0 を渡す必要があります。

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


からは Google アナリティクス ヘルプセンター :

<ブロッククオート

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

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

EDIT : でサポートされるようになりました。 Firefox 7

(重要なのは、すべての読み込みで実行されるわけではないことです。代わりに、現在はページビューの約 2% をサンプリングするように設定されています。 試す に設定されています。NavigationTiming API をサポートするブラウザが増えると、サンプリングされる割合の合計が 10% に近づき始めることが予想されます)。

このインターフェイスは、DOM オブジェクトである window.performance (または、Chrome の以前のバージョンでは window.webkitPerformance ) を使って timing 属性(だから window.performance.timing ). このオブジェクトには、主要なページロードイベントの時間すべての測定値が格納されており、Google Analyticsはページロード速度を判断するために、より重要な外側の値のうち2つを差し引いたものを表示します。

キャッシュなしで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 Navigation Timing 仕様より。

fetchStart属性

新しい リソースを取得する場合、HTTP GET またはそれと同等の方法で新しいリソースを取得する場合、fetchStart は は、ユーザエージェントが任意のリソースのチェックを開始する直前の時刻を返す必要があります。 ユーザエージェントが をチェックし始める直前の時刻を返さなければなりません。 そうでない場合は ユーザエージェントがリソースの取得を開始したとき の時刻を返さなければなりません。

loadEventStart属性

この 属性は のロードイベントが発生する直前の時刻を返さなければなりません。 が発生する直前の時刻を返さなければなりません。それは を返さなければならない。 がまだ発生していない場合はゼロを返さなければなりません。

好奇心旺盛な人のために、順序は次のようになるようです。

<ブロッククオート

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

記載されている0個の値に対して

unloadEventStart そして unloadEventStart は、前のページのロードとアンロードの時間を表示します (ただし、そのページが現在のページと同じオリジンを持つ場合のみ)。

redirectEndredirectStart は、ページのロードチェーンにHTTPリダイレクトがあった場合に追加される待ち時間を測定します。

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