Deep Links (диплинки) — это специальные ссылки, которые открывают конкретную страницу или раздел внутри мобильного приложения, минуя главный экран. В этом подробном руководстве разберем, что такое диплинки, чем отличаются Universal Links от App Links, и как их правильно настроить.
Что такое Deep Links простыми словами
Представьте, что вы получили ссылку на товар в интернет-магазине. Обычная ссылка откроет браузер, где придется авторизоваться заново. Deep Link откроет приложение магазина сразу на странице этого товара — быстро и удобно.
Три типа диплинков
| Тип | Описание | Пример |
|---|---|---|
| URI Scheme | Базовый формат (myapp://). Старая технология, не работает если приложение не установлено | instagram://user?username=example |
| Universal Links (iOS) | Открывает приложение или сайт. Работает безопасно через HTTPS | https://instagram.com/example |
| App Links (Android) | Аналог Universal Links для Android 6.0+ | https://instagram.com/example |
💡 Важно знать
С 2024 года Apple и Google рекомендуют использовать только Universal Links и App Links. URI Scheme считаются устаревшими и менее безопасными.
Universal Links для iOS: пошаговая настройка
Universal Links позволяют одной ссылке работать и как веб-адрес, и как диплинк. Если приложение установлено — откроется приложение. Если нет — откроется сайт в браузере.
Шаг 1: Создайте файл apple-app-site-association
Разместите JSON-файл на вашем сервере по адресу:
https://yourdomain.com/.well-known/apple-app-site-association
Содержимое файла:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.yourcompany.yourapp",
"paths": [
"/products/*",
"/categories/*",
"/user/*"
]
}
]
}
}
⚠️ Важные требования
- Файл должен быть доступен по HTTPS (SSL обязателен)
- Content-Type должен быть application/json
- Без расширения .json в имени файла
- TEAMID найдете в Apple Developer Account
Шаг 2: Настройте Xcode проект
1. Откройте проект в Xcode
2. Выберите Target → Signing & Capabilities
3. Добавьте "Associated Domains"
4. Добавьте домен в формате:
applinks:yourdomain.com
Шаг 3: Обработайте ссылку в коде (Swift)
// AppDelegate.swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL else {
return false
}
// Парсим URL и открываем нужный экран
if url.path.hasPrefix("/products/") {
let productId = url.lastPathComponent
openProductScreen(productId: productId)
return true
}
return false
}
App Links для Android: настройка
App Links — это Android-версия Universal Links. Принцип работы тот же: одна ссылка открывает приложение или сайт.
Шаг 1: Создайте файл assetlinks.json
Разместите файл по адресу:
https://yourdomain.com/.well-known/assetlinks.json
Содержимое:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourcompany.yourapp",
"sha256_cert_fingerprints": [
"AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99"
]
}
}]
Получить SHA256 отпечаток:
keytool -list -v -keystore my-release-key.keystore
Шаг 2: Настройте AndroidManifest.xml
<activity android:name=".MainActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="yourdomain.com"
android:pathPrefix="/products" />
</intent-filter>
</activity>
Шаг 3: Обработайте ссылку в коде (Kotlin)
// MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val action: String? = intent?.action
val data: Uri? = intent?.data
if (action == Intent.ACTION_VIEW && data != null) {
val productId = data.lastPathSegment
if (data.path?.startsWith("/products/") == true) {
openProductScreen(productId)
}
}
}
Создавайте короткие ссылки с поддержкой Deep Links
Сократитель.рф автоматически определяет диплинки и корректно перенаправляет пользователей в мобильные приложения
Попробовать бесплатноDeferred Deep Linking: что это и зачем нужно
Обычный диплинк работает только если приложение уже установлено. Deferred Deep Link (отложенный диплинк) решает проблему для новых пользователей:
- Пользователь кликает на ссылку, но приложения нет
- Перенаправление в App Store / Google Play
- Пользователь устанавливает приложение
- При первом запуске приложение открывает нужную страницу
🎯 Практический пример
Пользователь получил промокод на скидку. Кликает на ссылку, но приложения нет. Устанавливает его, и при первом запуске сразу видит экран с этим промокодом — не нужно искать вручную!
Как реализовать Deferred Deep Linking
Самый простой способ — использовать готовые сервисы:
- Branch.io — самое популярное решение, бесплатный тариф
- Firebase Dynamic Links — от Google, бесплатно (но в 2025 будет закрыт)
- AppsFlyer OneLink — для атрибуции и аналитики
- Adjust — продвинутая аналитика + диплинки
Пример интеграции с Branch.io (iOS, Swift):
import Branch
// AppDelegate.swift
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Branch.getInstance().initSession(launchOptions: launchOptions) { (params, error) in
if let params = params {
// Пользователь перешел по диплинку
if let productId = params["product_id"] as? String {
self.openProductScreen(productId: productId)
}
}
}
return true
}
Сценарии использования Deep Links
1. E-commerce: карточки товаров
Задача: Пользователь кликает на товар в email-рассылке
Ссылка: https://shop.com/products/sneakers-123
Результат: Приложение открывается сразу на карточке кроссовок
2. Социальные сети: профили
Задача: Пригласить друга подписаться
Ссылка: https://instagram.com/username
Результат: Открывается профиль в приложении Instagram
3. Доставка еды: акции
Задача: Промо-кампания "Пицца -30%"
Ссылка: https://foodapp.com/promo/pizza30
Результат: Приложение открывается на экране с акционными пиццами
4. Онлайн-обучение: курсы
Задача: Вернуть пользователя к просмотру урока
Ссылка: https://courses.com/course-123/lesson-5
Результат: Приложение открывает конкретный урок курса
5. Банкинг: платежи
Задача: Оплатить счет из SMS
Ссылка: https://bank.com/pay/invoice-456
Результат: Приложение открывает экран оплаты счета
Аналитика и атрибуция диплинков
Отслеживайте эффективность ваших Deep Links с помощью параметров:
https://yourapp.com/products/123?utm_source=email&utm_campaign=summer_sale&utm_medium=deeplink
Ключевые метрики для анализа:
- Click-to-Install Rate — сколько пользователей установили приложение после клика
- Deep Link Open Rate — процент успешных открытий диплинка
- Deferred Deep Link Conversion — сколько новых пользователей дошли до целевого экрана
- Time to Open — скорость открытия приложения
- Retention Rate — возврат пользователей, пришедших по диплинку
📊 Интеграция с аналитикой
Используйте Сократитель.рф для создания коротких диплинков с UTM-метками. Вся статистика переходов, география, устройства и конверсии будут доступны в удобном дашборде.
Короткие Deep Links: зачем они нужны
Обычный диплинк может выглядеть так:
https://yourapp.com/products/sneakers-nike-air-max-2024?utm_source=instagram&utm_medium=stories&utm_campaign=summer_sale_2024&promo=30OFF
Это 150+ символов! Слишком длинно для SMS, Instagram Stories или печатной рекламы. Короткая ссылка решает проблему:
https://сократитель.рф/nike-sale
Преимущества коротких диплинков:
- ✅ Влезают в SMS (160 символов)
- ✅ Красиво выглядят в печатной рекламе
- ✅ Легко произнести в подкасте или видео
- ✅ Запоминаются (сократитель.рф/sale vs bit.ly/3xK9pL2)
- ✅ Можно изменить целевой URL без изменения короткой ссылки
Тестирование Deep Links
Перед запуском обязательно протестируйте все сценарии:
Чек-лист для тестирования iOS:
- Проверьте доступность файла apple-app-site-association по HTTPS
- Используйте Apple App Site Association Validator
- Протестируйте на реальном устройстве (симулятор не всегда корректен)
- Проверьте все три сценария:
- Приложение установлено и закрыто
- Приложение установлено и в фоне
- Приложение не установлено (должен открыться сайт)
- Долгое нажатие на ссылку — должна быть опция "Открыть в App"
Чек-лист для тестирования Android:
- Проверьте assetlinks.json по адресу yourdomain.com/.well-known/assetlinks.json
- Используйте Statement List Generator and Tester
- Проверьте через ADB:
adb shell am start -a android.intent.action.VIEW \
-d "https://yourdomain.com/products/123" \
com.yourcompany.yourapp
- Тестируйте на Android 6.0+ (App Links не работают на старых версиях)
- Проверьте Settings → Apps → Your App → Open by default
Частые ошибки и их решения
1. Диплинк открывается в браузере вместо приложения
Причины:
- Файл apple-app-site-association или assetlinks.json недоступен
- Неправильный Content-Type (должен быть application/json)
- SSL-сертификат невалиден
- Пользователь ранее выбрал "Открыть в Safari" (iOS)
Решение: Проверьте файл через валидаторы, убедитесь в наличии SSL, попросите пользователя долгим нажатием выбрать "Открыть в App".
2. Deferred Deep Link не срабатывает
Причины:
- Не интегрирован SDK (Branch, Firebase и т.д.)
- Пользователь установил приложение не из того источника
- iOS 14.5+ ограничения ATT (App Tracking Transparency)
Решение: Используйте надежный сервис для deferred deep linking, запрашивайте разрешение на трекинг в iOS.
3. Ссылка не работает в приложениях (Instagram, Facebook)
Причины: Социальные сети открывают ссылки в in-app браузере, который не всегда поддерживает диплинки.
Решение: Используйте короткие ссылки с умным редиректом, который определяет контекст и показывает баннер "Открыть в приложении".
Готовы внедрить Deep Links в ваше приложение?
Создавайте короткие, красивые диплинки с полной аналитикой. Отслеживайте установки, конверсии и ROI каждой кампании
Начать бесплатноЗаключение
Deep Links — это мощный инструмент для повышения вовлеченности пользователей мобильных приложений. Правильная настройка Universal Links (iOS) и App Links (Android) обеспечит бесшовный пользовательский опыт.
Ключевые выводы:
- Используйте Universal Links и App Links вместо устаревших URI Scheme
- Обязательно настройте SSL и корректные JSON-файлы
- Для новых пользователей внедрите Deferred Deep Linking
- Сокращайте длинные диплинки для удобства и аналитики
- Тестируйте все сценарии на реальных устройствах
- Отслеживайте метрики и оптимизируйте конверсии
Начните с простого: создайте базовые диплинки для ключевых разделов приложения, добавьте аналитику и постепенно расширяйте использование для маркетинговых кампаний, email-рассылок и социальных сетей.