評估工作階段和使用者參與度

如要瞭解使用者和工作階段範圍的概念總覽,包括 Google Analytics 如何根據閒置時間定義及嚴格限制工作階段,請參閱「維度和指標:關於 Analytics 工作階段」和「流量來源維度的範圍」指南。

本指南將說明開發人員面臨的特定挑戰,以及管理工作階段設定和被動追蹤的最佳做法。

將網頁層級維度與工作階段指標配對

最常見的報表細微差異之一,是您將網頁範圍維度 (例如網頁路徑和畫面類別) 與工作階段層級的「工作階段」指標配對時發生。

工作階段和檢視畫面定義

  • 「工作階段」會計算指定網頁路徑至少載入一次的不重複時間範圍。

  • 瀏覽次數 (網頁瀏覽次數) 會計算網頁路徑載入的累計總次數。

範例

假設單一工作階段的使用者瀏覽路徑如下:/home/products/home → 離開

如果這是唯一的工作階段,使用「網頁路徑和畫面類別」和「工作階段」或「瀏覽」指標設定的報表會顯示:

網頁路徑 工作階段 觀看次數
/home 1 2
/products 1 1
總計 (Google Analytics 排除重複計算) 1 3

如果將資料列加總,會得到 2 個工作階段,但系統會將資源的實際總計值重複計算,因此為 1。

自訂規則

  • 有網頁路徑的工作階段是指至少造訪路徑一次的不重複工作階段。
  • 「有到達網頁的工作階段」是指在路徑上開始的獨立工作階段。如要查看到達網頁流量,請一律使用「到達網頁 + 查詢字串」,而不是「工作階段 (網頁路徑)」
  • 「觀看次數」一律會計算總載入頻率。

開發人員和分析師的最佳做法

  • 範圍保持一致:如果目標是瞭解工作階段效能,請勿混用以使用者為範圍的流量維度 (例如「最初招攬到使用者預設管道群組」) 和以工作階段為範圍的指標 (例如「平均工作階段持續時間」)。
  • 在 DebugView 中驗證 session_start:在品質保證和驗證階段,使用 Google Analytics DebugView 等標準偵錯工具,確認 session_start 在工作階段啟動時正確觸發。

管理工作階段逾時的最佳做法

Google Analytics 工作階段的預設時間長度為 30 分鐘

我們不建議導入自訂程式碼,定期「ping」Google Analytics,以免發生閒置逾時。如果人為灌水工作階段指標,就會扭曲使用者行為資料。請改用 Google Analytics 內建功能,或以有意義的參與事件為目標,提供更簡潔的解決方案。

為什麼一般「keep-alive」連線偵測 (ping) 是不良做法

  • 核心指標失真:如果使用者離開分頁,他們確實處於閒置狀態。如果強制工作階段保持開啟,就會建立「殭屍工作階段」,並錯誤地提高平均工作階段時間。這會掩蓋使用者失去興趣或離開網站的真正時間點。
  • 對互動工作階段的影響:Google Analytics 將持續超過 10 秒、包含至少 2 次網頁瀏覽觸發重要事件 (舊稱「轉換事件」) 的工作階段定義為互動工作階段。如果人為保持工作階段開啟,工作階段就會顯示為互動狀態,進而提高參與度。
  • 資料膨脹和成本:如果持續觸發空白背景 Ping 事件,事件計數雜訊就會增加,且如果您將 Google Analytics 資料匯出至 BigQuery,資料倉儲成本也會提高。

何時追蹤被動參與度 (以及如何追蹤)

在某些情況下,使用者會積極與內容互動,但不會觸發標準的 Google Analytics 互動事件 (例如點擊或網頁變更)。在這些情況下,請擷取有意義的使用者啟動進度事件,而非一般的 keep-alive ping:

  • 長篇影片內容:如果使用者觀看內嵌的 45 分鐘影片,將會處於閒置狀態超過 30 分鐘,工作階段可能會過期。
  • 深入探討文章:使用者可能花費 40 分鐘閱讀技術指南,並緩慢捲動,但不會觸發任何瀏覽動作。
  • 互動式網路應用程式:監控即時動態消息、股票行情或資料資訊主頁的使用者,不必點選即可被動接收資訊。

如果使用者縮小瀏覽器視窗或切換分頁,背景 Ping 必須停止。

程式碼範例:可感知顯示狀態的事件連線偵測 (ping)

下列 JavaScript 模式示範如何追蹤被動參與度,並尊重分頁的可見度。根據特定用途調整追蹤間隔和參數值 (例如 5 分鐘或 300,000 毫秒),例如影片或長篇內容的典型長度:

const TRACKING_INTERVAL_MILLIS = 5 * 60 * 1000;

let engagementInterval;

function startEngagementTracking() {
  // Prevent duplicate intervals if tab becomes visible
  if (engagementInterval) return;

  engagementInterval = setInterval(() => {
    gtag('event', 'passive_engagement', {
      'engagement_time_msec': TRACKING_INTERVAL_MILLIS
    });
  }, TRACKING_INTERVAL_MILLIS);
}

function stopEngagementTracking() {
  if (engagementInterval) {
    clearInterval(engagementInterval);
    engagementInterval = null;
  }
}

// Start tracking initially if the page is visible
if (!document.hidden) {
  startEngagementTracking();
}

// Stop tracking when tab is hidden, resume when visible
document.addEventListener('visibilitychange', () => {
  if (document.hidden) {
    stopEngagementTracking();
  } else {
    startEngagementTracking();
  }
});

Google Analytics 加強型評估與自訂追蹤

Google Analytics 具有加強型評估功能,可自動處理某些被動追蹤情境,但有特定限制。

互動類型 加強型評估功能是否會處理? 需求 / 待辦事項
YouTube 影片嵌入 系統會在影片播放進度達到 10%、25%、50% 和 75% 時,自動觸發 video_startvideo_completevideo_progress 里程碑 (必須啟用 JS API 支援)。
非 YouTube 影片 (HTML5、Vimeo) 需要自訂導入。使用 gtag.js 以程式輔助方式觸發事件,或使用 Google 代碼管理工具 (GTM) 管理觸發條件。
標準網頁捲動 部分 scroll 事件只會在使用者瀏覽到網頁的 90% 處時觸發
朗讀進度增量 停用預設的 Google Analytics 捲動追蹤功能,並以程式輔助或在 Google 代碼管理工具中導入自訂捲動門檻 (例如 25%、50%、75%)。

最乾淨的替代方案:調整 Google Analytics 工作階段逾時限制

如果網站自然而然會提供長篇內容、影片課程或持續使用應用程式,就不必注入自訂指令碼。您可以在 Google Analytics 介面中調整預設的 30 分鐘門檻,最長可設為 7 小時 55 分鐘。如需操作說明,請參閱「調整工作階段逾時」。