Перейти к основному содержимому

Отслеживание Deeplink для iOS

Краткое содержание

Deeplink — ссылка, которая ведёт на конкретный экран приложения. В Аналитике можно фиксировать факт открытия приложения из другого приложения или из браузера по такой ссылке.

Для UISceneDelegate

  • Чтобы отслеживать открытия приложения по ссылке, когда оно закрыто, в методе scene:willConnectToSession:options: добавьте код для проверки типа активности и отслеживания перехода по Universal Link или Deeplink.
  • Для отслеживания открытия через UIApplicationDelegate, реализуйте методы scene(_:continue:) и scene(_:openURLContexts:), чтобы обработать переходы по ссылке и передать данные в Аналитику.

Для UIApplicationDelegate

  • Чтобы отслеживать открытия приложения по ссылке, когда оно уже запущено, используйте методы trackOpeningURL, openURL, и continue:userActivity: в UIApplicationDelegate.
  • В этих методах добавьте код для передачи URL в Аналитику, что позволит собрать данные о переходах по ссылкам.
  • Собранные данные о переходе отправятся в Аналитику.

Deeplink — ссылка, которая ведёт на конкретный экран приложения. В Аналитике есть возможность фиксировать факт открытия приложения из другого приложения или из браузера по такой ссылке.

Пример

Пользователь переходит по ссылке (Deeplink) и попадает на определённый экран. Например, не просто на Главную приложения, а на карточку конкретного товара. В Аналитику поступят данные о таких событиях и их параметрах.

Для UISceneDelegate

  • Чтобы отслеживать открытия приложения по ссылке, когда оно закрыто в UISceneDelegate, метод scene:willConnectToSession:options:, добавьте
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
let userActivity = connectionOptions.userActivities.first
if userActivity?.activityType == NSUserActivityTypeBrowsingWeb {
// для Universal Link
if let url = userActivity?.webpageURL {
mtsAnalytics.track(url: url, parameters: [:])
// Отслеживание факта перехода и параметров перехода
}
} else {
// для Deeplink
if let context = connectionOptions.urlContexts.first {
mtsAnalytics.track(url: context.url, parameters: [:])
// Отслеживание факта перехода и параметров перехода
}
}
}
  • Чтобы отслеживать открытия приложения по ссылке, используя UIApplicationDelegate, добавьте в него
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
let url = userActivity.webpageURL
if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url {
mtsAnalytics.track(url: url, parameters: [:])
// Отслеживание факта перехода и параметров перехода
}
}

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
if let context = URLContexts.first {
mtsAnalytics.track(url: context.url, parameters: [:])
// Отслеживание факта перехода и параметров перехода
}
}

Для UIApplicationDelegate

Чтобы отслеживать открытия приложения по ссылке, когда оно уже запущено, используйте UIApplicationDelegate и добавьте

func application(_ application: UIApplication, trackOpeningURL url: URL) -> Bool {
mtsAnalytics.track(url: context.url, parameters: [:])
return true
}

func application(_ application: UIApplication, openURL url: URL, sourceApplication: String?, annotation: AnyObject) -> Bool {
mtsAnalytics.track(url: context.url, parameters: [:])
// Отслеживание факта перехода и параметров перехода
return true
}

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL {
mtsAnalytics.track(url: context.url, parameters: [:])
// Отслеживание факта перехода и параметров перехода
}
return true
}

Собранные данные о переходе отправятся в Аналитику.