Отслеживание Deeplink для iOS
Краткое содержание
Deeplink — ссылка, ведущая на конкретный экран приложения. Аналитика позволяет фиксировать открытие приложения по такой ссылке, например, на карточку товара.
Для UISceneDelegate
- В методе
scene:willConnectToSession:options:добавьте код для отслеживания Deeplink и Universal Link, используяuserActivitiesиurlContexts. - В
UIApplicationDelegateреализуйте методыscene(_:continue:)иscene(_:openURLContexts:)для обработки переходов по ссылке.
Для UIApplicationDelegate
- Добавьте методы
trackOpeningURL,openURL, иcontinue:userActivity:для отслеживания открытий приложения по ссылке, когда оно уже запущено. - В статье приведены кодовые фрагменты для реализации этих методов.
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
}
Собранные данные о переходе отправятся в Аналитику.