branch.io 深层链接 URL 未从 Facebook 广告在应用程序中传递数据

Posted

技术标签:

【中文标题】branch.io 深层链接 URL 未从 Facebook 广告在应用程序中传递数据【英文标题】:branch.io deep-linked URL not passing data in App from Facebook Ads 【发布时间】:2018-04-21 11:39:33 【问题描述】:

我们正在使用branch.io 将自定义数据传递给 App。为此,我们在分支仪表板中执行此步骤。

1) 广告 -> 合作伙伴管理 -> Facebook -> 创建 Facebook 链接

2) 在“Deep Linking”部分下的 Key/Value 中设置数据(我们在应用中需要的数据)

3) 我们分别在 android/ios 中设置 Play/App Store URL在“Redirects”部分下设置 Default Redirects

就是这样!!!

现在转到 Facebook 广告管理器并选择应用安装广告系列。

1) 选择应用部分下的 Play/App Store。

2) 在“defered deep link”下设置上面生成的 URL

您可以在这里阅读更多内容:https://docs.branch.io/pages/deep-linked-ads/facebook-app-install-ads/

现在我们的问题是:

    当用户点击任何带有深度链接参数的分支链接时,它能够在用户全新安装应用程序和用户已经安装应用程序的两种情况下接收数据。 当我们点击具有相同 url 的 Facebook 广告时,如果用户没有安装应用程序,我们将无法获取分支数据(主要是在用户从 App Store/play 商店重定向的情况下)。但是用户已经安装了我们可以从同一个 url 接收所有分支数据的应用程序。

所以问题是:

1) 我们是否需要 Facebook 的任何许可或缺少 Branch 或 Facebook 上的任何配置?

2) 两种设备(例如 Android 和 iOs)都可以使用相同的功能吗?

谢谢

【问题讨论】:

【参考方案1】:

不幸的是,用于设置此功能的 branch.io 文档非常不完整 - 我们只花了大约一周的时间测试和调试 SDK 以弄清楚如何让它工作。必要的更改本身实际上非常简单。

在安卓上:

    Integrate the Facebook SDK 如果你还没有这样做的话 确保您在 (1) 中添加的 facebook_app_id 字符串资源不以“fb”为前缀 如果您使用 ProGuard,add rules to keep the relevant parts of the Facebook SDK 初始化后立即在您的 Branch 实例上调用 enableFacebookAppLinkCheck()

在 iOS 上:

    Integrate the Facebook SDK 如果你还没有这样做的话 初始化后立即在您的 Branch 实例上调用 registerFacebookDeepLinkingClass(FBSDKAppLinkUtility.self)

【讨论】:

[Henning Dodenhof - 1] [Branch io Docs - 0] 这行得通!非常感谢你。我遗漏了一点并且对此一无所知的是第四点-“在初始化后立即在您的 Branch 实例上调用 enableFacebookAppLinkCheck()”。 这救了我的命。在这背后苦苦挣扎了 2 天。谢谢!! Branch.getAutoInstance(this).enableFacebookAppLinkCheck();【参考方案2】:

我遇到了同样的问题,但是在 React Native 项目中,所以我使用的是react-native-branch。 @henning-dodenhof 的回答对我帮助很大(感谢您弄清楚这一点!),但我需要进一步的调整,所以我添加了这个答案,以防它对其他人有用,因为这篇文章是我发现的主要内容关于这个问题:

对于 iOS: FB SDK 注册需要发生在初始化分支之前,而不是在上面的答案建议的之后。因此,在您作为正常库设置的一部分添加的这一行之前:

[RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES];

你需要从 RNBranch 获取 Branch 实例,然后注册这个 FB SDK 类:

[[RNBranch branch] registerFacebookDeepLinkingClass:[FBSDKAppLinkUtility class]];

在初始化之前添加这个新行很关键,如果在之后完成则不起作用。

对于安卓: 这里的设置代码已经获得了一个带有Branch.getAutoInstance(this)的实例,所以我们可以链接注册:

Branch.getAutoInstance(this).enableFacebookAppLinkCheck();

看起来上面的getAutoInstance实际上并没有完全初始化实例,所以你可以立即调用enableFacebookAppLinkCheck,第一次使用后实例会完全初始化。

【讨论】:

以上是关于branch.io 深层链接 URL 未从 Facebook 广告在应用程序中传递数据的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上配置 Firebase 应用后,Branch.io 深层链接停止工作

Android - Branch.io 深度链接在 chrome 中不起作用

无法为 Branch.io 不同的深层链接测试我的 Facebook 广告

使用 branch.io 来自 Play 商店的 Android 深层链接

每次启动应用程序时,Branch.io Deeplink 都会打开深层链接

在创建 branch.io 深层链接时添加应用程序版本检查