根据Google Play's Developer Program Policies,开发人员
不过,目前,我们使用三种不同的第三方服务来跟踪用户安装情况: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);
}
}
这基于guide by AppsFlyer,用于注册多个安装跟踪程序。
现在的问题是,如果我们要遵守上述Google Play的政策,在将引荐来源数据发送到我们的第三方库之前,我们如何获得用户的同意?
据我了解,com.android.vending.INSTALL_REFERRER
是从Google Play安装后由BroadcastReceiver
广播和接收的,所以我想这可能是在我什至可以启动对话框询问用户的信息之前的任何时间。同意。
安装跟踪数据是否属于该策略所引用的个人或敏感数据中,这是否还正确?
我们正在考虑的一种解决方案是,在收到广播后,将referrer
以外的内容保存到SharedPreferences
中,一旦获得用户的同意,便从那里将其提取,然后再继续传递第三方跟踪器。这个解决方案正确吗?
答案 0 :(得分:2)
真正不需要将数据“独立”存储在您的SharedPreferences
中-您可以简单地实现由AppsFlyer SDK提供的MultipleInstallBroadcastReceiver
,并在获得用户同意后保留SDK的初始化。这可能将适用于其他收集这些数据的SDK。
此外,我可以说绝大多数AppsFlyer用户正在使用MultipleInstallBroadcastReceiver
/ SingleInstallBroadCastReceiver
接收器(其中一个),并且我们从未遇到过与此相关的任何问题。
P.S。话题有点偏离,但可能是相关的-Google提供了一种更新/更好/更安全的方式来获取商店的INSTALL_REFERRER
:https://developer.android.com/google/play/installreferrer/igetinstallreferrerservice
使用AppsFlyer,您只需使用gradle导入'com.android.installreferrer:installreferrer:1.0'
库,其余的工作将由AppsFlyer SDK完成。