6

根据通用数据保护条例 (GDPR),用户必须在设置任何 cookie 之前表示同意。

我在 Flutter 网站中使用 google/firebase 分析。当用户立即打开页面时,会存储两个 cookie:_ga 和 _ga_SOMECODE。

我怎样才能让谷歌分析推迟这些 cookie,以便我可以首先征得用户的同意,然后让他选择允许 cookie 用于谷歌分析 - 还是拒绝两者?

我正在寻找这样的东西:

  • 在 index.html 中

    // Initialize Google Analytics
    <script>
      var analyticsConfig = { enabled: false };
      firebase.analytics(analyticsConfig);
    </script>
    
  • 在第一页的某处:

    接受统计cookies?[是] [没有]

    并在相应的飞镖代码中:

    // Enable / disable Google Analytics
    FirebaseAnalytics analytics = getAnalytics();
    analytics.setAnalyticsCollectionEnabled(usersAnswer);
    

在理想情况下,分析代码只会在用户提供肯定回答时加载。如果用户的选择是[否],则代码库中的分析代码将什么也不做。

我怎样才能实现类似的东西?

谢谢,迪特里希

4

1 回答 1

4

我找到了一个可行的解决方案:

在调用变量 之前firebase.analytics(),必须将其设置为- 其中对应于谷歌分析测量 ID 或项目的跟踪 ID。index.htmlga-disable-G-FOO0490BARtrueG-FOO0490BAR

<script>
  // Initialize Google Analytics
  var measurementID = "G-FOO0490BAR";
  window['ga-disable-' + measurementID] = true;
  firebase.analytics();
</script>

我在任何地方都找不到这个 ID,无论是在 Google 还是在 Firebase Analytics 控制台中。但在安装并激活 Google Analytics Debugger 插件后,它会在发送 google 分析事件时显示在 chrome 浏览器控制台中。

例如:

Processing GTAG command: ["event", "test_event", {string: "Hello, World!", send_to: "G-FOO0490BAR"}]

现在我可以使用以下代码从 Flutter 启用/禁用谷歌分析:

// Enable / disable Google Analytics
FirebaseAnalytics analytics = getAnalytics();
analytics.setAnalyticsCollectionEnabled(usersAnswer);

禁用 Google Analytics 时不会设置任何 cookie。

我在以下页面上找到了这个解决方案:

可以在此处找到要使用的 ID 的说明:

但是,与我在后一页中所写的相反,面板的右上角没有显示测量 ID。

干杯,迪特里希

于 2020-08-12T22:09:46.177 回答