Gor*_*son 8 google-analytics gtag.js
我在我的 Github 页面上使用 Google Analytics Global Site Tag (gtag.js) 跟踪代码。以下跟踪代码作为第一项复制并粘贴到<HEAD>我要跟踪的每个网页中(我用 替换了我自己的跟踪 ID GA_MEASUREMENT_ID):
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
</script>
Run Code Online (Sandbox Code Playgroud)
最近,当我使用 Firefox 浏览器打开我的 Github Pages 站点时,控制台会记录以下警告消息:
Cookie “_ga” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
Cookie “_gid” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
我该如何解决这个问题?
Gor*_*son 20
可以自定义 gtag.js cookie 设置。具体来说,我们可以设置cookie_flags字段来解决这个问题。
在跟踪代码中,该行
gtag('config', 'GA_MEASUREMENT_ID');
Run Code Online (Sandbox Code Playgroud)
应该改为
gtag('config', 'GA_MEASUREMENT_ID', { cookie_flags: 'SameSite=None;Secure' });
Run Code Online (Sandbox Code Playgroud)
解决问题。
因此整个跟踪代码应如下所示(不要忘记GA_MEASUREMENT_ID用您自己的跟踪 ID替换两次出现的):
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID', { cookie_flags: 'SameSite=None;Secure' });
</script>
Run Code Online (Sandbox Code Playgroud)
UPDATE(感谢@RichDeBourke的注释):
控制台仍然可以记录如下警告消息:
Cookie “_ga” has been rejected for invalid domain.
Run Code Online (Sandbox Code Playgroud)
要解决此问题,需要配置gtag.js 的 cookie 域。所以原始答案中提到的那一行
gtag('config', 'GA_MEASUREMENT_ID', { cookie_flags: 'SameSite=None;Secure' });
Run Code Online (Sandbox Code Playgroud)
应进一步编辑为
gtag('config', 'GA_MEASUREMENT_ID', {
cookie_domain: 'YOUR_GITHUB_PAGES_DOMAIN',
cookie_flags: 'SameSite=None;Secure',
});
Run Code Online (Sandbox Code Playgroud)
然后,整个跟踪代码如下(不要忘记替换YOUR_GITHUB_PAGES_DOMAIN为您自己的 GitHub pages 域(通常,您的实际 GitHub 用户名<username>.github.io在哪里<username>)以及GA_MEASUREMENT_ID您自己的跟踪 ID的两次出现):
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID', {
cookie_domain: 'YOUR_GITHUB_PAGES_DOMAIN',
cookie_flags: 'SameSite=None;Secure',
});
</script>
Run Code Online (Sandbox Code Playgroud)
我刚刚设置了一个 Google Analytics 4 属性,并且在 Firefox 控制台中收到了与原始问题相同的警告:
Cookie“_ga”很快就会被拒绝,因为它的“sameSite”属性设置为“none”或无效值,没有“secure”属性。...
但是将cookie_flags作为选项添加到gtag('config', ...)调用对我不起作用。
浏览器 cookie 存储显示 GA cookie 确实没有那么安全地存储。
我能够通过添加一个额外的来解决这个问题gtag('set', ...),如下所示:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('set', {cookie_flags: 'SameSite=None;Secure'});
gtag('config', 'GA_MEASUREMENT_ID');
</script>
Run Code Online (Sandbox Code Playgroud)
也许 Google Analytics API 发生了一些变化?
在谷歌文档似乎表明,set是你应该如何传球cookie_flags。
| 归档时间: |
|
| 查看次数: |
7623 次 |
| 最近记录: |