Согласно Правилам программы для разработчиков 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, как мы можем получить согласие пользователя, прежде чем отправлять данные реферера в наши сторонние библиотеки?
Насколько я понимаю, com.android.vending.INSTALL_REFERRER
передается и принимается BroadcastReceiver
при установке из Google Play, поэтому я предполагаю, что это может произойти в любое время, прежде чем я смогу даже запустить диалоговое окно, чтобы запросить согласие пользователя.
Верно ли также, что данные отслеживания установки являются частью личных или конфиденциальных данных, на которые ссылается политика?
Одно из решений, которое мы рассматриваем, состоит в том, чтобы сохранить referrer
extra из намерения в SharedPreferences
после получения трансляции, затем забрать его оттуда, как только мы получим согласие пользователя, и только потом передать его сторонним трекерам. Будет ли это решение правильным?