Google Analytics 上是否有设置禁止尚未同意的用户使用 cookie

IT技术 javascript cookies google-analytics
2021-03-17 10:35:38

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

查看ICO 指南

我正在尝试在我的网站上使用Google Analytics来解决这个问题

我想谷歌分析 (GA) 可以在不需要使用 cookie 的情况下进行一定程度的分析数据收集

但是,我找不到关于如何在页面请求期间将有关“同意状态”的信息转发回 Google 的任何信息(在 Google 网站/设置面板上)。所以,我唯一的选择似乎是我不应该嵌入谷歌标记代码在所有,如果用户没有明确给出同意。这似乎有点激烈。

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

Google Analytics 上是否有设置禁止尚未同意的用户使用 cookie?

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

6个回答

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

Google Analytics 有一组新的 API 来帮助遵守 cookie 选择退出。这是文档,这是他们的帮助文档

关于欧盟 Cookie 法规(在成员国实施)是否要求被动网络分析跟踪需要选择加入机制以实现合规性,一直存在一些模棱两可的问题。如果您以某种方式担心,请咨询律师。Google 授权您决定如何继续。

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

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

其中 UA-XXXXXX-Y 是您在 Google Analytics(分析)中的帐户 ID

正如其他发帖人所指出的,谷歌分析依赖于 cookie。因此,如果没有 cookie,您将无法进行任何类型的跟踪。如果您已确定某人不会被 cookie 用于跟踪,您将需要实施如下操作:

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

选择参加

当您第一次加载 Google Analytics 时,这确实需要一点柔术,因为需要Google Analytics 运行之前设置此属性以防止跟踪发生,这意味着,对于“选择加入跟踪”方法,您d 可能需要实施一种机制,在第一次访问时,如果没有选择加入 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']);
是的。我见过的大多数法规(特别是英国的,我相信法国的)都明确指出,存储他们的 cookie 偏好的 cookie 并不违反规则。由于 cookie 是在浏览器中存储状态的唯一普遍可访问的方式,因此没有办法绕过它。
2021-04-26 10:35:38
我是否理解如果用户选择不存储 cookie,解决方案是存储具有此偏好的 cookie?或者这个 cookie 不被视为属于欧盟法规的范围?
2021-05-03 10:35:38
一个很好的答案的小吹毛求疵 - if(doNotCookie(){ 应该是 if(doNotCookie()){
2021-05-09 10:35:38
谢谢你的回答。虽然我不会说“咨询律师”。技术人员阅读和理解指南可能比律师了解技术细节的细微差别要快。
2021-05-14 10:35:38

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

有关更多详细信息,请参阅有关该主题的 Google 指南

@mpartel 您确实丢失了一些信息:回访者和多渠道转化。但是如果你不需要这些,这仍然是可以接受的。
2021-05-08 10:35:38
重要提示:似乎有了这个,每次网页浏览都将算作一个新会话或用户。有人可以确认吗?
2021-05-19 10:35:38
该指南说,如果您禁用 cookie,则必须自己实施类似的跟踪,因此这似乎无济于事。
2021-05-20 10:35:38

我经常从不要求用户选择退出谷歌分析,那是因为我从不设置 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');

还可以在将 Google Analytics cookie 转换为本地/会话存储中查看此代码

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

这就是 anonymizeIp 开关的用武之地。这告诉 google 只保存 IP 地址的匿名版本。匿名 IP 地址不被视为个人数据,因此将尊重用户隐私。

AFAIK cookie 法完全是关于隐私的,并允许网站跟踪其使用情况。我不是律师或其他任何人,但在我看来,这个脚本符合欧盟 cookie 法。

看看这个 plunk 看看它在行动:http : //plnkr.co/MwH6xwGK00u3CFOTzepK

不,这根本不符合: - anonymizeIp 具有误导性,并且根据欧盟法律仍然保留了太多信息 - LocalStorage 被欧盟法律视为“Cookie” 所以这段代码在 GA 中为您提供的信息较少,但仍然不符合与法律。
2021-04-21 10:35:38
“欧盟cookie法”实际上是一个指令,所以它取决于UE成员的具体法律。例如,意大利隐私权机构明确表示,根据意大利法律,如果您在 Google Analytics 控制台上对 IP 地址进行匿名化并禁用与其他服务共享数据,则不需要用户同意。
2021-04-24 10:35:38
这就是该'anonymizeIp': true选项的用途,它不会存储 ip 地址。我喜欢在 cookie 上使用 localstorage 有几个原因,这些原因与 cookie 法无关。
2021-04-29 10:35:38
你好,这并不总是一种安全的方法:这里是原因。
2021-05-20 10:35:38
@Flunch “anonymizeIp 具有误导性,并且根据欧盟法律仍然保留了太多信息”请提供参考。为什么不能接受,什么时候可以?什么是“信息过多”
2021-05-21 10:35:38

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

这个解释了cookie是什么。这让他们可以管理他们的 cookie,但最有趣的是,他们提供了一个指向 Google Analytics链接,以允许用户完全退出 GA因此,总而言之,BBC 认为他们可以告诉用户设置了哪些 cookie,然后提供一个到 Google 的链接以允许用户选择退出所有 GA cookie。对我来说,这比你告诉 GA 通过 JS 选择退出地址要少得多。

注册有一个横幅,上面写着继续使用他们的网站,他们假设您同意让他们使用 cookie 以及接受按钮。
2021-04-21 10:35:38
我真的不认为 BBC 的解决方案是可以接受的。事实上,他们的解决方案从根本上是有缺陷的,至少有以下三个原因:1)它在询问您是否愿意接受它们之前设置 cookie,2)它必须设置一个 cookie 以保存您的 cookie 偏好,以及 3)它声明该网站不会控制第 3 方 cookie,如果不是欧盟指令的文字,这直接违反了精神。我怀疑 Beebs 会因为这个而受到抨击,因为他们试图以尽可能多的方式突破法律的界限,同时又以其他方式出现。
2021-04-25 10:35:38
@MartinClarke - 嗯......实际上,我不太确定我会跟随一家媒体公司的领导,特别是因为我希望 BBC 在英国拥有特殊的地位,并且可能会被告知塑造起来,而不是被罚款。我认为这更多是一个风险问题——作为一个公共资助机构,BBC 面临的风险并不大,而一个商业网站可能有。
2021-04-25 10:35:38
当然,也许我错了——显然他们已经改变了要求? blog.silktide.com/2012/05/...讲到要求的变化,所以不知道了。只是不知道这些人,我住在这里(现在)!
2021-05-02 10:35:38
看看blogs.wsj.com/tech-europe/2012/05/25/...一些很好的讨论。
2021-05-09 10:35:38

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

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

它看起来像这样:

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

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

值得一提的是,它必须在任何其他发送测量数据的命令之前调用,例如 config 或 event。
2021-04-29 10:35:38