当已安装应用的用户点击 Adjust 链接时,直接深度链接可确保将用户直接转到应用内的特定内容。
工作原理
- 用户点击 Adjust 链接。
- 操作系统打开您的应用,并将深度链接发送至原生代码 (iOS 或 Android)。
- Adjust SDK 在原生代码中监听来自操作系统的深度链接,并将其转发至
directDeeplinkCallback。 - 您的代码会将链接发送至 Adjust SDK 进行归因。SDK 还能解析短品牌化链接。
- 您的代码会根据已解析的链接为用户导航。
Adjust SDK 方法
直接深度链接回传
在调用 Adjust.initSdk 之前,在您的 AdjustConfig 对象上设置 directDeeplinkCallback,以便在原生代码中接收 Adjust SDK 截获的深度链接。
DirectDeeplinkCallback? directDeeplinkCallback;处理并解析深度链接 (推荐)
使用 Adjust.processAndResolveDeeplink 方法,该方法会执行以下操作:
- 记录深度链接点击的归因
- 将品牌化短链接解析为其等效的品牌化长链接
- 按原样透传所有其他链接
static Future<String?> processAndResolveDeeplink(AdjustDeeplink deeplink)处理深度链接 (旧版)
如果您使用的不是短品牌化链接,那么 Adjust.processDeeplink 方法就会记录来自深度链接点击的归因。
static void processDeeplink(AdjustDeeplink deeplink)processAndResolveDeeplink 方法会取代该遗留方法。
实施
在调用 Adjust.initSdk 之前,在 AdjustConfig 对象上设置 directDeeplinkCallback。每当 Adjust SDK 从操作系统收到原生代码形式的深度链接时,回传就会触发。
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
// Set direct deep link callback before initializing SDKadjustConfig.directDeeplinkCallback = (String? incomingLink) async { if (incomingLink == null) return;
// Create deep link object final deeplink = AdjustDeeplink(incomingLink);
// Send deep link to Adjust's servers for attribution. // If short branded link, receive long link. // Otherwise, receive original link. final resolvedLink = await Adjust.processAndResolveDeeplink(deeplink);
// Handle failure if resolvedLink is null if (resolvedLink == null) return;
/* * TODO: Handle the deep link and navigate to the appropriate screen. * * Possible resolvedLink formats: * * 1. https://brandname.go.link/?adj_t=def456& * adj_link=https%3A%2F%2Fexample.com%2Fsummer-clothes%3Fpromo%3Dbeach * -> extract and decode the deep link from adj_link * * 2. https://brandname.go.link/summer-clothes?promo=beach&adj_t=def456 * -> extract path from the URL * * 3. example://summer-clothes?promo=beach&adj_t=def456 * -> extract path from the URL * * Note (Android only): If your Android app scheme path differs from iOS, * you may receive: * https://brandname.go.link/?adj_t=def456& * adj_deep_link=example%3A%2F%2Fandroid-specific-path%3Fparam%3Dvalue * -> extract and decode the deep link from adj_deep_link */};
Adjust.initSdk(adjustConfig);Android: 专用深度链接活动
如果您的主要活动为 singleTop、standard或未指定启动模式,则需要创建专用的深度链接活动,以确保深度链接能在应用已经运行的情况下正确打开。
之所以有必要,是因为如果配置有误,深度链接就可能在新的任务或另一个应用任务中启动应用 (例如浏览器) 导致两个应用实例同时运行。
原生 Android 设置
- 使用专用深度链接活动方法配置 manifest
- 创建一个 DedicatedDeepLinkActivity,将深度链接转发到您的主 FlutterActivity
深度链接如何抵达您的 Flutter 代码
- 用户点击 Adjust 链接。
- 操作系统使用深度链接 Intent 打开您的
DedicatedDeepLinkActivity。 DedicatedDeepLinkActivity使用标记将 Intent 转发至您的主FlutterActivity,将现有实例置于最前面。- Adjust SDK 从您的主
FlutterActivity接收深度链接,并将其转发至您的directDeeplinkCallback。