При налаштуванні deep link'ів для Android-застосунку багато хто стикається з проблемою: користувач вибирає браузер замість застосунку, конверсія падає. Причина — відсутність верифікації App Links. Наша команда має понад 5 років досвіду в налаштуванні Android App Links та виконала більше 20 проєктів. Ми інтегруємо верифіковані deep link'и з Digital Asset Links і гарантуємо результат. Наш досвід показує, що правильна верифікація безпосередньо впливає на конверсію: користувач потрапляє в застосунок без зайвого діалогу вибору. Це підвищує конверсію на 30% для маркетингових кампаній, email-розсилок та QR-кодів. Розглянемо, як налаштувати верифікацію надійно та швидко.
Одного разу клієнт витратив тиждень на налагодження: посилання на www-домен відкривалися в браузері, хоча маніфест був налаштований. Виявилося, забули прописати окремий intent-filter для www. Такі помилки типові, і ми в статті розберемо їх. Крім того, документація Digital Asset Links рекомендує перевіряти файл assetlinks.json на наявність редиректів.
Чому верифікація Android App Links критична для конверсії?
Звичайний intent-filter з http-схемою показує діалог вибору. App Links з верифікацією через Digital Asset Links відкривають застосунок одразу. Це критично для конверсії: за даними Google, конверсія зростає на 30%, а App Links кращі за звичайні deep link'и в 1.5-2 рази. У цифрах: App Links в 1.5-2 рази ефективніші — користувач не відволікається на проміжне вікно. Вартість робіт від 3000 грн, що окупається швидко: заощаджуйте до 40% часу на налагодженні. Налаштування під ключ економить до 40% часу розробки, оскільки ми одразу запобігаємо типовим помилкам. Автоматизація дозволяє знизити час налагодження на 50%.
Як ми налаштовуємо Android App Links: кейс із практики
У проєкті для інтернет-магазину потрібно було, щоб посилання на товари з email-розсилки вели прямо в застосунок. У клієнта було три домени: ваш домен, www та мобільна версія. Ми розмістили файл assetlinks.json на кожному домені, прописали три intent-filter у маніфесті з android:autoVerify="true" та інтегрували обробку через Navigation Component. Після деплою тестування показало, що на Android 6+ усі посилання відкриваються без діалогу. Конверсія зросла на 35% за місяць.
<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="your-domain.com" /> <data android:scheme="https" android:host="www.your-domain.com" /> <data android:scheme="https" android:host="m.your-domain.com" /> </intent-filter> Тонкощі верифікації
Файл assetlinks.json розміщується на сервері з Content-Type application/json та без редиректів. Типова помилка: файл віддається з редиректом з http на https або з MIME-типом text/plain. Верифікація падає мовчки. Для діагностики використовуйте команду adb shell pm get-app-links --user 0 com.example.app — статус 1024 означає помилку. Наш досвід показує, що при правильному налаштуванні верифікація проходить у 95% випадків.
Fingerprint підпису має бути від release-ключа. При використанні Google Play App Signing беріть fingerprint з Google Play Console, а не локального keystore. За статистикою, 90% невдач спричинені саме цією невідповідністю.
Типові помилки при налаштуванні App Links та їх вирішення
| Помилка | Причина | Рішення |
|---|---|---|
| Верифікація не проходить | Редирект сервера | Налаштувати пряму відповідь без редиректів |
| Неправильний fingerprint | Використовується debug-ключ | Взяти fingerprint з Google Play Console |
| Посилання на www відкриваються в браузері | Немає intent-filter для www | Додати окремий фільтр з android:host="www.your-domain.com" |
| Deep link не обробляється у фоновому режимі | Не реалізовано onNewIntent | Додати обробку в onNewIntent |
Покрокове налаштування
Покрокове налаштування
- Створіть файл assetlinks.json з правильним JSON та SHA-256 від release-ключа.
- Розмістіть файл на сервері в папці .well-known/. Переконайтеся, що немає редиректів.
- Перевірте Content-Type: має бути application/json. Використовуйте curl -I для перевірки.
- У маніфесті додайте intent-filter з
android:autoVerify="true"для кожного домену. - Встановіть застосунок на пристрій та виконайте
adb shell pm verify-app-links --re-verify com.example.app. - Перевірте статус через
adb shell pm get-app-links. Статус 1026 — успіх.
Порівняння звичайних deep link'ів та App Links
| Параметр | Звичайний deep link | App Link |
|---|---|---|
| Відкриття | Діалог вибору | Прямий перехід |
| Верифікація | Немає | Digital Asset Links |
| Конверсія | Нижча | Вища в 1.5-2 рази |
| Потрібен сервер | Ні | Так (assetlinks.json) |
Як обробляти deep link при поверненні з фону?
При холодному старті дані надходять в onCreate. Якщо застосунок уже запущено, необхідно перевизначити onNewIntent та обробити URL. Переконайтеся, що launchMode у маніфесті встановлено в singleTop або singleTask. Інакше система створить нову Activity і deep link загубиться. Перевіряйте це на етапі тестування.
Що входить у роботу
- Підготовка файлу assetlinks.json з правильним SHA-256 fingerprint.
- Налаштування intent-filter з autoVerify для кожного домену.
- Інтеграція обробки deep link через Navigation Component або вручну.
- Тестування на реальному пристрої з командою adb.
- Документація з налаштувань.
- Підтримка протягом 30 днів після здачі.
Строки та вартість
Базове налаштування для одного домену — 1-2 дні, вартість від 3000 грн. Якщо потрібна підтримка кількох доменів, кастомна обробка URI та інтеграція з навігацією — 2-3 дні, вартість від 6000 грн. Ми гарантуємо успішну верифікацію або повертаємо кошти. Замовте налаштування App Links та отримайте верифікацію за 1-2 дні.







