Ми часто стикаємося з ситуацією: клієнт вклався в розробку Android-додатку, але Google не показує його контент у пошуку. Користувачі шукають товари або статті — знаходять лише веб-версію. Додаток залишається непоміченим. App Indexing вирішує цю проблему: Google індексує екрани додатку, а deep link веде одразу на потрібний контент. Збільшення органічного трафіку досягає 20–30%, а показник відмов знижується на 15% — завдяки тому, що користувач одразу потрапляє на цільовий екран. Ми реалізуємо це під ключ, від налаштування App Links до Firebase App Indexing.
App Indexing — механізм, що дозволяє Google індексувати контент всередині Android-додатку та показувати його в результатах пошуку. Користувач шукає в Google — бачить результат з deep link у ваш додаток, тапає — потрапляє одразу на потрібний екран. Якщо додаток не встановлено — перехід на веб-версію.
Технічно це зв'язка двох речей: App Links (верифікація домену для надійних deep link) та Firebase App Indexing SDK (індикація активності для персональних результатів пошуку).
Як працюють App Links та верифікація домену?
Без App Links Android показує disambiguation dialog («Відкрити через...»). З App Links система одразу відкриває ваш додаток, минаючи діалог. За нашими даними, App Links підвищують конверсію на 40% порівняно з URI-схемами.
Маніфест: <intent-filter android:autoVerify="true">
android:autoVerify="true" запускає верифікацію при встановленні: система звертається до файлу assetlinks.json у корені домену. Якщо файл недоступний або некоректний — верифікація провалиться, діалог повернеться.
assetlinks.json має містити SHA-256 fingerprint сертифіката підпису APK. Для debug та release — різні сертифікати. При використанні Play App Signing потрібен fingerprint з Google Play Console, а не локального keystore.
| Складання | Джерело fingerprint | Типова помилка |
|---|---|---|
| Debug | Локальний keystore (debug.keystore) | Використання debug fingerprint у release |
| Release | Google Play Console або власний keystore | Забувають оновити після зміни сертифіката |
| Play App Signing | Google Play Console | Використовують локальний fingerprint |
Часта помилка: файл assetlinks.json віддається з Content-Type: text/plain замість application/json, або закритий авторизацією, або редиректить з www. Android верифікація не слідує редиректам.
Firebase App Indexing SDK
Документація Firebase App Indexing SDK: https://firebase.google.com/docs/app-indexing
FirebaseAppIndex.getInstance(context).update( Indexable.Builder("Article") .setName(article.title) .setUrl(article.url) // замініть на реальний URL .setDescription(article.summary) .put("keywords", article.tags.joinToString(",")) .build() ) setUrl() — це той самий URL що в App Links. Саме його Google індексує та показує в пошуку.
Індексуємо при кожному перегляді контенту користувачем. Для пакетної індексації — у WorkManager задачі при першому запуску або оновленні контенту. Не індексуємо весь каталог одразу в onCreate() — це сповільнює запуск.
App Indexing History. FirebaseUserActions.getInstance(context).start(action) / end(action) — логує дії користувача для персональних пропозицій Google Assistant. Action.Builder(Action.Builder.VIEW_ACTION).setObject(title, url). Start — при відкритті контенту, End — при закритті.
Обробка deep link
class ArticleActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) handleIntent(intent) } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) handleIntent(intent) } private fun handleIntent(intent: Intent) { val action = intent.action val data = intent.data if (Intent.ACTION_VIEW == action && data != null) { val articleId = data.lastPathSegment viewModel.loadArticle(articleId) } } } onNewIntent потрібен якщо Activity запущена з launchMode="singleTop" або singleTask — інакше повторний deep link не обробиться.
Web vs App: зв'язка контенту
Для коректної індексації Google потрібно, щоб контент за URL в App Links збігався з контентом на веб-сторінці. Сторінка повинна містити meta-тег:
<link rel="alternate" href="android-app://com.yourapp/ваш-домен/шлях"> Без цієї зв'язки Google може проіндексувати веб-версію, але не знати про додаток.
Чому App Links, а не URI-схеми?
| Критерій | App Links | URI-схеми |
|---|---|---|
| Верифікація | через assetlinks.json | відсутня |
| Діалог | не показується | показується (disambiguation) |
| Безпека | високий (підтверджений домен) | низький (можливі колізії) |
| Індексація | підтримується Google | не індексується |
| Вимоги | HTTPS домен, файл .well-known | будь-яка схема |
App Links на порядок надійніші: вони проходять верифікацію, не лякають користувача діалогом та отримують пріоритет при індексації.
Як уникнути помилок верифікації?
- Переконайтеся, що
assetlinks.jsonдоступний по HTTPS без редиректів. - Перевірте
Content-Type: application/json. - Використовуйте правильний fingerprint — для release з Google Play Console.
- Після встановлення перевіряйте статус:
adb shell pm get-app-links --user cur com.yourapp. - У Search Console відстежуйте статус індексації в розділі Mobile Usability → App Indexing.
Що входить у роботу
- Аудит поточної схеми deep link та маніфесту
- Налаштування та розміщення
assetlinks.json - Інтеграція Firebase App Indexing SDK
- Реалізація пакетної індексації через WorkManager
- Додавання Schema.org розмітки на веб-сторінки
- Тестування на реальних пристроях (5+ моделей)
- Документація та навчання розробників
Як тестувати App Indexing
adb shell am start -a android.intent.action.VIEW \ -d "https://ваш-домен/products/123" com.yourapp Перевірка верифікації: adb shell pm get-app-links --user cur com.yourapp — має показати verified. Google Search Console → Mobile Usability → App Indexing показує статус індексації.
Терміни та як замовити
App Links + базове App Indexing: від 2 до 3 тижнів. Повна інтеграція з Firebase App Indexing, пакетною індексацією, Google Assistant actions: від 4 до 7 тижнів. Ми працюємо з проектами будь-якої складності — більше 5 років на ринку мобільної розробки, реалізували App Indexing для 30+ додатків. Сертифіковані розробники Firebase гарантують якість інтеграції. Зв'яжіться з нами для оцінки вашого проекту — отримайте консультацію безкоштовно.







