Реалізація App Indexing для Android-додатку

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація App Indexing для Android-додатку
Середній
~2-3 дні
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація App Indexing для Android-додатку

App Indexing — механізм, який дозволяє Google індексувати контент всередину Android-додатку і показувати його у результатах пошуку. Користувач шукає в Google — бачить результат з deep link в ваш додаток, тапає — потрапляє одразу на потрібний екран. Якщо додаток не встановлено — перехід на веб-версію.

Технічно це зв'язка двох речей: App Links (верифікація домену для надійних deep link) та Firebase App Indexing SDK (індикація активності для персональних результатів пошуку).

App Links та верифікація домену

Без App Links Android показує disambiguation dialog («Відкрити через...»). З App Links система одразу відкриває ваш додаток, обходячи діалог.

Маніфест:

<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>

android:autoVerify="true" запускає верифікацію при встановленні: система звертається до https://yourdomain.com/.well-known/assetlinks.json. Якщо файл недоступний або некорректний — верифікація провалиться, діалог повернеться.

assetlinks.json повинен містити SHA-256 fingerprint сертифікату підпису APK. Для debug та release — різні сертифікати. При використанні Play App Signing потрібен fingerprint із Google Play Console, а не локального keystore.

Часта помилка: файл assetlinks.json віддається з Content-Type: text/plain замість application/json, або закритий авторизацією, або редиректить з www. Android верифікація не дотримується редиректів.

Firebase App Indexing SDK

FirebaseAppIndex.getInstance(context).update(
    Indexable.Builder("Article")
        .setName(article.title)
        .setUrl("https://yourdomain.com/articles/${article.id}")
        .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) — логує дії користувача для персональних Siri (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/https/yourdomain.com/articles/42">

Без цієї зв'язки Google може проіндексувати веб-версію, але не знати про додаток.

Тестування

adb shell am start -a android.intent.action.VIEW \
    -d "https://yourdomain.com/products/123" com.yourapp

Перевірка верифікації App Links: 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 тижнів. Вартість залежить від обсягу контенту та складності deep link схеми.