应用间跟踪中通用链接的故障排除

参加 PXA 课程

通用链接在操作系统 (OS) 级别进行验证,并且需要用户初始化的操作(例如点击网页链接)以打开移动应用。

排查通用链接问题

1

确认来自合作伙伴应用的点击是用户发起的点击

假设该链接不是常规的锚点标签,而是实例化了一个新的 WebView (参见本页底部的澄清)。在这种情况下,这不被视为用户发起的导航,因此操作系统不会打开通用链接。这是最常见的场景。要解决此问题,您应考虑在 WebView(WKWebView、UIWebView 或 SFSafariViewController)内部使用常规锚点链接,以便通用链接能启动应用。

其他非用户发起点击的示例包括将 URL 直接复制粘贴到搜索栏,或通过在 JavaScript 中使用以下方式导航到链接 onload()click().

2

检查您将用户发送到的页面是否允许通用链接

在某些情况下,impact.com 依赖通用链接在后续重定向(通常是广告主域名)上进行配置。

  • 例如,impact.com 的跟踪域(goto.advertiser.com)会重定向到 advertiser.com。通用链接配置在 advertiser.com 域上。因此,验证您发送用户到的页面是否启用了通用链接非常重要。您可以通过检查位于广告主域上的 Apple association 文件来进行验证。

  • 在我们的示例中, http://advertiser.com/.well-known/apple-app-site-association,您会注意到 impact.com 跟踪域的 association 文件默认包含所有子目录。

circle-info

注意: 尽管在使用 JavaScript 重定向时通用链接无法工作,但 HTTP 3xx 重定向仍会保留对原始用户事件的引用。impact.com 在跟踪中使用 HTTP 3xx 重定向,因此在满足其他条件时,通过跟踪域上的点击进行的链接重定向会成功启动广告主应用。

例如,下面的 association 文件将允许通用链接用于 advertiser.com/item/123 但不会允许用于 advertiser.comadvertiser.com/section/furniture.

{
   "applinks":{
      "apps":[
      ],
      "details":[
         {
            "appID":"A1AAA22BBB.com.advertiser.Advertiser",
            "paths":[
               "NOT /section/*",
               "/item/*"
            ]
         }
      ]
   }
} 
3

请注意,打开的初始 WebView 也必须支持通过通用链接进行重定向

某些 WebView 可能会阻止通用链接,这会导致跟踪链接在 WebView 内部打开,而不是打开广告主应用。虽然不常见,但当 WebView 的导航策略设置为 WKNavigationActionPolicyAllow + 2 时可能会发生这种情况。这会导致 WebView 导航到该链接而不尝试通用链接。

4

审查社交媒体策略

一些社交媒体应用(如 Facebook)会阻止通用链接。如果是这种情况,使用 移动应用插页 (Mobile App Interstitial) 可能会有所帮助,我们建议联系您的客户成功经理(CSM)寻求帮助(或 联系支持arrow-up-right)。impact.com 正在积极研究改进来自社交媒体应用的深度链接和归因的方法。

来自 Apple 的进一步说明

如果您实例化一个 SFSafariViewControllerarrow-up-right , WKWebViewarrow-up-right ,或 UIWebViewarrow-up-right 对象来处理通用链接,iOS 会在 Safari 中打开您的网站,而不是打开您的应用。然而,如果用户在嵌入的 SFSafariViewController、WKWebView 或 UIWebView 对象内点击通用链接,iOS 会打开您的应用。

参考 Apple 的 支持通用链接arrow-up-right 帮助文章以获取更多信息。

最后更新于

这有帮助吗?