Branch.io (Android SDK): «инициализировать Branch только в действии Launcher» и GDPR

Согласно документу: https://docs.branch.io/pages/apps/android/ :

"Инициализировать Branch только в действии Launcher. Приложение откроется в действии Launcher, где Branch будет инициализировать и извлекать данные глубокой ссылки при нажатии на ссылку."

Моя проблема в том, что у меня есть активность GDPRLauncherActivity, которая является активностью запуска моего проекта. Эта активность GDPR отображается для пользователей из ЕС при первом запуске и никогда больше не отображается позже (GDPRLauncherActivity напрямую запускает мою mainActivity) и никогда не отображается для пользователей за пределами ЕС (GDPRLauncherActivity также напрямую запускает мою mainActivity).

Я не хочу инициализировать Branch в своей GDPRLauncherActivity, так как это не будет соответствовать GDPR (пользователь должен сначала дать свое согласие).

Мой вопрос: это действительно проблема, если я инициализирую Branch в своей MainActivity (а не в моей GDPRLauncherActivity, которая не является моей активностью запуска). Я думаю, что это проблема, потому что this.getIntent() не получит правильный контент (и потому, что это написано в документе :))

Итак: это проблема? Если да, то какой самый простой обходной путь?

Спасибо


person Regis_AG    schedule 09.07.2018    source источник
comment
Укажите, используете ли вы AppLinks или нет, а также укажите поддерживаемые версии вашего приложения для Android. Решение отличается в зависимости от тех.   -  person Ovidiu    schedule 09.07.2018
comment
Я не знаю, что такое AppLinks, поэтому я бы сказал нет. Но я уверен, что сообществу будут интересны решения для обоих случаев. Поддерживаемые версии Android моего проекта: minSDK = 14. Спасибо за помощь.   -  person Regis_AG    schedule 09.07.2018


Ответы (2)


Из того же документа, на который вы ссылались выше:

Включить / отключить отслеживание пользователей

Если вам необходимо выполнить запрос пользователя на запрет отслеживания для целей GDPR или иным образом определить, что пользователь не должен отслеживаться, используйте это поле, чтобы запретить Branch отправлять сетевые запросы. Этот параметр также можно включить для всех пользователей для конкретной ссылки или для ссылок вашей ветви.

Branch.getInstance().disableTracking(true);

Вы можете вызывать это на протяжении всего жизненного цикла приложения. После вызова сетевые запросы не будут отправляться из SDK. Генерация ссылок будет продолжать работать, но не будет содержать идентифицирующую информацию о пользователе. Кроме того, диплинкинг продолжит работать, но не будет отслеживать аналитику для пользователя.

Это должно позволить вам сосредоточиться на функциях глубинных ссылок, не беспокоясь об отслеживании пользователей, поскольку вы можете добавить отдельную логику для ее отключения. Кроме того, Branch не собирает PII (личную информацию) только потому, что вы интегрировали SDK. Вам придется вручную устанавливать идентификаторы пользователей и сообщать о пользовательских событиях через SDK Branch.io.

Branch запрашивает инициализацию SDK в действии Launcher по нескольким причинам:

  • Ссылки на приложения — при использовании ссылок на приложения (собственная глубокая ссылка Android, поддерживается в Android 6+) данные глубокой ссылки находятся в намерении, которое запустило действие Launcher. В этом сценарии, если вы не обработаете намерение вручную, данные больше не будут доступны, если вы запустите другое действие без предварительной инициализации Branch SDK.
  • Атрибуция аналитики филиалов — намерение, которое запустило действие Launcher, может содержать данные, указывающие, откуда было запущено приложение (это может быть push-уведомление, список Play Store и т. д.).

Если вы не используете ссылки на приложения, вы можете безопасно инициализировать SDK в MainActivity. Кроме того, поскольку вы не инициализируете его в действии Launcher, вероятно, было бы неплохо сделать это в методе onCreate MainActivity вместо onStart. Это означает, что вы будете потреблять сетевые данные только тогда, когда MainActivity загружается в первый раз — фоновое и переднее выполнение приложения не вызовет его снова. Все глубокие ссылки в любом случае вызовут активность Launcher, которая, в свою очередь, откроет MainActivity, после чего SDK будет инициализирован из onCreate.

person Ovidiu    schedule 09.07.2018

Джеки из Бранча здесь.

Как правило, инициализация Branch SDK в действии Launcher имеет решающее значение для атрибуции и является обязательным шагом. Без этого Branch SDK не сможет сообщать об установках, открытиях или любых других событиях воронки, и, следовательно, вы не получите никаких данных об атрибуции на панели управления Branch.

При этом в вашем случае я бы рекомендовал сначала установить Branch.trackingDisabled = YES, а затем инициализировать Branch. Когда пользователь выберет отслеживание, будет вызван Branch.trackingDisabled = NO, и Branch SDK будет работать в обычном режиме. При таком подходе установки будут отсутствовать, если только пользователь не согласится на это при первом открытии приложения.

Если у вас есть дополнительные вопросы, пожалуйста, напишите по адресу [email protected].

person Jackie Choi    schedule 10.07.2018
comment
Спасибо. Тем не менее, ваш ответ и документ недостаточно ясны. Вопросы: 1) Есть Branch.getAutoInstance(this); Соответствует GDPR? Другими словами, могу ли я вызвать его без согласия пользователя? 2) Если я устанавливаю Branch.trackingDisabled = YES; непосредственно перед Branch.getInstance().initSession... я понимаю, что не смогу сообщить об установках; вы подтверждаете? Если да, это неприемлемо, так как цель Branch для меня — сообщать об установках. - person Regis_AG; 10.07.2018
comment
3) Итак, я ищу другое решение: if Branch.getAutoInstance(this); соответствует GDPR, могу ли я запустить Branch.getInstance().initSession... сразу после того, как мой пользователь принял GDPR, а не в onStart? Если да, что мне делать с методом делегата onNewIntent? (Я не уверен, что понимаю, когда он срабатывает и его цель) Спасибо. - person Regis_AG; 10.07.2018
comment
Здравствуйте, чтобы мы могли предоставить вам самую лучшую и точную помощь, не могли бы вы связаться с [email protected]? - person Jackie Choi; 10.07.2018