使用 gtag.js 的 Cookie 和使用者身分識別功能

gtag.js 會使用 Cookie 來識別所有瀏覽工作階段中的不重複使用者。本頁說明如何自訂 Cookie 設定。

下表列出 gtag.js 使用的預設 Cookie 欄位值:

欄位名稱 值類型 預設值
cookie_domain string auto
cookie_expires integer 63072000 (兩年,以秒為單位)
cookie_prefix string _ga
cookie_update boolean true
cookie_flags string

如要變更任何值,請更新屬性的 config,在參數清單中指定這些值。例如:

gtag('config', 'GA_MEASUREMENT_ID', {
  'cookie_prefix': 'MyCookie',
  'cookie_domain': 'blog.example.com',
  'cookie_expires': 28 * 24 * 60 * 60  // 28 days, in seconds
});

根據預設,gtag.js 會啟用自動 Cookie 網域設定。啟用之後,gtag.js 就會在最高的網域上設定 Cookie,舉例來說,如果網站網址是 blog.example.com,gtag.js 就會在 example.com 網域上設定 Cookie。如果 gtag.js 偵測到您是在本機執行伺服器 (例如 localhost),就會自動將 cookie_domain 設為 'none',讓 gtag.js 使用完整的網域從文件位置設定 Cookie。

如要關閉自動 Cookie 網域設定,請更新資源的 config,指定 cookie_domain 參數的值:

gtag('config', 'GA_MEASUREMENT_ID', {
  'cookie_domain': 'blog.example.com'
});

為避免與其他 Cookie 產生衝突,您可能需要變更 Cookie 前置字元。Cookie 前置字元會在 gtag.js 設定的 Cookie 前面加上這個前置字元。例如,Google Analytics (分析) 使用的 ID Cookie 預設名稱為 _ga。這個程式碼會將 Cookie 命名為 example_ga

gtag('config', 'GA_MEASUREMENT_ID', {
  'cookie_prefix': 'example'
});

每次載入網頁時,Cookie 到期時間都會更新為目前時間加上 cookie_expires 欄位的值。也就是說,如果 cookie_expires 設為一週,而使用者在五天內使用同一個瀏覽器造訪網站,則該 Cookie 將可再使用一週,而且在 Google Analytics (分析) 中會顯示為同一訪客。如果同一名使用者在原始 Cookie 到期後再次造訪,系統會建立新的 Cookie,且在 Google Analytics (分析) 中,系統會將第一次和第二次的造訪記錄為不同的訪客。

如果將 cookie_expires 值設為 0 (零) 秒,Cookie 會變為「以工作階段為基礎的 Cookie」,並在目前的瀏覽器工作階段結束時到期。

gtag('config', 'GA_MEASUREMENT_ID', {
  'cookie_expires': 0
});

如果 cookie_update 設為 true (預設值),gtag.js 就會在每次載入網頁時更新 Cookie。而 Cookie 到期時間也會隨之更新,根據最近一次造訪網站的時間進行設定。舉例來說,如果將 Cookie 到期時間設為一週,而使用者每五天就使用同一個瀏覽器造訪網站,則 Cookie 到期時間會在每次造訪時更新,因此永遠不會過期。

如果設為 false,系統就不會在每次載入網頁時更新 Cookie,這會根據使用者首次造訪網站的時間,決定 Cookie 到期時間。

gtag('config', 'GA_MEASUREMENT_ID', {
  'cookie_update': false
});

設定時可將其他標記附加到 Cookie。標記必須以半形分號分隔。

gtag('set', {
  'cookie_flags': 'SameSite=None;Secure'
});

設定使用者 ID

User ID 是代表使用者的不重複永久 ID 字串,且不得用來識別個人身分。分析不同裝置的工作階段群組。如要瞭解導入 User ID 的原因,請參閱「使用 User ID 功能的好處」一文。

若要使用 gtag.js 導入 User ID,請更新資源的 config 以設定 User ID:

gtag('config', 'GA_MEASUREMENT_ID', {
  'user_id': 'USER_ID'
});

您可以將 gtag.js 設為在提供使用者同意聲明前,讓 Cookie 不要讀取或寫入 Cookie。詳情請參閱「根據同意聲明調整代碼行為」一文