使用者載入時間

本指南說明如何使用 analytics.js 評估時間範圍。

總覽

研究顯示,縮短網頁載入時間可提升網站的整體使用者體驗。Google Analytics (分析) 提供多種強大的報表,可自動評估網頁載入時間並製作報表。不過,您也可以評估自訂時間資訊,評估網站特有的成效。

使用者載入時間可讓開發人員使用 analytics.js 程式庫評估一段時間。這對於開發人員來說特別實用,可以測量提出 AJAX 要求及載入網路資源所花費的延遲時間或時間。

導入作業

您可以使用 send 指令,並指定 timinghitType 來傳送使用者時間命中。send 指令的 timing 命中類型的簽名如下:

ga('send', 'timing', [timingCategory], [timingVar], [timingValue], [timingLabel], [fieldsObject]);

使用者載入時間欄位

下表統整了使用者時間欄位:

欄位名稱 值類型 必要 說明
timingCategory text 用來將所有使用者時間變數歸類到邏輯群組的字串 (例如 'JS Dependencies')。
timingVar text 用於識別所記錄變數的字串 (例如 'load')。
timingValue 整數 回報給 Google Analytics (分析) 所需的經過毫秒數 (例如 20)。
timingLabel text 用於在報表中視覺化呈現使用者時間的彈性字串,例如 'Google CDN'

例:

下列指令會將使用者時間命中傳送至 Google Analytics (分析),指出目前網頁在載入所有外部 JavaScript 依附元件的時間為 3549 毫秒:

ga('send', 'timing', 'JS Dependencies', 'load', 3549);

請注意,就像所有 send 指令一樣,您在便利參數中傳送的欄位也可在 fieldsObject 中指定。上述指令可重新撰寫為:

ga('send', {
  hitType: 'timing',
  timingCategory: 'JS Dependencies',
  timingVar: 'load',
  timingValue: 3549
});

測量時間

傳送使用者時間資料時,您必須在 timingValue 參數中指定花費的毫秒數。決定如何撰寫程式碼來擷取這個期間的間隔。

如要這麼做,最簡單的方法就是在一段時期的開始時建立時間戳記,然後在該時間範圍的結尾另外建立時間戳記。接著,您可以取兩個時間戳記的差異,藉此取得時間。

大部分新式瀏覽器都支援 Navigation Timing API,其中包括 window.performance 物件中的方法,可透過高解析度時間資料評估網頁效能。

以下範例使用 performance.now() 方法,會傳回從頁面初次開始載入以來經過的時間:

// Feature detects Navigation Timing API support.
if (window.performance) {
  // Gets the number of milliseconds since page load
  // (and rounds the result since the value must be an integer).
  var timeSincePageLoad = Math.round(performance.now());

  // Sends the timing hit to Google Analytics.
  ga('send', 'timing', 'JS Dependencies', 'load', timeSincePageLoad);
}

取樣注意事項

Google Analytics (分析) 會在處理過程中對時間命中取樣,確保這項功能的系統資源能夠公平地分佈。

時間命中的取樣率,取決於資源前一天內收到的網頁瀏覽命中總數。下表概述系統如何判定取樣率:

網頁瀏覽命中總數 (前一天) 可處理的時間命中數量上限
0 - 1,000 多達 100 個
1,000 至 100,000 位 網頁瀏覽命中總數的 10%
100,000 - 1,000,000 10,000
超過 1,000,000 人 網頁瀏覽命中總數的 1%

限制傳送的命中數

為避免傳送無法處理的 Google Analytics (分析) 命中資料,analytics.js 可讓您控制透過 sampleRatesiteSpeedSampleRate 設定選項傳送的命中百分比。這些欄位預設為 100% 和 1%。您可以調整這些值,讓 Google Analytics (分析) 根據您的平均每日網頁瀏覽量計數,提高相應的時間命中次數。