Добавление глубоких ссылок в рекламу приложения

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

Глубокие ссылки помогают повысить качество обслуживания клиентов: нажав на рекламу в приложении, человек сразу же попадает на страницу с интересующей его информацией. Без глубоких ссылок людям придется вручную искать в приложении нужный контент, но на это не у каждого хватит терпения.

Как работают глубокие ссылки

  1. В приложении показывается персонализированная реклама: например, вы предлагаете поездку в Сан-Франциско.
  2. Люди нажимают ссылку для скачивания вашего приложения.
  3. Поскольку ссылка для скачивания представляет собой глубокую, люди сразу же перейдут к интересующим их материалам о путешествии в Сан-Франциско.

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

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

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

Подробнее о сборе ID рекламодателей см. в этой статье.

Пошаговое руководство

Прежде чем начать

Если вы работаете с Android, прочитайте официальное руководство Create Deep Links to App Content (Создание глубоких ссылок на контент в приложении).

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

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

Настройки в Android

  • Название класса: название класса запуска можно найти в файле AndroidManifest.xml. Название класса должно выглядеть как com.example.androidapp.MainActivity.
Android: перейдите в панель приложений, нажмите "Настройки" и выберите "Android".

Настройки в iOS

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

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

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

В каких случаях полезен отсроченный переход по глубокой ссылке?

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

Отсроченный переход по глубокой ссылке с использованием App Links

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

AppLinkData.fetchDeferredAppLinkData(this, 
  new AppLinkData.CompletionHandler() {
     @Override
     public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
         // Process app link data
     }
 }
);
# 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;
}

# 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;
}

В версии 5.0.0 появился флажок для отключения автоматической инициализации SDK. Если вы соблюдаете Общий регламент по защите данных и соответствующие рекомендации по использованию Facebook SDK, включайте автоматическую инициализацию, только когда конечный пользователь даст на это согласие, и лишь затем активируйте отсроченный переход по глубокой ссылке:

// Get user consent
FacebookSdk.setAutoInitEnabled(true);
FacebookSdk.fullyInitialize();
AppLinkData.fetchDeferredAppLinkData(this, 
  new AppLinkData.CompletionHandler() {
     @Override
     public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
         // Process app link data
     }
 }
);
# Objective-C
- (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 {
        // 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;
}

Справка по классу: Android > AppLinkData | iOS > FBSDKAppLinkUtility

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

Проверить настройки Facebook SDK и глубокой ссылки можно с помощью нашего Помощника по рекламе приложений. Вы найдете его в разделе инструментов и поддержки. Мы рекомендуем не запускать рекламу с глубокими ссылками без проверки.

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

При создании рекламы в Ads Manager обратите внимание на перечисленные далее настройки.

  1. Целевая платформа. В разделе "Кого бы вы хотели охватить рекламой?" укажите:

    • Android: Android only в качестве платформы;
    • iOS: iOS only в качестве платформы.
  2. Добавление глубокой ссылки. В разделе Какой текст и ссылки вы хотели бы использовать? добавьте глубокую ссылку, например mytravelapp://tripId=SF или URL с метаданными App Links Facebook.


Если выбрана цель "установки приложения", можно также указать глубокую ссылку с отсроченным переходом или URL с метаданными App Links Facebook, который перенаправит пользователя на определенный экран приложения после его установки.