【问题标题】:How to make Google Analytics respond to "Do Not Track"如何让 Google Analytics(分析)响应“请勿跟踪”
【发布时间】:2020-02-13 22:42:03
【问题描述】:

我打算在我的网站上放置谷歌分析跟踪代码,但我不知道如何让它响应那些发送“请勿跟踪”信号的人。 如何让 GA 跟踪代码跟踪没有 DNT 信号的人,同时保护有它的人?

【问题讨论】:

    标签: javascript security google-analytics privacy


    【解决方案1】:

    您无法在 GA 仪表板中响应此请求,但是,您可以按条件激活分析脚本:

    <script>
    
        let dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
    
        if (dnt != "1" && dnt != "yes") {
    
            // past analytics scripts here
    
        } else {
           console.debug("Request to cancel loading analytics scripts (Do-Not-Track).");
        }
    </script>
    

    查看更多:Navigator.doNotTrackTracking Preference Expression

    【讨论】:

      【解决方案2】:

      使用以下谷歌分析标签来尊重 DNT 浏览器设置(将 XX-XXXXXX-X 替换为您的 Tracking-ID)。

      使用此解决方案,当 dnt 处于活动状态时,不会将任何数据传输到 google。当使用“谷歌方式”和用户退出时,您的页面中仍然包含一个谷歌脚本,他们仍然知道您在这个页面上(即使他们声称不跟踪您)。

      <script>
          <!-- Global site tag (gtag.js) - Google Analytics respecting DNT -->
          if ([true, 1, '1', 'on', 'yes'].indexOf(navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack) === -1) {
              let gtagId='XX-XXXXXX-X', sc=document.createElement('script');
              sc.async=true;
              sc.src='https://www.googletagmanager.com/gtag/js?id=' + gtagId;
              document.head.appendChild(sc);
              
              window.dataLayer = window.dataLayer || [];
              function gtag(){dataLayer.push(arguments);}
              gtag('js', new Date());
              gtag('config', gtagId);
          }
      </script>
      

      【讨论】:

        【解决方案3】:

        我只想跳进去说您在这项工作中使用了错误的工具。如果您想要一个尊重 DNT 的分析平台,那么您将需要使用 Google Analytics 以外的其他工具。没有很多对隐私友好的分析 - 这实际上是导致我们创建 Insights 的原因。以下工具注重隐私,据我所知,尊重 DNT 请求:

        • Insights:跟踪事件、页面浏览量等。尊重 DNT 请求。

        • SimpleAnalytics:跟踪页面浏览量。尊重 DNT 请求。

        • Matomo:可能是最完整的隐私友好型分析工具。它可以配置为尊重 DNT 请求。自托管。

        【讨论】:

        • 嗨@Henrique Spotorno,感谢您的见解。我遇到了关于dnt 字段(stackoverflow.com/questions/67540315/…)的类似问题。我检查了您的网站 (getinsights.io),但在响应标头中没有看到 tk。如何验证您的服务器是否符合我的dnt-enabled 请求?此外,您上面提到的三个服务似乎都没有在其响应标头中实现tk
        • 目前看来,tk 标头已被弃用,不应使用。 developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Tk
        • It also makes you more likely to be tracked by fingerprinting,所以禁用它似乎对隐私也更友好
        【解决方案4】:

        我不知道在 GA 的配置中是否对 DNT 有任何特别的支持,但无论如何它都是学术性的,因为加载 GA 脚本的简单行为会传输谷歌跟踪所需的所有内容 - IP、浏览器指纹、引荐来源网址、 cookie — 真的不能相信谷歌不会使用这些信息,当它像这样掉到他们的腿上时。

        解决此问题的唯一方法是自己先发制人地对其进行过滤 - 如果在浏览器中设置了 DNT,则甚至不要加载 GA 脚本。

        请注意,过去几个月欧洲的案例(搜索“Planet49”)重申,分析 cookie(尤其是第三方 cookie)不被视为“必要”,因此需要征得您的同意才能使用加载脚本或让它设置任何 cookie。

        避免所有这些大惊小怪的方法当然是自行托管您自己的分析(例如使用 Matomo 或类似工具),并且不要像 GA 那样不必要地使用 cookie。

        【讨论】:

          【解决方案5】:

          Google Analytics 现在支持user opt-out 的方法。

          这可以用来实现两者:

          • 遵守浏览器的 DoNotTrack
          • Cookie 同意横幅

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-06-17
            • 1970-01-01
            • 2019-07-10
            • 1970-01-01
            • 2013-12-06
            • 1970-01-01
            • 2016-08-23
            相关资源
            最近更新 更多