0

根据文档:https://docs.branch.io/pages/apps/android/

“仅在 Launcher 活动中初始化 Branch 应用程序将通过 Launcher 活动打开,Branch 将在其中初始化并从链接单击中检索深度链接数据。”

我的问题是我有一个 GDPRLauncherActivity,它是我项目的启动器活动。这个 GDPR 活动在第一次启动时显示给欧盟用户,以后不再显示(GDPRLauncherActivity 直接启动我的 mainActivity),从不显示给欧盟以外的用户(GDPRLauncherActivity 也会直接启动我的 mainActivity)。

我不想在我的 GDPRLauncherActivity 中初始化 Branch,因为它不符合 GDPR(用户需要先同意)。

我的问题是:如果我在 MainActivity 中初始化 Branch(而不是不是我的启动器活动的 GDPRLauncherActivity),这真的是个问题。我认为这是一个问题,因为 this.getIntent() 不会得到正确的内容(并且因为它是写在文档中的:))

所以:这是一个问题吗?如果是,最简单的解决方法是什么?

谢谢

4

2 回答 2

1

来自分支机构的杰基。

根据经验,在 Launcher Activity 中初始化 Branch SDK 对于归因至关重要,并且是强制性步骤。如果没有这个,Branch SDK 将无法报告安装、打开或任何其他漏斗事件,因此您将无法在 Branch 仪表板上获得任何归因数据。

话虽如此,在您的情况下,我建议Branch.trackingDisabled = YES在开始时设置,然后在之后初始化分支。当用户选择跟踪时,Branch.trackingDisabled = NO将调用,Branch SDK 将正常运行。除非用户在第一个打开的应用程序中选择加入,否则这种方法将丢失安装。

如果您还有其他问题,请直接发送电子邮件至 integrations@branch.io。

于 2018-07-10T00:25:02.363 回答
1

从您在上面链接的同一文档中:

启用/禁用用户跟踪

如果您出于 GDPR 目的需要遵守用户不被跟踪的请求,或者以其他方式确定不应跟踪用户,请使用此字段来阻止 Branch 发送网络请求。此设置也可以针对特定链接的所有用户或您的分支链接启用。

Branch.getInstance().disableTracking(true);

您可以选择在应用程序的整个生命周期中调用它。一旦调用,网络请求将不会从 SDK 发送。链接生成将继续工作,但不会包含有关用户的识别信息。此外,深度链接将继续工作,但不会跟踪用户的分析。

这应该允许您专注于深度链接功能而不必担心用户跟踪,因为您可以添加单独的逻辑来禁用它。此外,Branch 不会仅仅因为您集成了 SDK 而收集任何 PII(个人身份信息)。您必须手动设置用户 ID 并通过 Branch.io SDK 报告用户事件。

出于几个不同的原因,Branch 要求在 Launcher 活动中初始化 SDK:

  • 应用链接 - 使用应用链接(原生 Android 深度链接,Android 6+ 支持)时,可以在启动 Launcher 活动的意图中找到深度链接数据。在这种情况下,除非您手动处理意图,否则如果您在未先初始化 Branch SDK 的情况下启动另一个活动,则将无法再访问数据。
  • 分支分析归因 - 启动 Launcher 活动的意图可能包含指示应用程序从何处启动的数据(可能是推送通知、Play 商店列表等)

如果您不使用 App Links,您可以在 MainActivity 中安全地初始化 SDK。此外,由于您没有在 Launcher 活动中对其进行初始化,因此最好在onCreateMainActivity 的方法中进行,而不是在onStart. 这意味着您只会在第一次加载 MainActivity 时消耗网络数据 - 后台和前台应用程序不会再次触发它。无论如何,所有深层链接都会触发 Launcher 活动,这反过来会打开 MainActivity,此时 SDK 将从onCreate.

于 2018-07-09T16:16:43.733 回答