iOS 移动应用中的深度链接

作为一种链接,深度链接不仅可以指向您的应用,还可以指向您应用中的特定内容。详情请参阅向您的应用广告添加深度链接

您可以使用通用链接或自定义网址格式支持深度链接。

支持通用链接

前提条件

您必须满足以下前提条件,才可以在 iOS 移动应用中支持通用链接:

满足前提条件后,您可以将代码添加到您的应用中,为全事件衡量提供支持。详情请参阅全事件衡量

在移动应用中支持自定义网址格式

第 1 步:添加深度链接设置

应用面板中为应用添加深度链接信息。前往面板 > 设置 > iOS

  • 对于网址格式后缀,需添加不含有 :// 的网址格式。例如,如果您的网址格式是 mytravelapp://,则输入 mytravelapp注意:此要求不适用于 iOS 16 以下的 iOS 版本。
  • App Store 编号:您可以从以下 App Store 网址获取 App Store 编号:https://itunes.apple.com/us/app/my-app/APP_STORE_ID

第 2 步:延迟深度链接(可选)

延迟深度链接可在用户通过应用商店安装您的应用后,将用户定向至一个自定义视图。

如果您向尚未安装应用的用户投放广告,则必须使用延迟深度链接。如果您只向已安装应用的用户投放广告,则无需添加延迟深度链接。

由于 iOS 14 有所更新,SKAdNetwork 广告系列POST /{ad-id} 端点将不再支持延迟深度链接。

iOS 版 Facebook SDK 包含名为应用链接的产品,可便于您在应用内支持延迟深度链接。在实现深度链接后,只需将以下代码添加到应用即可处理延迟深度链接。

如果您遵循 Facebook SDK 通用数据保护条例合规最佳实践中所述的通用数据保护条例合规要求,则请在获得最终用户同意后,先重新启用 SDK 自动初始化功能,然后再抓取延迟链接。

Objective-C

以下代码用于处理延迟链接:

#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  if (launchOptions[UIApplicationLaunchOptionsURLKey] == nil) {
    [FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {
      if (error) {
        NSLog(@"Received error while fetching deferred app link %@", error);
      }
      if (url) {
        [[UIApplication sharedApplication] openURL:url];
      }
    }];
  }
  return YES;
}

以下代码用于重新启用 SDK 自动初始化功能(按需使用):

#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  if (launchOptions[UIApplicationLaunchOptionsURLKey] == nil) {
    // Get user consent
    [FBSDKSettings setAutoInitEnabled:YES];
    [FBSDKApplicationDelegate initializeSDK:nil];
    [FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {
      if (error) {
        NSLog(@"Received error while fetching deferred app link %@", error);
      }
      if (url) {
        [[UIApplication sharedApplication] openURL:url];
      }
    }];
  }
  return YES;
}

Swift

以下代码用于处理延迟链接:

import FacebookCore

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        AppLinkUtility.fetchDeferredAppLink { (url, error) in
            if let error = error {
                print("Received error while fetching deferred app link %@", error)
            }
            if let url = url {
                if #available(iOS 10, *) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(url)
                }
            }
        }
        return true;
}

以下代码用于重新启用 SDK 自动初始化功能(按需使用):

import FacebookCore

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        // Get user consent
        Settings.isAutoInitEnabled = true
        ApplicationDelegate.initializeSDK(nil)
        AppLinkUtility.fetchDeferredAppLink { (url, error) in
            if let error = error {
                print("Received error while fetching deferred app link %@", error)
            }
            if let url = url {
                if #available(iOS 10, *) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(url)
                }
            }
        }
        return true;
} 

第 3 步:验证深度链接设置

您可以在“工具和支持”部分的应用广告帮手中验证您的 Facebook SDK 和深度链接设置。我们建议您先验证设置,然后开始投放深度链接广告。

验证深度链接设置

如果您已将应用安装量选作目标,则可以添加延迟深度链接。

广告管理工具中,选择新广告组并滚动至广告创意。添加深度链接或 Facebook 应用链接元数据的网址,以便在安装后将用户带到应用中的特定位置。