Google Analytics、Flutter、cookie 和通用数据保护条例 (GDPR)

Die*_*ann 7 cookies google-analytics flutter firebase-analytics gdprconsentform

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

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

我怎样才能让谷歌分析推迟这些cookies,以便我可以首先征求用户的同意,并让他选择允许cookie使用谷歌分析 - 或者拒绝两者?

我正在寻找这样的东西:

  • 在index.html中

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

    接受统计cookies吗?[是] [否]

    并在相应的 dart 代码中:

    // Enable / disable Google Analytics
    FirebaseAnalytics analytics = getAnalytics();
    analytics.setAnalyticsCollectionEnabled(usersAnswer);
    
    Run Code Online (Sandbox Code Playgroud)

在理想情况下,只有当用户提供肯定答案时才会加载分析代码。如果用户选择“否”,则代码库中的分析代码将不执行任何操作。

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

谢谢,迪特里希

Die*_*ann 4

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

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

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

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

例如:

Processing GTAG command: ["event", "test_event", {string: "Hello, World!", send_to: "G-FOO0490BAR"}]
Run Code Online (Sandbox Code Playgroud)

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

// Enable / disable Google Analytics
FirebaseAnalytics analytics = getAnalytics();
analytics.setAnalyticsCollectionEnabled(usersAnswer);
Run Code Online (Sandbox Code Playgroud)

禁用 Google Analytics 时不会设置 cookie。

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

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

然而,与我的情况相反,在后一页上,面板的右上部分没有显示测量 ID。

干杯,迪特里希