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

如需使用者和工作階段範圍的概念總覽,包括 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 功能,或指定有意義的參與事件,提供更簡潔的解決方案。

為什麼一般「保持連線」連線偵測 (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_start、video_complete 和 video_progress 里程碑 (必須啟用 JS API 支援)。
非 YouTube 影片 (HTML5、Vimeo) 否 需要自訂導入。使用 gtag.js 以程式輔助方式觸發事件,或使用 Google 代碼管理工具 (GTM) 管理觸發條件。
標準頁面捲動 部分 只有在使用者捲動至網頁 90% 的位置時,才會觸發單一 scroll 事件。
朗讀進度 否 停用預設的 Google Analytics 捲動追蹤功能,並透過程式輔助或在 GTM 中導入自訂捲動門檻 (例如 25%、50%、75%)。

最乾淨俐落的做法:調整 Google Analytics 工作階段逾時限制

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