TL;DR
- Deep link открывает не просто приложение, а конкретный экран: товар, заказ, промо, урок, чат, referral invite.
- Deferred deep link делает то же самое после установки: пользователь кликает, уходит в стор, ставит app, открывает и попадает в нужное место.
- Современная база - Universal Links на iOS и Android App Links. Custom schemes вроде
myapp://полезны, но не должны быть единственным способом. - Deep linking - это не только UX. Это атрибуция, retention, referral, web-to-app, push, email и paid campaigns.
- Главный риск - не протестировать весь путь “клик -> стор -> install -> first open -> нужный экран” на реальных устройствах.
1. Что такое deep link
Обычная ссылка ведет на сайт или в store. Deep link ведет в конкретный экран приложения.
Пример:
Если app установлен, ссылка открывает карточку товара в приложении. Если app не установлен, пользователь попадает на web или store fallback.
Смысл простой: реклама обещала красные кроссовки. Пользователь должен увидеть красные кроссовки, а не главный экран.
2. Deep link vs deferred deep link
| Тип | Когда работает | Пример |
|---|---|---|
| Deep link | App уже установлен | Push ведет в статус заказа |
| Deferred deep link | App еще не установлен | Реклама ведет через store, после установки открывается товар |
| Universal Link | iOS HTTPS link, связанный с app | https://brand.kz/product/123 |
| Android App Link | Android HTTPS link, verified через Digital Asset Links | https://brand.kz/product/123 |
| Custom scheme | App-specific scheme | brandapp://product/123 |
Deferred deep linking сложнее, потому что между кликом и первым открытием есть App Store или Google Play. MMP запоминает click context и передает приложению параметры при first open, если может связать install с кликом.
3. Где deep links дают деньги
Paid campaigns
Пользователь кликает рекламу товара и сразу попадает в карточку. Меньше поиска, меньше drop-off, выше шанс покупки.
Referral
Друг отправил приглашение. Новый пользователь устанавливает приложение и сразу видит бонус, имя друга и следующий шаг. Если заставить его вводить промокод вручную, часть эффекта теряется.
Push
Push “Ваш заказ передан курьеру” должен открывать экран заказа, а не главную. Иначе push превращается в раздражающий баннер.
Email / SMS / WhatsApp
Ссылка из письма или WhatsApp должна открывать app, если он установлен, или web fallback, если нет.
Web-to-app
Пользователь нашел товар через Google, открыл mobile web, нажал “Открыть в приложении” и сохранил контекст.
4. Почему Universal Links и App Links важнее custom schemes
Custom scheme легко выглядит так:
Проблема: разные приложения могут зарегистрировать одинаковую схему, браузеры и мессенджеры могут вести себя по-разному, fallback часто хрупкий.
Universal Links и Android App Links используют обычные HTTPS-ссылки и подтверждение связи между доменом и приложением.
| Механика | Что нужно |
|---|---|
| iOS Universal Links | Associated Domains capability и apple-app-site-association file |
| Android App Links | Intent filters и Digital Asset Links file |
| Web fallback | Страница должна работать, если app не установлен |
| MMP link | Нужен для attribution и deferred flow |
Это делает ссылку понятной пользователю и поисковику, а приложению - управляемой.
5. Как проектировать deep link schema
Не начинайте с MMP dashboard. Начните с карты маршрутов.
| Use case | Path | Parameters | Fallback |
|---|---|---|---|
| Product | /product/{id} | product_id, campaign_id | Mobile product page |
| Category | /category/{slug} | sort, filter | Category page |
| Referral | /invite/{code} | referrer_id, bonus | Referral landing |
| Order | /orders/{id} | order_id | Login + order page |
| Promo | /promo/{slug} | coupon, source | Promo landing |
| Lesson | /lesson/{id} | course_id, lesson_id | Course page |
Правила:
- не класть персональные данные в URL;
- не делать route, который работает только на iOS;
- не ломать ссылку после редизайна экрана;
- хранить fallback для web;
- логировать ошибки открытия маршрута;
- тестировать ссылки из разных приложений: Instagram, Telegram, WhatsApp, email, browser.
6. Deferred deep linking flow
Deferred deep linking не всегда будет 100% точным, особенно на iOS без consent. Поэтому UX должен иметь graceful fallback: если конкретный товар не открылся, покажите подборку, промо или поле ввода referral code.
7. QA: где все ломается
Deep links нужно тестировать как платежи: на реальных устройствах и реальных каналах.
| Тест | Что проверяет |
|---|---|
| App installed, link from Safari | Открывается нужный экран |
| App installed, link from Telegram | Мессенджер не ломает opening |
| App not installed, iOS | Store -> install -> first open -> route |
| App not installed, Android | Google Play -> install -> first open -> route |
| User not logged in | После login сохраняется target route |
| Expired promo | Показывается понятный fallback |
| Wrong product ID | Не падает app, есть error state |
| Attribution params | Campaign/source попали в MMP |
Самая частая ошибка: разработчик тестирует deep link через adb или Xcode, а маркетинг запускает ссылку из Instagram Stories. В реальном канале поведение может отличаться.
8. Локальный контекст СНГ/РК
Для Казахстана deep linking особенно важен из-за каналов, где много трафика идет не через классические рекламные кабинеты:
- Telegram-каналы;
- Instagram Stories;
- WhatsApp-рассылки;
- блогеры;
- QR-коды в офлайне;
- партнерские промо;
- Kaspi-like ожидание мгновенного открытия нужного сценария.
Если блогер ведет на главную App Store ссылку, вы теряете контекст. Если QR на витрине ведет на главную страницу приложения, пользователь не понимает следующий шаг. Deep link должен сохранить обещание канала.
9. Анти-кейсы
| Ошибка | Что происходит |
|---|---|
| Реклама товара ведет на главный экран | Drop-off, пользователь ищет заново |
| Referral требует ручной промокод | Меньше активаций и больше обращений в support |
| Нет web fallback | Пользователь без app попадает в тупик |
| Нет login continuation | После авторизации пользователь теряет target screen |
| URL содержит phone/email | Privacy и security риск |
| Ссылки не размечены | В MMP все становится organic или unattributed |
10. Практический чеклист
- Описана карта deep link routes.
- Для iOS настроены Universal Links и Associated Domains.
- Для Android настроены App Links и Digital Asset Links.
- Есть web fallback для каждого публичного route.
- Deferred deep linking настроен через MMP.
- Referral, paid, push, email и QR используют правильные параметры.
- После login сохраняется intended destination.
- Ссылки протестированы из Instagram, Telegram, WhatsApp, email и browser.
- Ошибочные параметры не крашат приложение.
- Attribution params видны в MMP и BI.
11. Видео
12. Главный совет
Deep link должен сохранять обещание клика. Если пользователь нажал на товар, бонус, заказ или урок, приложение обязано открыть именно это. Главный экран - это почти всегда потеря контекста и денег.
Sources / Notes
- Apple Developer: Allowing apps and websites to link to your content
- Apple Developer: Supporting Universal Links in your app
- Android Developers: Create Deep Links to App Content
- Android Developers: Android App Links
- AppsFlyer: Deep linking and OneLink
- Adjust Help Center: Deep links