欢迎访问我的博客,有问题可以在任意文章底部留言评论

Google Analytics 4 设置cookieFlags

Google Analytics 4 Haran 7年前 (2020-03-25) 6090次浏览 2个评论

什么是cookieFlags

cookieFlags是GA4提供的一项配置,用于自定义 GA4第一方 Cookie的属性。通过该设置,可以控制 Cookie 的有效期、作用域、安全策略及跨站访问权限等行为。

可配置字段

字段

描述

实例值

GA4中的字段

Expires Cookie的最长有效期,由日期字符串制定 Expires=Tue, 24 Mar 2020 13:37:28 GMT cookieExpires cookie_expires
Max-Age Cookie的最长有效期,以秒为单位 Max-Age=7200
Domain Cookie写入的域 Domain=ichdata.com cookieDomain cookie_domain
Path Cookie的写入路径 Path=/
Secure 如果仅通过HTTPS发出请求,则cookie仅发送到服务器。 Secure
HttpOnly 阻止使用JavaScript访问cookie HttpOnly
SameSite 指定可以访问cookie的上下文。 SameSite=Strict

配置示例

max-age=7200;domain=ichdata.com;path=/;secure;samesite=none

含义: 在 ichdata.com的根路径下创建Cookie,有效期为两小时(7200 秒),仅通过HTTPS传输,且 SameSite=None 允许在第三方上下文中发送该Cookie。

简单理解:这样配置后,GA4的第一方Cookie能够被第三方上下文访问和使用

为什么要设置 cookieFlags

核心原因在于Chrome浏览器 SameSite 规则的变化。

在新版Chrome浏览器中:

如果Cookie未显式设置SameSite属性,浏览器将默认将其视为SameSite=Lax。

这意味着该Cookie无法在第三方上下文中被读取。

GA4使用的第一方Cookie _ga 默认未设置 SameSite 属性,因此被浏览器默认按 Lax 处理。在跨站或跨域场景下(如嵌入式表单、第三方登录门户等),第三方上下文无法读取该 Cookie,导致无法识别同一用户。

解决方法: 通过cookieFlags显式设置SameSite=None; Secure,使GA4的第一方Cookie在第三方上下文中保持可用。

如何设置cookieFlags

方式一:gtag.js 直接配置

在GA4配置代码中添加 cookie_flags参数:

gtag('config', 'G-N2A3FMNDT5', {
  cookie_flags: 'max-age=7200;secure;samesite=none'
});

方式二:在GTM中设置

在GTM的 GA4 配置代码(Google Tag / GA4 Configuration)中,找到 「Cookie 设置」 相关字段:

Google Analytics 4 设置cookieFlags

填入所需参数,如:max-age=7200;secure;samesite=none,保存并发布。

设置前后效果对比

添加前:

Google Analytics 4 设置cookieFlags

Samesite为空的,默认是Lax,无法在第三方上下文中被读取。

添加后:Google Analytics 4 设置cookieFlags

Samesite和Secure都设置好的,Cookie 可在第三方上下文中正常使用。

什么情况下需要设置

并非所有场景都需要设置 cookieFlags。仅在以下情况才有必要:

场景 说明
嵌入式预订流程 第三方网站中嵌入预订组件,需要跨站识别用户
嵌入式表格/表单 表单嵌入在其他域名的页面中
登录门户 统一登录系统跨多个域名运行
跨站/跨域跟踪 需要在不同域名间追踪同一用户/ID

核心判断标准: 当 GA4 的第一方 Cookie 需要在第三方上下文中被读取时,才需要设置 cookieFlags 中的 SameSite=None; Secure。

如果仅在同站环境下进行跟踪,默认的 SameSite=Lax 行为不会产生影响,无需额外配置。


有疑问可以在底部留言
喜欢 (1)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 我不清楚,为什么我的application>cookie里面的_ga是GA1.1...
    excuse2024-08-08 17:10 回复 Windows 10 | Chrome 127.0.0.0
    • Haran
      第二个1是网域的意思,在GA4里,Cookie生成在顶级域名就是1,在二级域名就是2;在UA里,Cookie生成在顶级域名就是2,在二级域名就是3
      Haran2024-08-08 17:29 回复 Mac OS X | Chrome 127.0.0.0