根据文档:https://docs.branch.io/pages/apps/android/:
“仅在启动器活动中初始化分支 该应用将通过Launcher活动打开,其中Branch将初始化并从链接点击中检索深层链接数据。“
我的问题是我有一个GDPRLauncherActivity,它是我项目的启动器活动。 GDPR活动在首次启动时显示给欧盟用户,以后不再显示(GDPRLauncherActivity直接启动我的mainActivity),也从未显示给欧盟以外的用户(GDPRLauncherActivity也将直接启动我的mainActivity)。
我不想在GDPRLauncherActivity中初始化Branch,因为它不符合GDPR(用户需要先给出其协议)。
我的问题是:如果我在MainActivity(而不是不是我的启动器活动的GDPRLauncherActivity)中初始化Branch,这真的是一个问题吗?我认为这是一个问题,因为this.getIntent()无法获取正确的内容(并且因为它是在doc中写的:))
所以:这有问题吗?如果是,最简单的解决方法是什么?
谢谢
答案 0 :(得分:1)
来自您上面链接的同一文档:
启用/禁用用户跟踪
如果您需要遵守用户的要求,以不进行GDPR跟踪 目的,或以其他方式确定不应跟踪用户, 利用此字段来防止Branch发送网络请求。 也可以在所有用户中为特定设置启用此设置 链接,或跨分支链接。
Branch.getInstance()。disableTracking(true);
您可以选择在应用程序的整个生命周期中调用它。一旦 调用后,将不会从SDK发送网络请求。链接 代将继续工作,但不包含识别 有关用户的信息。此外,深层链接将继续 可以,但不会为用户跟踪分析。
这应该使您可以专注于深层链接功能,而不必担心用户跟踪,因为可以添加单独的逻辑来禁用它。另外,Branch不会仅仅因为您集成了SDK而收集任何PII(个人身份信息)。您必须通过Branch.io SDK手动设置用户ID并报告用户事件。
出于某些不同的原因,Branch要求在Launcher活动中初始化SDK:
如果不使用App Links,则可以在MainActivity中安全地初始化SDK。另外,由于您没有在Launcher活动中对其进行初始化,因此最好在MainActivity的onCreate
方法中而不是onStart
中进行初始化。这意味着您只会在首次加载MainActivity时使用网络数据-后台运行和前台运行应用程序不会再次触发它。无论如何,所有深层链接都会触发Launcher活动,这反过来会打开MainActivity,这时SDK将从onCreate
初始化。
答案 1 :(得分:1)
这是来自Branch的Jackie。
根据经验,在启动器活动中初始化Branch SDK对于归因至关重要,这是必不可少的步骤。否则,Branch SDK将无法报告安装,打开或其他任何渠道事件,因此您将无法在Branch仪表板上获得任何归因数据。
话虽如此,我建议您在开始时设置Branch.trackingDisabled = YES
,然后在之后初始化Branch。当用户选择进行跟踪时,将调用Branch.trackingDisabled = NO
,并且Branch SDK将正常运行。除非用户选择在第一个打开的应用程序内选择加入,否则这种方法的安装将丢失。
如果您还有其他疑问,请直接发送电子邮件至Integrations@branch.io。