根据Google Play 的开发者计划政策,开发者
- 在获得肯定同意之前不得开始收集个人或敏感数据;
不过,目前我们使用三种不同的第三方服务跟踪用户安装:Branch.io、Mixpanel 和 AppsFlyer。我有一个BroadcastReceiver
注册在我的AndroidManifest.xml
<receiver
android:name="org.example.InstallListener"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
BroadcastReceiver 的代码如下所示:
public class InstallListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Mixpanel
InstallReferrerReceiver mixpanelReferrerTracking = new InstallReferrerReceiver();
mixpanelReferrerTracking.onReceive(context, intent);
// Branch.io
InstallListener branchIoReferrerTracking = new InstallListener();
branchIoReferrerTracking.onReceive(context, intent);
// AppsFlyer
SingleInstallBroadcastReceiver appsFlyerReferrerTracking = new SingleInstallBroadcastReceiver();
appsFlyerReferrerTracking.onReceive(context, intent);
}
}
这是基于AppsFlyer注册多个安装跟踪器的指南。
现在的问题是,如果我们要遵守上述 Google Play 的政策,我们如何才能在将推荐人数据发送到我们的第三方库之前获得用户同意?
据我了解,安装时从 Google Playcom.android.vending.INSTALL_REFERRER
广播和接收BroadcastReceiver
,所以我想这可能是在我什至可以启动对话以征求用户同意之前的任何时间。
安装跟踪数据是策略所指的个人或敏感数据的一部分是否也正确?
我们正在考虑的一种解决方案是将referrer
intent中的额外内容保存到SharedPreferences
接收到广播之后,然后在我们获得用户同意后从那里提取它,然后再将其传递给第三方跟踪器。这个解决方案正确吗?