延迟深度链接会先将用户转到 App Store,让用户安装应用,然后再将其发送至应用内具体位置。
工作原理
延迟深度链接工作原理如下:
- 用户点击 Adjust 深度链接。
- Adjust 服务器将用户重定向至 App Store。
- 用户安装并打开您的应用。
- Adjust 服务器进行归因,并将深度链接发送至 Adjust SDK。
- 您的应用展示初始内容,如新客户引导界面和用户登录 (如适用)。
- 应用从 Adjust SDK 中调取并处理深度链接。
设置
您可以通过两种方式在应用中设置延迟深度链接:
- Adjust 服务器会自动将延迟深度链接发送至 Adjust SDK。用户打开应用时,Adjust 会用深度链接自动调用
open(_:options:completionHandler:)
方法。如果您的应用没有初始内容 (例如:客户引导页面和用户登录),或者应用已经在打开深度链接前处理了此内容,那么无需进行进一步的配置,可以跳过此部分。
- 如果您的应用存在初始内容 (例如:客户引导页面和用户登录),但应用未在处理深度链接前处理内容,那么可以添加一个延迟深度链接监听器。
设置延迟深度链接监听器
- 为延迟深度链接设置委托回传。如果您已经配置归因回传,可以跳过这一步。
class AppDelegate: UIResponder, UIApplicationDelegate, AdjustDelegate {
@interface AppDelegate : UIResponder <UIApplicationDelegate, AdjustDelegate>
- 如尚未进行此操作,请创建一个
ADJConfig
类的实例并在应用委托中 ADJConfig
上设置一个委托。您需要在 SDK 初始化前在 ADJConfig
中设置委托。
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let adjustConfig = ADJConfig(
environment: environment)
adjustConfig?.delegate = self
Adjust.appDidLaunch(adjustConfig)
*adjustConfig = [ADJConfig configWithAppToken:@"{YourAppToken}"
environment:ADJEnvironmentSandbox];
[adjustConfig setDelegate:self];
[Adjust appDidLaunch:adjustConfig];
- 向委托添加
adjustDeeplinkResponse
延迟深度链接回传方法。Adjust SDK 收到延迟深度链接后会调用该方法。
- 设置深度链接处理代码。
- 将
adjustDeeplinkResponse
方法返回值设为 true 或 false。该值会指示您是否希望 Adjust SDK 在深度链接处理完代码运行后调用 open(_:options:completionHandler:)
方法并打开应用。
func adjustDeeplinkResponse(_ deeplink: URL?) -> Bool {
// add your code below to handle deep link
// (for example, show onboarding screens, then open deep link content)
// deeplink object contains the deep link
- (BOOL)adjustDeeplinkResponse:(NSURL *)deeplink {
// add your code below to handle deep link
// (for example, show onboarding screens, then open deep link content)
// deeplink object contains the deep link
设置 Adjust LinkMe
@property (nonatomic, assign) BOOL linkMeEnabled;
Adjust LinkMe 解决方案为可选功能,能通过允许应用从设备剪贴板读取深度链接信息来确保延迟深度链接表现。
当用户点击 LinkMe URL 时,可以选择将链接信息复制到剪贴板。您可以使用 Adjust SDK 读取系统剪贴板,获取深度链接信息。如果含有深度链接信息,Adjust SDK 就会将用户转到应用中的正确页面。
要在您的应用中开启剪贴板查看,在 ADJConfig
对象上调用 setLinkMeEnabled
方法并发送 true
参数:
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let adjustConfig = ADJConfig(
environment: environment)
adjustConfig?.linkMeEnabled = true
NSString *yourAppToken = @"{YourAppToken}";
NSString *environment = ADJEnvironmentSandbox;
*adjustConfig = [ADJConfig configWithAppToken:yourAppToken
environment:environment];
[adjustConfig setLinkMeEnabled:YES];
setupWebViewJavascriptBridge(function (bridge) {
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig(yourAppToken, environment);
adjustConfig.setLinkMeEnabled(true);