Cookie

gtag.js 库使用 Cookie 跨浏览会话识别唯一身份用户。本页介绍了如何自定义 Cookie 设置。

下表显示了 gtag.js 使用的默认 Cookie 字段值:

字段名称 值类型 默认值
cookie_domain 字符串 自动
cookie_expires 整数 对于 Google Analytics(分析):默认值为 63072000(即两年,以秒为单位)。对于转化:默认值为 7776000(即 90 天,以秒为单位)。
cookie_prefix 字符串 对于转化:默认值为 _gcl。注意:Google Analytics(分析)Cookie 不使用默认前缀。
cookie_update 布尔值 true

要更改其中任何值,请更新 gtag config 命令以在参数列表中加以指定。例如:

gtag('config', '<TARGET_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 网域配置,请将 cookie_domain 参数添加到 config

gtag('config', '<TARGET_ID>', {
  'cookie_domain': 'blog.example.com'
});

为避免与其他 Cookie 产生冲突,您可能需要更改 Cookie 前缀。例如,以下代码会在 Cookie 名称前附加“example”(例如 example_gaexample_aw 等):

gtag('config', '<TARGET_ID>', {
  cookie_prefix: 'example'
});

每次加载网页时,Cookie 过期时间都会更新为当前时间加上 cookie_expires 字段的值。也就是说,如果将 cookie_expires 设置为 1 周,假使某位用户在 5 天内使用同一浏览器进行访问,那么 Cookie 的有效期将从访问时间起延续 1 周,这些访问在 Google Analytics(分析)中将显示为由同一用户进行。如果该用户在原始 Cookie 过期之后访问,系统会新建一个 Cookie,那么该用户的第一次访问和第二次访问在 Google Analytics(分析)中将显示为来自不同的访问者。

如果您将 cookie_expires 值设置为 0(零)秒,Cookie 将变成基于会话的 Cookie,并在当前浏览器会话结束后马上过期。

gtag('config', '<TARGET_ID>', {
  cookie_expires: 0
});

cookie_update 设置为 true(默认值)时,gtag.js 会在每次网页加载时更新 Cookie。这样一来,系统在更新 Cookie 有效期时会以最近一次访问网站的时间为起点。例如,如果将 Cookie 有效期设置为 1 周,假使某位用户每 5 天使用同一浏览器访问一次网站,那么 Cookie 有效期在用户每次访问时都会更新,实际上将永远不会过期。

设置为 false 时,Cookie 不会在每次网页加载时更新。这样一来,Cookie 有效期会以用户首次访问网站的时间为起点。

gtag('config', '<TARGET_ID>', {
  cookie_update: false
});