Передача намерения реферера в сторонние библиотеки метрик с согласия пользователя

Согласно Правилам программы для разработчиков 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 после получения трансляции, затем забрать его оттуда, как только мы получим согласие пользователя, и только потом передать его сторонним трекерам. Будет ли это решение правильным?


person M. C    schedule 22.05.2019    source источник


Ответы (1)


Нет реальной необходимости хранить данные в вашем SharedPreferences «независимо» — вы можете просто реализовать MultipleInstallBroadcastReceiver, предоставленный AppsFlyer SDK, и приостановить инициализацию SDK после получения согласия пользователя. Вероятно, это относится и к другим SDK, которые собирают эти данные.

Кроме того, я могу сказать, что подавляющее большинство пользователей AppsFlyer используют (один из) приемников MultipleInstallBroadcastReceiver/SingleInstallBroadCastReceiver, и мы никогда не сталкивались с какими-либо проблемами по этому поводу.

P.S. Немного не по теме, но может иметь значение — Google предлагает более новый/лучший/более безопасный способ получения INSTALL_REFERRER Магазина: https://developer.android.com/google/play/installreferrer/igetinstallreferrerservice

В AppsFlyer вы можете просто импортировать библиотеку 'com.android.installreferrer:installreferrer:1.0' с помощью gradle, а AppsFlyer SDK сделает все остальное.

person BenjaminAF    schedule 22.05.2019
comment
Спасибо тебе за это! В этом случае, можем ли мы избавиться от нашего пользовательского InstallListener, просто зарегистрировать MultipleInstallBroadcastReceiver в нашем манифесте в качестве первого получателя для намерения INSTALL_REFERRER, а после этого зарегистрировать другие сторонние BroadcastReceiver? - person M. C; 22.05.2019