DeepLink Plan - iOS SDK (v4)

GitHub Tag

本指南介绍如何安装 Airbridge iOS SDK 并进行必要的配置。

iOS SDK 安装

您可以通过以下方法安装 Airbridge iOS SDK。安装后,可以 测试 iOS SDK 来检查 SDK 是否正确安装。

1. 在 Xcode 中导航至 [File]>[Add Packages...]。

2. 在搜索栏中输入以下地址,并点击 [Add Package]。

3. 再次点击 [Add Package]。

4. 在 Xcode 的 [Package Dependencies] 中确认 Airbridge iOS SDK 已成功添加。

Restricted SDK

提示

请根据需求选择一般 SDK 或 Restricted SDK, 只能安装其中一个。

根据政策或环境,可能需要对收集 设备 ID(例如 GAID 和 IDFA)进行限制。如果安装 Restricted SDK,Airbridge SDK 不会收集设备 ID。

请按照以下说明安装 Restricted SDK:

1. 在 Xcode 中导航至 [File]>[Add Packages...]。

2. 在搜索栏中输入以下地址,并点击 [Add Package]。

3. 再次点击 [Add Package]。

4. 在 Xcode 的 [Package Dependencies] 中确认 Airbridge iOS SDK 已成功添加。

SDK 初始化

SDK 初始化方法因系统方式而异。SceneDelegate Lifecycle 或 AppDelegate Lifecycle 参考 AppDelegate,SwiftUI Lifecycle 参考 SwiftUI。

YOUR_APP_NAMEYOUR_APP_SDK_TOKEN 可在 Airbridge 面板的 [设置]>[Token] 获取。

请在 AppDelegateapplication(_:didFinishLaunchingWithOptions:) 函数顶部调用 Airbridge.initializeSDK 函数。

123456789101112131415
import UIKit
import Airbridge

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        let option = AirbridgeOptionBuilder(name: "YOUR_APP_NAME", token: "YOUR_APP_SDK_TOKEN")
            .build()
        Airbridge.initializeSDK(option: option)
        return true
    }
}

注意

Airbridge.initializeSDK 函数需在 AppDelegateapplication(_:didFinishLaunchingWithOptions:) 阶段调用,以确保正常运行。

ATT 弹窗提供

提示

为确保遵守隐私政策所需的功能,应与法律顾问共同审查。

在 iOS 环境中,只有在通过 ATT(App Tracking Transparency,应用跟踪透明度)弹窗征得用户同意后,才能收集 IDFA

收集安装事件应延迟到用户允许追踪后进行。IDFA 会与安装事件一同收集,因此如果在用户通过 ATT 弹窗允许追踪之前收集安装事件,IDFA 将缺失,影响绩效监测。建议设置足够的延迟时间,以确保 IDFA 被正确收集。

1. 准备好您将在 ATT 弹窗中使用的文本。

2. 在 Info.plist 文件的 NSUserTrackingUsageDescription 值中输入准备好的文本。

  1. 请导航至 [Xcode]>[YOUR_PROJECT]>[Info]>[Custom iOS Target Properties]。

  2. 请将鼠标悬停在 Key 的项目,点击出现的 “+”,并输入 Privacy - Tracking Usage Description

  3. 请将准备好的 ATT 弹窗文本作为值输入。

3. 设置 ATT 弹窗的弹出时间。

4. 如果未收集到安装事件,Airbridge iOS SDK 会在每次 App 启用时延迟 30 秒尝试收集安装事件,直到用户允许追踪为止。如果用户在决定是否允许追踪之前关闭 App,SDK 将不会收集安装事件,并会在下次启用 App 时重试。

安装事件默认收集延迟时间为 30 秒。您可以使用 setAutoDetermineTrackingAuthorizationTimeout 函数修改此值,最长可达 3600 秒(1 小时)。

提示

在 DeepLink Plan 中,建议将 setAutoDetermineTrackingAuthorizationTimeout 函数设为 0 秒。DeepLink Plan 不支持基于标识符的归因。为了使安装 App 的用户能立即通过 延迟深度链接 跳转至预设目标页面,建议将该函数设为 0 秒。

1234567
import Airbridge
...
let option = AirbridgeOptionBuilder(name: "YOUR_APP_NAME",
                                    token: "YOUR_APP_SDK_TOKEN")
    .setAutoDetermineTrackingAuthorizationTimeout(second: 30)
    .build()
Airbridge.initializeSDK(option: option)

Airbridge 在追踪链接打开时,会根据用户环境,将追踪链接中配置的 URI Scheme 深度链接转换为最适合的 Airbridge 深度链接(HTTP 深度链接或 URI Scheme 深度链接)以引导用户进入 App。随后,Airbridge SDK 会将 Airbridge 深度链接重新转换为追踪链接中配置的 URI Scheme 深度链接,并传递至 App。

  • 追踪链接中配置的 URI Scheme 深度链接示例:YOUR_SCHEME://product/12345

  • Airbridge 深度链接示例:

    • HTTP 深度链接格式 1:https://YOUR_APP_NAME.airbridge.io/~~~

    • HTTP 深度链接格式 2:https://YOUR_APP_NAME.abr.ge/~~~

    • URI Scheme 深度链接格式:YOUR_SCHEME://product/12345?airbridge_referrer=~~~

当 App 已安装时,用户点击追踪链接后,App 将通过 Airbridge 深度链接打开。随后,Airbridge SDK 会将该 Airbridge 深度链接转换为追踪链接中配置的 URI Scheme 深度链接,并将转换后的 URI Scheme 深度链接传递给 App。

当 App 未安装时,用户点击追踪链接后,Airbridge SDK 会保存 Airbridge 深度链接信息。用户被发送至应用商店或网站安装并打开 App 后,Airbridge SDK 会将保存的 Airbridge 深度链接转换为追踪链接中配置的 URI Scheme 深度链接,并将转换后的 URI Scheme 深度链接传递给 App。

深度链接设置

深度链接设置需要在 Airbridge 面板中注册的深度链接信息和用户跳转目的地的 App 内页面地址。

首先,在 Airbridge 面板注册深度链接信息:

在 Airbridge 面板注册深度链接信息后,需要在 App 中设置深度链接。根据 App 的系统方式,查看相应的深度链接设置流程:

延迟深度链接(Deferred Deep Link)设置

当 App 未安装时,如果用户点击了设置了延迟深度链接的追踪链接,Airbridge 深度链接信息将被保存。Airbridge SDK 会通过以下方法来获取保存的深度链接:

Airbridge.handleDeferredDeeplink 函数在获取已保存的 Airbridge 深度链接后,会将 Airbridge 深度链接转换为 URI Scheme 深度链接,并将转换后的 URI Scheme 深度链接传递给 App。转换后的 URI Scheme 深度链接将用户发送至设置的目的页面。

1234567891011
import Airbridge
...
let option = AirbridgeOptionBuilder(name: "YOUR_APP_NAME", token: "YOUR_APP_SDK_TOKEN")
    .build()
Airbridge.initializeSDK(option: option)
...
let isHandled = Airbridge.handleDeferredDeeplink() { url in
    if let url {
        // show proper content using url (YOUR_SCHEME://...)
    }
}

Airbridge.handleDeferredDeeplink 函数在 App 安装后首次被调用时会返回 true,并等待获取 Airbridge 深度链接,将其转换为 URI Scheme 深度链接后传递给 onSuccess。您可以使用该 URI Scheme 深度链接将用户发送至预设目标页面。

如果没有保存的 Airbridge 深度链接,则会向 onSuccess 传递 nil。如果 SDK 尚未初始化,或 Airbridge.handleDeferredDeeplink 函数并非首次被调用,则会返回 false

传递的 URI Scheme 深度链接通常是 YOUR_SCHEME://... 格式的 URL。如果使用 Meta Deferred App Link 等服务,则可能会传递其他格式的 URL。

测试

可通过 SDK 运行测试和深度链接测试,验证 Airbridge SDK 和深度链接是否正常运行。

SDK 运行测试

App 安装事件会自动被 iOS SDK 收集,无需额外设置。

检查 App 安装事件的收集

1. 准备未安装您 App 的测试设备,或在测试前删除该 App。

2. 将 SDK 日志级别设置为 LOG_ALL

123
let option = AirbridgeOptionBuilder(name: "YOUR_APP_NAME", token: "YOUR_APP_SDK_TOKEN")
    .build()
Airbridge.initializeSDK(option: option)

3. 在测试设备上安装 App。安装后需要启用 App,才能收集到 App 安装事件。请启用 App。

Airbridge 将首次收集的打开(Open)事件记录为安装(Install)事件。因此,如果收集到安装(Install)事件,打开(Open)事件可能不会被记录。

4. 在 [Xcode]>[Console] 检查测试设备的 IDFA 事件日志。在 Console Filter 输入 Library:Airbridge。若 App 安装事件被正常收集,可在日志中查看如下信息:

  • Send event packets to Airbridge: categories=9161

  • Send event packets to Airbridge: categories=9163

5. 如果经过足够时间后 Xcode 的 Console 仍无日志,请检查 SDK 是否已初始化、配置是否正确、以及网络状态。

如果反复无法查到 App 安装事件,请通过 [帮助] 提交请求,并附上 SDK 日志。

深度链接测试

提前准备

#{"width":"120px"}

#{"width":"240px"}

说明

#{"width":"140px"}

相关指南

HTTP 深度链接(App link)设置

- 必需设置。

- 面板设置

- 深度链接设置

URI Scheme 深度链接设置

- 必需设置。

- 面板设置

- 深度链接设置

延迟深度链接设置

- 自动设置,无需额外设置。

- 延迟深度链接设置

品牌域名设置

- 可选设置。

- 面板设置

App 安装

- 如果不测试延迟深度链接,请提前在测试设备上安装 App。

- 如果测试延迟深度链接,测试设备上不应安装 App。如果已安装,请提前卸载。

通过深度链接测试网站进行测试

1. 在测试设备上访问 深度链接测试网站。您可以扫描下方 QR 码访问。

2. 在 App Name 栏输入在 Airbridge 面板注册的 App 名称。App 名称可在 Airbridge 面板的 [设置]>[Token] 获取。

若要测试特定深度链接地址,在 Deeplink URL 栏中输入 URI Scheme 深度链接,格式应为 {YOUR_SCHEME}://...

如果要测试 品牌域名,在 Custom Domain 栏输入品牌域名。

3. 根据所需测试的深度链接类型,点击相应的按钮。

请注意,延迟深度链接只能在测试设备未安装 App 的情况下进行测试。

#{"width":"120px"}

按钮

#{"width":"240px"}

说明

#{"width":"140px"}

示例

Test HTTP Deeplink Type-1

- 可以测试 https://{your_app-name}.abr.ge 格式的 HTTP 深度链接。

https://{your_app-name}.abr.ge/@{your_app-name}/test_sdk?...

Test HTTP Deeplink Type-2

- 可以测试 https://abr.ge 格式的 HTTP 深度链接。与 Test HTTP Deeplink Type-1 的地址格式不同。

https://abr.ge/@{your_app-name}/test_sdk?...

Test Scheme Deeplink

- 可以测试 URI Scheme 深度链接。

https://abr.ge/@{your_app-name}/test_sdk?...

Test Deferred Deeplink

- 可以测试延迟深度链接。

https://abr.ge/@{your_app-name}/test_sdk?...

Test Custom Domain Deeplink

- 仅在输入品牌域名时可用。

- 可以测试品牌域名。

https://{your_custom_domain}/@{your_app-name}/test_sdk?...

4. 在 [Xcode]>[Console] 检查测试设备的 IDFA 事件日志。在 Console Filter 输入 [Airbridge][Debug]。若深度链接事件被正常收集,可在日志中查看如下信息:

  • [Airbridge] [Debug] - success network to url: https://core.airbridge.io/api/v4/apps/{app_name}/events/mobile-app/9162

  • [Airbridge] [Debug] - success network to url : https://core.airbridge.io/api/v4/apps/{app_name}/events/mobile-app/9163

  • [Airbridge] [Debug] - success network to url : https://core.airbridge.io/api/v4/apps/{app_name}/events/mobile-app/9168

如果在 Airbridge SDK 初始化过程中将日志级别设置为 DEBUG,则可查看通过网络传输的数据。

5. 通过 Client request: method={...} 消息发送 header 和 body 值。根据您点击的按钮,进一步检查以下项目。如果深度链接正常运行,所有项目都应符合。

问题排查

问题

解决方法

点击深度链接后,App 未启用,或 SDK 日志显示的内容与设置不符。

请参考 深度链接设置,检查深度链接设置是否正确。

点击深度链接后,App 已启用,但未跳转至设定的 App 页面。

您需要手动实现,使用户能够根据传递给 onSuccess 函数的深度链接路径进行跳转。请参考 深度链接设置

Was this page helpful?

Have any questions or suggestions?