Отслеживание 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
}
Собранные данные о переходе отправятся в Аналитику.