使用者載入時間

本指南說明如何使用 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 (分析),指出目前網頁需要 3549 毫秒才能載入所有外部 JavaScript 依附元件:

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 (分析) 根據每日平均網頁瀏覽量處理的命中次數。