谷歌分析是否设置了禁止尚未同意的用户使用 cookie 的设置

根据欧盟《电子隐私指令》(又称“ Cookie 法”)第5(3)条,针对欧盟用户的网站在设置 Cookie 之前必须获得用户的选择加入同意。

参见 哈里发国指南

我试图在我的网站上与 谷歌分析平衡这一点。

我可以想象,谷歌分析(GA)可以做一定水平的分析数据收集没有 需要的使用 Cookie。

然而,我找不到这方面的任何信息(在谷歌网站/设置面板)关于如何传递信息的“同意状态”回谷歌在一个页面请求。因此,我唯一的选择似乎是,如果用户没有明确表示同意,我不应该嵌入谷歌标记代码 完全没有。这看起来有点极端。

让我的 serverside 脚本在 JavaScript 标记中设置一个 hasConsentedToCookies=FALSE标志将允许我指示 Google 的服务以一种优雅的降级方式运行。

谷歌分析是否设置了禁止使用 cookie 对于尚未给予同意的用户

如果是这样,我在哪里可以找到这方面的信息?

86041 次浏览

GA 没有 cookie 就不能工作,它需要它来“识别”访问者,如果他/她以前访问过你的网站。所以在 GA 中没有这个设置,GA 只是不记录访问者,如果它不能创建一个 cookie。

如果用户来自欧盟,并没有选择,那么你应该排除谷歌分析脚本我认为。

编辑: 在异步 GA 代码片段中有一个 Google Analytics 设置。

正如您所建议的,这里没有 Google Analytics 设置,如果您想使用 Google Analytics Javascript 跟踪脚本,则需要有条件地排除那些未同意的脚本。

已经有一些解决方案可以帮助你,而不是自己动手。 Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

这里是一个解决方案,允许使用谷歌分析的基本功能,而无需 cookie,通过做跟踪服务器端,这个例子是在 PHP: http://techpad.co.uk/content.php?sid=205

编辑(2019) : 以下答案早于 GDPR,可能需要修订。

GoogleAnalytics 有一套新的 API 来协助遵从 Cookie 选择退出。这是他们的 帮助医生

关于欧盟 Cookie 条例(在成员国实施)是否要求被动网络分析跟踪需要遵守选择加入机制的问题,一直存在一些模棱两可的地方。如果你担心这个或那个,咨询律师。谷歌正在授权你来决定你想要如何继续下去。

他们会把实现的细节留给你,但是,这个想法是,一旦你决定是否在 Google 分析中跟踪用户,如果答案是不跟踪,你会在 Google 分析运行之前将以下属性设置为 true:

window['ga-disable-UA-XXXXXX-Y'] = true;

在谷歌分析中 UA-XXXXXX-Y 是您的帐户 ID 吗

正如其他发帖人指出的那样,谷歌分析依赖于 cookies。所以,没有 cookie 你就无法进行任何跟踪。如果您已经确定某人不会被编程用于跟踪,那么您需要实现以下内容:

if(doNotCookie()){
window['ga-disable-UA-XXXXXX-Y'] = true;
}

选择加入

当你第一次加载谷歌分析的时候,这确实需要一点技巧,因为这个属性需要设置为 之前谷歌分析运行以防止跟踪发生,这意味着,对于一个“选择进入跟踪”的方法,你可能需要实现一个机制,在第一次访问时,谷歌分析在没有选择进入 cookie 的情况下自动禁用(确定 cookie 偏好的 cookie 是明确允许的) ,然后,如果发生选择进入,重新运行谷歌分析。在随后的页面浏览中,一切都会顺利进行。

可能看起来像(伪代码) :

if( hasOptedOut() || hasNotExpressedCookiePreferenceYet() ){ //functions you've defined elsewhere
window['ga-disable-UA-XXXXXX-Y'] = true;
}
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-Y']);
_gaq.push(['_trackPageview']);




function onOptIn(){ //have this run when/if they opt-in.
window['ga-disable-UA-XXXXXX-Y'] = false;
//...snip...
//set a cookie to express that the user has opted-in to tracking, for future pageviews
_gaq.push(['_trackPageview']); // now run the pageview that you 'missed'
}

选择退出

使用这种方法,您将允许用户选择退出跟踪,这意味着您将使用一个 cookie 来设置 ga-disable-UA-XXXXXX-Y'属性,并在将来使用一个 cookie 来管理它:

if( hasOptedOut() ){ // function you've defined elsewhere
window['ga-disable-UA-XXXXXX-Y'] = true;
}


var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-Y']);
_gaq.push(['_trackPageview']);

作为一个快速说明,BBC (可能是英国最受欢迎的网站)已经采取了一个有趣的方法来遵守 cookies-他们已经向用户展示了一个横幅,告诉他们 cookies 已经设置好并提供了几个链接。

这一个让 他们管理他们的饼干,但最有趣的是,他们提供了一个 链接到谷歌分析,允许用户选择退出 GA的整体。因此,总的来说,BBC 认为他们可以告诉用户设置了什么 cookie,然后提供一个到 Google 的链接,允许用户选择退出所有 GA cookies。对我来说,这比你告诉 GA 通过 JS 选择退出地址要简单得多。

到目前为止,处理这个问题的常用方法是 Wolf-software 的 jquery 插件所使用的方法,它阻止脚本运行,直到用户选择加入。然而,哈里发国上周更新了他们的指导方针,表示依赖 BBC 网站上使用的那种“默示同意”是可以接受的。虽然我不认为这符合法律的精神,但这是执法者认为可以接受的。鉴于大多数欧盟国家还没有实施这项指令,我认为他们很可能会效仿英国的做法。

这里有一篇关于英国更新的有趣文章:

http://www.redant.com/articles/eu-cookie-law-update-ico-adopts-softly-softly-approach/

对于一个较少干扰的用户体验解决方案,你可以设置隐含的同意谷歌分析 cookie 通过放置一个链接到: cookiestatement.eu (没有 javascript,没有弹出窗口,没有广告)

很抱歉我来晚了,但是最近我一直在寻找同样的事情,直到我自己找到了一个方法。这可能不是正确的做法,但它的工作。(只在有问题的现场工作不完全退出 GA)。 我已经测试了几天来确认

我设法做到这一点的方法是使用 PHP cookie。首先添加 analyticstracking.php 包括..。

<?php include_once('analyticstracking.php'); ?>

在 analyticstracking.php 中添加以下内容..。

<?php
if($_COOKIE['consent_cookie']=="Y"){
?>


<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-********-*']);
_gaq.push(['_trackPageview']);


(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript';     ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' :      'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];      s.parentNode.insertBefore(ga, s);
})();
</script>


<?php
}
else{
//do nothing
}
?>

在用户同意使用 Cookie 之前,Google Analytics 不会工作,一旦他们同意了,“同意 _ cookie”将被保存并允许 GA 工作,但是如果“ Google”Cookie 被销毁,它将阻止 GA 工作(显然)。

就像我说的,这可能不是正确的方式,但我已经尝试和测试,它做到了。希望这对谁有帮助。

你可以通过在 google 分析代码的顶部添加这段代码来禁用 google 分析 cookie (在行前: var _ gaq = _ gaq | | [] ;) :

ga('create', 'UA-XXXXXX-XX', {'storage': 'none'});
ga(function(tracker) {
var clientId = tracker.get('clientId');
});

然而,谷歌分析的一些功能(例如实时统计数据)在此修改后不能正常工作。更多关于 google 分析 cookies: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=en#disableCookies

我经常从来没有要求用户选择退出谷歌分析,这是因为我从来没有设置 Cookie,我从来没有保存他们的 IP (和其他个人数据)。

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');


ga('create', 'UA-98765432-1', 'www.example.com', {
'anonymizeIp': true
, 'storage': 'none'
, 'clientId': window.localStorage.getItem('ga_clientId')
});
ga(function(tracker) {
window.localStorage.setItem('ga_clientId', tracker.get('clientId'));
});
ga('send', 'pageview');

还可以在 将 GoogleAnalytics cookie 转换为本地/会话存储上查看这个代码

这个脚本不会设置任何 cookie,但仍然通过谷歌分析跟踪。这实际上将有相同的影响隐私作为使用 Cookie,因为谷歌仍然记录用户的 IP 地址。

这就是匿名开关的用处。这告诉谷歌只保存匿名版本的 IP 地址。匿名 IP 地址不被认为是个人数据,因此用户的隐私将得到尊重。

AFAIK cookie 法律是关于隐私的,允许网站跟踪他们的使用情况。我不是一个律师或任何东西,但在我看来,这个脚本符合欧盟饼干法。

看看这个重磅炸弹,看看它是如何工作的: http://plnkr.co/MwH6xwGK00u3CFOTzepK

您可以通过在创建跟踪器实例时指定 {'storage' : 'none'}选项来禁用用于 GoogleAnalytics 的 cookie。

有关详细信息,请参阅 谷歌关于这个主题的指南

我也面临着同样的问题。

最终,我得到了一个解决方案,在线的 埃尔默的回答,但发挥安全的 IP,这是没有使用 localStorage

// Create a fake ID instead of storing anything locally
function guidGenerator() {
var S4 = function() {
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
};
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}


...
ga('create', 'UA-XXXXXX-Y', {
'storage': 'none',
'clientId': guidGenerator()
});

在谷歌分析中,每一个访问过的页面都会被视为一个新的访问者,所以我在那里失去了很多功能。

(+)但我可以接受,我相信我在数据隐私立法方面是安全的。

任何反馈或改进建议都是非常受欢迎的。

为了使 GA 仅在用户接受 cookie 使用后才能工作,需要执行几个步骤。

关闭 Cookie

   <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-Y"></script>
-- <script>
-- window.dataLayer = window.dataLayer || [];
-- function gtag(){dataLayer.push(arguments);}
-- gtag('js', new Date());
-- gtag('config', 'UA-XXXXXX-Y');
-- </script>

在 GA 被实现的地方,这需要通过导入 gtag.js脚本和删除 GA 初始化来更新。

当用户接受 cookie 时启用 GTag

GTag Opt In 是一个在用户接受/拒绝 cookie 时启用和禁用 GA 的工具。

<script src="https://www.npmcdn.com/gtag-opt-in@2.0.0/dist/index.js"></script>
<script>
GTagOptIn.register('UA-XXXXXX-Y');


...
// On user opt in
GTagOptIn.optIn();
// On user opt out
GTagOptIn.optOut();
...
</script>

已加载库。已注册 GA 跟踪 ID。稍后 optInoptOut函数可以绑定到用户操作的接受/拒绝。

你可以在 如何使用 Opt In 实现 Google 分析上了解更多。

如果用户没有同意使用分析 Cookie,那么可以使用类似 法律怪兽的东西来阻止 Cookie。

Js 目前支持阻塞(和启用)分析和营销 cookie; 更多的类别将在未来提供。

这里是更多的 阻塞 Cookie 的详细指南

最新的谷歌分析(gtag.js)有一个“同意模式”(仍处于测试阶段) :

https://developers.google.com/gtagjs/devguide/consent

它看起来像这样:

gtag('consent', 'default', {
analytics_storage: 'denied',
ad_storage: 'denied'
});

然后,如果用户同意,您可以在以后更新这些设置。

这已经不是饼干的问题了。现在你甚至需要一个从欧盟以外加载谷歌字体的许可。这是因为这样做的用户 IP (非常私人的信息哈哈)将发送到美国。 我不是律师,但这也会影响到 Adsense 和 Analytics。在这里,您将找到一个解决方案,如何加载 Adsense 和 Analytics,只有在同意的情况下: https://stackoverflow.com/questions/70967060/loading-google-adsense-analytics-and-youtube-only-when-consent-is-given

在得到同意后,只需拨打 SetTimeout (“ analyticsladen ()”,1) ;:

新的谷歌分析4代码是:

 <script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());


gtag('config', 'G-####');
</script>




<script type="text/javascript">
function analyticsladen() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://www.googletagmanager.com/gtag/js?id=G-####';
document.body.appendChild(script);
}
//setTimeout("analyticsladen()", 1);
</script>

或者你可以使用旧的谷歌通用分析代码,它只能工作到2023年6月(谷歌说) :

 <script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-####-#']);
_gaq.push (['_gat._anonymizeIp']);
_gaq.push(['_trackPageview']);


var analyticsladen = function(){
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';


var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
}


</script>

事实: Google 把我的页面排名提高了4个级别,因为我不再使用分析了