什么是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 设置」 相关字段:
填入所需参数,如:max-age=7200;secure;samesite=none,保存并发布。
设置前后效果对比
添加前:
Samesite为空的,默认是Lax,无法在第三方上下文中被读取。
Samesite和Secure都设置好的,Cookie 可在第三方上下文中正常使用。
什么情况下需要设置
并非所有场景都需要设置 cookieFlags。仅在以下情况才有必要:
| 场景 | 说明 |
|---|---|
| 嵌入式预订流程 | 第三方网站中嵌入预订组件,需要跨站识别用户 |
| 嵌入式表格/表单 | 表单嵌入在其他域名的页面中 |
| 登录门户 | 统一登录系统跨多个域名运行 |
| 跨站/跨域跟踪 | 需要在不同域名间追踪同一用户/ID |
核心判断标准: 当 GA4 的第一方 Cookie 需要在第三方上下文中被读取时,才需要设置 cookieFlags 中的 SameSite=None; Secure。
如果仅在同站环境下进行跟踪,默认的 SameSite=Lax 行为不会产生影响,无需额外配置。


