Сократитель.рф

К статьям

Deep Links для мобильных приложений

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 (отложенный диплинк) решает проблему для новых пользователей:

  1. Пользователь кликает на ссылку, но приложения нет
  2. Перенаправление в App Store / Google Play
  3. Пользователь устанавливает приложение
  4. При первом запуске приложение открывает нужную страницу

🎯 Практический пример

Пользователь получил промокод на скидку. Кликает на ссылку, но приложения нет. Устанавливает его, и при первом запуске сразу видит экран с этим промокодом — не нужно искать вручную!

Как реализовать Deferred Deep Linking

Самый простой способ — использовать готовые сервисы:

Пример интеграции с 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

Ключевые метрики для анализа:

📊 Интеграция с аналитикой

Используйте Сократитель.рф для создания коротких диплинков с 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

Преимущества коротких диплинков:

Тестирование Deep Links

Перед запуском обязательно протестируйте все сценарии:

Чек-лист для тестирования iOS:

  1. Проверьте доступность файла apple-app-site-association по HTTPS
  2. Используйте Apple App Site Association Validator
  3. Протестируйте на реальном устройстве (симулятор не всегда корректен)
  4. Проверьте все три сценария:
    • Приложение установлено и закрыто
    • Приложение установлено и в фоне
    • Приложение не установлено (должен открыться сайт)
  5. Долгое нажатие на ссылку — должна быть опция "Открыть в App"

Чек-лист для тестирования Android:

  1. Проверьте assetlinks.json по адресу yourdomain.com/.well-known/assetlinks.json
  2. Используйте Statement List Generator and Tester
  3. Проверьте через ADB:
adb shell am start -a android.intent.action.VIEW \ -d "https://yourdomain.com/products/123" \ com.yourcompany.yourapp
  1. Тестируйте на Android 6.0+ (App Links не работают на старых версиях)
  2. Проверьте Settings → Apps → Your App → Open by default

Частые ошибки и их решения

1. Диплинк открывается в браузере вместо приложения

Причины:

Решение: Проверьте файл через валидаторы, убедитесь в наличии SSL, попросите пользователя долгим нажатием выбрать "Открыть в App".

2. Deferred Deep Link не срабатывает

Причины:

Решение: Используйте надежный сервис для deferred deep linking, запрашивайте разрешение на трекинг в iOS.

3. Ссылка не работает в приложениях (Instagram, Facebook)

Причины: Социальные сети открывают ссылки в in-app браузере, который не всегда поддерживает диплинки.

Решение: Используйте короткие ссылки с умным редиректом, который определяет контекст и показывает баннер "Открыть в приложении".

Готовы внедрить Deep Links в ваше приложение?

Создавайте короткие, красивые диплинки с полной аналитикой. Отслеживайте установки, конверсии и ROI каждой кампании

Начать бесплатно

Заключение

Deep Links — это мощный инструмент для повышения вовлеченности пользователей мобильных приложений. Правильная настройка Universal Links (iOS) и App Links (Android) обеспечит бесшовный пользовательский опыт.

Ключевые выводы:

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