什么是cookieFlags
cookieFlags是Google Analytics 4 新增增加的的一个设置,cookieFlags可以设置的字段有:
字段 |
描述 |
实例值 |
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 | — |
如cookieFlags可以设置为:
max-age=7200;domain=ichdata.com;path=/;secure;samesite=none
表示在ichdata.com的根路径上创建cookie,两小时内可以通过https是的形式一起发送给第三方cookie。简单的就是能够被第三方cookie使用。
为什么要设置cookieFlags
为了解决最新版的Chrome浏览器中的SameSite规则,在最新版的Chrome浏览器中,由于google analytics 4的client,也就是coolie _ga是没有设置Samesite的,所以默认是被视为Samesite=Lax,这意味着第三方上下文中访问cookie的时候不可用。
关于SameSite的详细可以看:Chrome 80:Google 终于对第三方cookie出手了
这样设置才允许第三方访问Google Analytics 4的第一方cookie,主要是跨站跨域的时候才会用到,需要跟踪到同一个用户的时候就需要读取第一方cookie。
如何设置cookieFlags
GA4中的设置如下:
gtag('config', 'G-N2A3FMNDT5', { cookie_flags: 'max-age=7200;secure;samesite=none' });
在GTM中设置
使用cookie_flags:
添加前后的效果
添加前:
Samesite为空的,默认是Lax,不能被第三方使用。
Samesite和Secure都设置好的,可以第三方上下文中可用。
什么情况下用
需要在第三方上下文中访问Google Analytics 4使用的第一方Cookie的时候,如嵌入式预订流程,嵌入式表格和登录门户,主要就是跨站和跨域跟踪的时候要识别到同一个用户/ID的时候