问题描述
根据《通用数据保护条例》(GDPR),用户必须在设置任何Cookie之前表示同意。
我在Flutter网站上使用google / firebase分析。当用户打开页面时,将立即存储两个cookie:_ga和_ga_SOMECODE。
我怎样才能使Google Analytics(分析)推迟这些cookie,以便我首先可以征得用户的同意,然后让他选择允许cookie来使用Google Analytics(分析)?或者拒绝两者?
我正在寻找这样的东西:
-
在index.html
// Initialize Google Analytics <script> var analyticsConfig = { enabled: false }; firebase.analytics(analyticsConfig); </script>
-
第一页上的某处:
接受统计信息Cookie吗? [是] [否]
以及相应的飞镖代码:
// Enable / disable Google Analytics FirebaseAnalytics analytics = getAnalytics(); analytics.setAnalyticsCollectionEnabled(usersAnswer);
在理想情况下,仅当用户提供肯定答案时才加载分析代码。如果用户选择的是 [否] ,则代码库中的分析代码将无济于事。
如何实现类似的功能?
感谢Dietrich
解决方法
我找到了可行的解决方案:
在firebase.analytics()
中调用index.html
之前,变量ga-disable-G-FOO0490BAR
必须设置为true
-其中G-FOO0490BAR
对应于Google Analytics(分析)测量ID或跟踪项目的ID。
<script>
// Initialize Google Analytics
var measurementID = "G-FOO0490BAR";
window['ga-disable-' + measurementID] = true;
firebase.analytics();
</script>
我在Google或Firebase Analytics控制台中都找不到该ID。但是,在安装并激活Google Analytics(分析)调试器插件后,发送Google Analytics(分析)事件时,Chrome浏览器控制台就会显示该插件。
例如:
Processing GTAG command: ["event","test_event",{string: "Hello,World!",send_to: "G-FOO0490BAR"}]
现在,我可以使用以下代码从Flutter启用/禁用Google分析:
// Enable / disable Google Analytics
FirebaseAnalytics analytics = getAnalytics();
analytics.setAnalyticsCollectionEnabled(usersAnswer);
禁用Google Analytics(分析)时未设置Cookie。
我在以下页面上找到了此解决方案:
- 禁用Google Analytics(分析)衡量 https://developers.google.com/analytics/devguides/collection/gtagjs/user-opt-out
要使用的ID的说明可在此处找到:
- 我的跟踪ID发生了什么? https://support.google.com/analytics/answer/9539598
但是,与我的情况相反,在面板右上方没有显示测量ID。
干杯,迪特里希