Глубокие ссылки в мобильном приложении для iOS

Глубокая ссылка — это ссылка на конкретный контент в вашем приложении, а не на приложение в целом. Подробную информацию см. в статье Добавление глубоких ссылок в рекламу приложения.

Поддержку глубоких ссылок можно реализовать с помощью универсальных ссылок или пользовательских схем URL.

Поддержка универсальных ссылок

Предварительные требования

Прежде чем настраивать поддержку универсальных ссылок в своем приложении для iOS, убедитесь, что выполняются перечисленные ниже требования.

Если все требования соблюдены, вы можете добавить в свое приложение код для измерения на основе агрегированных данных о событиях. Подробную информацию см. в статье Измерение на основе агрегированных данных о событиях.

Поддержка пользовательских схем URL в мобильном приложении

Шаг 1. Добавление настроек для глубоких ссылок

На Панели приложений добавьте информацию о глубоких ссылках для своего приложения. Перейдите в Панель приложений > Настройки > iOS.

  • Для поля Суффикс схемы URL добавьте схему URL без ://. Например, если ваша схема URL выглядит как mytravelapp://, введите mytravelapp. Примечание. Это не распространяется как требование для версий iOS ниже iOS16.
  • Для поля ID App Store необходимо получить ID из URL приложения в App Store — https://itunes.apple.com/us/app/my-app/APP_STORE_ID.

Шаг 2. Отсроченный переход по глубоким ссылкам (необязательно)

Отсроченный переход по глубоким ссылкам позволяет перенаправить людей в пользовательское представление после установки вашего приложения из магазина.

Его необходимо использовать, если вы настраиваете таргетинг на людей, которые ещё не установили ваше приложение. Если вы показываете рекламу только людям, которые уже установили приложение, отсроченный переход по глубоким ссылкам не понадобится.

Из-за изменений в iOS 14 конечная точка POST /{ad-id} для кампаний SKAdNetwork больше не поддерживает отсроченный переход по глубоким ссылками.

В состав Facebook SDK для iOS входит продукт App Links, который дает возможность поддерживать отсроченный переход по глубоким ссылкам в приложении. Чтобы настроить отсроченный переход, реализуйте глубокую ссылку и добавьте в приложение показанный ниже код.

Если вы соблюдаете Общий регламент по защите данных и соответствующие рекомендации по использованию 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 и глубокой ссылки можно с помощью нашего Помощника по рекламе приложений. Его можно найти в разделе инструментов и поддержки. Рекомендуем не запускать рекламу с глубокими ссылками без проверки.

Проверка настройки глубокой ссылки

Если выбрана цель "установка приложения", вы можете добавить отложенную глубокую ссылку (глубокую ссылку с отсроченным переходом).

В Ads Manager выберите Создать AdSet и перейдите к пункту Рекламный креатив. Добавьте глубокую ссылку или URL с метаданными App Links Facebook, который перенаправит пользователя на определенный экран приложения после его установки.

Статьи по теме