adjust-icon

设置直接深度链接

当已安装应用的用户点击 Adjust 链接时,直接深度链接可确保将用户直接转到应用内的特定内容。

设置

iOS 提供了多种接收直接深度链接的方法,具体取决于应用的实施方式。在这些方法中,您将使用下列其中一种方法将深度链接传递给 Adjust SDK:

使用processAndResolve(_:withCompletionHandler:)方法,该方法会执行以下操作:

  • 记录深度链接点击的归因
  • 品牌化短链接解析为其等效的品牌化长链接
  • 按原样透传所有其他链接

然后,应用可以通过解析已解析的链接并跳转至相应的界面来处理该链接。可以使用此方法处理所有深度链接,包括 Adjust 品牌化长链接、其他通用链接以及应用 Scheme 深度链接。

方法签名
+ (void)processAndResolveDeeplink:(nonnull ADJDeeplink *)deeplink
withCompletionHandler:(nonnull ADJResolvedDeeplinkBlock)completion;

Adjust SDK 提供了processDeeplink(_:)方法,可在不使用品牌化短链接的情况下,记录深度链接点击的归因信息。

方法签名
+ (void)processDeeplink:(ADJDeeplink *)deeplink;

不过, processAndResolve(_:withCompletionHandler:)方法取代了此旧方法的功能,因此建议使用此较新的方法。

重要实施说明

请遵循以下深度链接处理最佳实践:

  1. 链接处理要求

    • 您的应用应以相同的方式处理 Adjust 品牌化链接 (brandname.go.link) 和通用链接 (example.com)。如果应用使用域名许可名单,请确保将 Adjust 品牌化域名包括在内。例如,以下两个链接都应跳转至同一界面:

      • Adjust 品牌化链接: https://brandname.go.link/summer-clothes?promo=beach
      • 通用链接: https://example.com/summer-clothes?promo=beach
    • 您的应用应以相同的方式处理 Adjust 品牌化链接和应用 Scheme 深度链接。在 iOS 不支持通用链接的情况下,Adjust 会将其转换为等效的应用 Scheme 格式。例如,以下两个链接都应跳转至同一界面:

      • Adjust 品牌化链接: https://brandname.go.link/summer-clothes?promo=beach
      • 应用 Scheme 深度链接: example://summer-clothes?promo=beach
  2. 应用状态注意事项

    • 确保应用在下列任何状态中打开链接时都能正确进行处理:“未运行”、后台或前台 (如果适用)。
    • 如果无法立即处理深度链接 (例如用户尚未完成身份验证),可以考虑将其存储,并在应用准备好进行导航时再处理。
  3. 应用内导航

    • 当应用尝试通过调用 UIApplication.open(_:options:completionHandler:) 或 SwiftUI 的 openURL 打开其自身的通用链接时,iOS 会在 Safari 中而不是在应用中打开这些链接。只能向其传递应用 Scheme 深度链接,才能使用这些方法进行内部导航。此外,还可以在应用内嵌入通用链接,并使用深度链接处理逻辑解析这些链接,以便跳转至相应的界面。

实施

使用与应用结构相符的实施方式:

使用 AppDelegate 生命周期的 UIKit 应用

更新 AppDelegate 以实施 iOS 直接深度链接方法。

使用 SceneDelegate 生命周期的 UIKit 应用

更新 SceneDelegate 以实施 iOS 直接深度链接方法。

使用 AppDelegate 生命周期的 SwiftUI 应用

如果尚未在项目的主目录中创建 AppDelegate.swift 文件,请立即执行此操作,并在主应用文件中加以引用,如以下 App.swift 示例文件所示。这是处理应用生命周期事件和 Adjust SDK 集成的必要步骤。此外,实施 onOpenURL SwiftUI 修饰符,该修饰符在应用安装时接收通用链接和应用 Scheme 深度链接。

使用 SceneDelegate 生命周期的 SwiftUI 应用

按照“使用 AppDelegate 生命周期的 SwiftUI 应用”栏中的说明进行操作。安装应用后,onOpenURL SwiftUI 修饰符会接收通用链接和应用 Scheme 深度链接,并且该链接会在后台或前台状态中打开相关应用。

此外,从“使用 SceneDelegate 生命周期的 UIKit 应用”栏实施scene(_:willConnectTo:options:)方法。此方法会在安装应用后接收通用链接和应用 Scheme 深度链接,并且该链接会在“未运行”状态中打开相关应用。