【问题标题】:Does Facebook Deferred Deep Linking on iOS work, and how to test it before publishing the app on Store?iOS 上的 Facebook Deferred Deep Linking 是否有效,以及如何在应用商店发布应用之前对其进行测试?
【发布时间】:2017-10-01 02:01:22
【问题描述】:

我在 iOS 上遇到了 Facebook 延迟深度链接的问题。深度链接有效,但延迟的深度链接不起作用。我已经阅读了很多关于这个问题的信息,但仍然找不到解决方案。

我已经设置了深度链接并且它有效。当我还尝试在App Ads Helper 上测试深层链接并单击“测试深层链接”,输入深层链接并单击“发送通知”时,我会在 Facebook 上收到一条通知,该通知会打开我的应用程序,并且此深层链接有效。但是,当我单击“选择延期”时,我什么也没有收到。我尝试删除应用程序并重新安装它,但[FBSDKAppLinkUtility fetchDeferredAppLink:...]; 方法在新安装后没有得到任何延迟的深层链接。

[FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {
        if (error) {
            NSLog(@"Received error while fetching deferred app link %@", error);
        }
        if (url) {
            [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {

            }];
        }
    }];

在本例中,url 始终为 nil。

注意:我的应用商店中还没有应用,所以我输入了另一个应用的 Apple Id。即使我在 Store 上有自己的应用,如果不在 Store 上发布应用,我如何测试延迟深度链接?

另外,我在 Facebook 上阅读了以下文档:

从 iOS 10 开始,iOS 不支持延迟深度链接,因此一旦人们安装了应用程序,您就无法打开除起始屏幕之外的其他内容。 (Source)

所以,我不确定这是否可能。

另外,我已阅读有关 Stackoverflow 的另一篇文章,但没有我正在寻找的答案,即它们看起来不完整,或者我只是看不到字里行间的答案:

How to use facebook deferred deep linking feature for new installs and to test the same before publishing iOS App to appStore? -> 这个问题的答案不是我想要的:

如果您想验证延迟链接,请在对话框中选中“发送延迟”。 因此,执行此操作后,您需要卸载应用程序(如果已经存在),然后从应用程序商店重新安装。您将在其中进行测试的设备应该安装了 facebook 应用程序,并使用您从 app-ads 助手发送“延迟深度链接请求”的帐户登录。 现在,当您打开您的应用时,您应该能够看到您的延迟深层链接功能正常工作。

这不起作用,所以这就是我问这个问题的原因。

另外,我发现我可以使用 Tune SDK 进行延迟深度链接:

...这不是 iOS 10 操作系统本身的问题。对于使用 TUNE SDK 的 iOS 10,延迟深度链接工作得很好。 (Source)

另外,我发现我可以使用 Branch.io 进行延迟深度链接:

使用 Branch,您可以获得通用链接的所有基本路由以及延迟的深度链接,并为新用户获取流程安装归因。 (Source)

我还没有尝试过 Tune 和 Branch.io。我想使用 Facebook 广告并在没有第三方解决方案的情况下执行延迟深度链接。 Facebook 是否有可能,以及如何在 iOS 上测试 Facebook 的延迟深度链接?

【问题讨论】:

    标签: ios facebook testing deep-linking facebook-ads-api


    【解决方案1】:

    对我来说,答案就在我的 iPhone 设置中。我启用了“限制广告跟踪”。我没有太多文档证明这是导致问题的原因,但在更改后,它现在可以工作了。值得自己测试一下。

    在您的 iPhone 上转到:设置 -> 隐私 -> 广告(在页面底部)

    您应该确保将“限制广告跟踪”设置为关闭。

    如果您的应用程序 URL 方案设置正确,您应该会收到一个 URL(如果没有,请参阅 here) swift 代码应该如下所示:

    AppLinkUtility.fetchDeferredAppLink { [weak self] (url, error) in
            guard let self = self else {return}
            if (url != nil) {
                
            } else if error != nil {
                print("Error: \(error!.localizedDescription)")
            }
    }
    

    要测试延迟链接,你可以去here

    【讨论】:

      【解决方案2】:

      重置广告标识符后它对我们有用。如果它是相同的广告标识符,他们可能会在内部阻止两次归因于同一应用程序。因此,请在测试前转到设置并重置您的广告标识符。还要确保手机没有选择退出跟踪。

      【讨论】:

        【解决方案3】:

        要使延迟深层链接生效,您还需要登录 Facebook 应用程序。广告助手工具:https://developers.facebook.com/tools/app-ads-helper/ 知道您在 facebook.com 上的登录用户 ID。然后,Facebook 使用此信息来匹配您的 id、应用程序和设备信息,如果匹配,则将 appLink 返回给您的应用程序。

        很遗憾,鉴于安装 Facebook 等其他应用程序的限制,这在模拟器上是不可能的。

        您唯一的选择是使用真实设备并在其上构建您的 XCode 项目。确保您已安装 Facebook,并且您使用与桌面 Web 浏览器相同的用户登录。

        【讨论】:

          【解决方案4】:

          附加信息:

          所以您需要将应用部署到商店? – locoboy 2015 年 8 月 7 日 16:38

          如他们在我之前所说的那样测试 Deep Link 或 Deferred Deep Link:

          • 不需要部署到存储,使用FB Ads panel进行测试
          • 检查以防万一statistic for app installs(不等于零) - 可能是AppEvents(自动记录)不正确(请记住,在计算统计数据时,也可能存在延迟)李>
          • 为您的设备安装 Facebook 应用程序,使用与发送通知相同的配置文件进行身份验证(在后台运行 FB 应用程序)
          • 同时选中“发送通知”和“延迟发送”复选标记(或仅选中“延迟发送” - 结果将在手动重新安装应用后可用,不要忘记触发 FBSDKAppEvents activateApp
          • Example after successful sending
          • 主要目标 - 发送消息后,您将在 Facebook 中看到它!应用通知,带有徽标 + 文字“点按即可启动您的深层链接”
          • 点击通知

          【讨论】:

            【解决方案5】:

            有点晚了,但根据您对上一个答案的评论:收到消息后:

            该链接已排队等待您在设备上首次启动应用。这意味着您需要删除该应用程序,然后重新安装并打开您的应用程序。请先检查上面的 iOS 和 Android 设置信息,确认您的应用可以处理延迟深层链接。

            1. 从您的设备中删除应用程序
            2. 从您的设备打开 Facebook 通知,您应该有一个深度链接通知
            3. 选择深层链接通知应将您引导至相应的应用商店以再次安装该应用
            4. 安装后,启动应用程序应触发预期的“延迟”深层链接

            【讨论】:

            • 这会使测试变得非常困难和缓慢。
            【解决方案6】:

            如果您在启用深度链接的情况下投放 Facebook 广告,您可以在此处测试延迟的深度链接设置:https://developers.facebook.com/tools/app-ads-helper/

            您需要选择您的应用,然后您应该能够访问页面底部的深层链接测试器(您也可以在其中选择deferred

            【讨论】:

            • 我已经在这里测试了深层链接。深层链接有效,但我不知道如何测试延迟深层链接。有“延迟发送”选项。当我选择该选项时,我收到“链接已排队等待您在设备上首次启动应用程序。这意味着您需要删除该应用程序,然后重新安装并打开您的应用程序。请先验证您的应用程序可以通过检查上面的 iOS 和 Android 设置信息来处理延迟的深度链接。”。我删除应用程序并重新安装,但没有任何反应
            • 嗨弗拉基米尔,你解决了这个问题吗?我有一个和你一样的问题。
            猜你喜欢
            • 1970-01-01
            • 2013-08-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-01-05
            • 1970-01-01
            相关资源
            最近更新 更多