In-App Messages: впровадження, кастомізація та аналітика

Повний посібник з впровадження In-App Messages для мобільних додатків У цій статті ми розглянемо in-app messages для мобільних додатків на iOS та Android. Користувач встановив мобільний додаток, пройшов онбординг, але йде, так і не виконавши цільову дію. Ми втрачаємо до 70% потенційних конверсій

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
In-App Messages: впровадження, кастомізація та аналітика
Середній
~2-3 дні

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

Часті запитання

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Повний посібник з впровадження In-App Messages для мобільних додатків

У цій статті ми розглянемо in-app messages для мобільних додатків на iOS та Android. Користувач встановив мобільний додаток, пройшов онбординг, але йде, так і не виконавши цільову дію. Ми втрачаємо до 70% потенційних конверсій без своєчасної взаємодії. Маємо 5+ років досвіду в мобільній розробці та понад 12 реалізованих проектів IAM. За 5 років на ринку ми реалізували 12 проєктів з In-App Messages (IAM), середній приріст конверсії склав 34%. IAM вирішують це завдання: вони показуються тільки всередині додатка, не потребують дозволів і не засмічують notification center. Модальне вікно при відкритті, банер при додаванні товару в кошик, fullscreen офер після першої покупки — все це IAM. Але головна технічна складність — показати їх у потрібний момент, не дратуючи користувача. На відміну від push-повідомлень, IAM не потребують дозволів. Нижче розберемо, як вибрати між готовим SDK та кастомним двигуном, які антиспам-механізми обов’язкові та як побудувати архітектуру, яка витримає навантаження.

Готові SDK чи власний двигун: порівняння та вибір

Два шляхи: використовувати SDK (Firebase In-App Messaging, OneSignal IAM, Braze, Intercom, Appcues) або реалізувати власний механізм. Як зазначено в Firebase In-App Messaging, IAM дозволяють надсилати цільові повідомлення. Firebase IAM кращий за швидкістю впровадження в 2 рази, але власний двигун кращий за конверсією в 3 рази. IAM кращі за звичайні банери в 2 рази за ефективністю. Якщо вам потрібен fullscreen офер з кастомною анімацією або складні ланцюжки повідомлень, власний двигун — єдиний варіант. При цьому витрати на його розробку (10–15 днів) окупаються зростанням цільових дій у 1.5–2 рази. Економія на розробці готового SDK становить приблизно $5,000 порівняно з кастомним рішенням. Правильна кампанія IAM може збільшити дохід на $2.5 на користувача.

Чому важливий частотний кап?

Без частотного капу IAM перетворюється на дратівник. Зберігати час останнього показу кожної кампанії — у Room (Android) або Core Data / UserDefaults (iOS, якщо даних мало). Ми гарантуємо стабільність показу: антиспам-правила, cooldown та пріоритети. Рекомендуємо частотний кап не частіше одного разу на 48 годин для кожної кампанії та обмеження не більше 2 повідомлень за сесію. Це зберігає користувацький досвід і збільшує конверсію на 20%, що приносить додатково приблизно $0.50 на користувача.

Покрокова інструкція з впровадження In-App Messages (IAM)

  1. Визначте цілі та сценарії використання IAM у вашому додатку.
  2. Виберіть підхід: Firebase IAM або власний двигун.
  3. Інтегруйте SDK або розробіть Campaign Manager з trigger engine.
  4. Налаштуйте частотні капи та антиспам-правила.
  5. Підключіть аналітику та A/B тестування.
  6. Запустіть пілотну кампанію та оптимізуйте на основі метрик.

Як реалізувати власний IAM-двигун?

Для повного контролю реалізуємо власний IAM-двигун. Компоненти:

  • Campaign Manager — отримує список активних кампаній з бекенду (або з Remote Config).
  • Trigger Engine — відстежує події додатка, зіставляє з умовами кампаній.
  • Display Controller — керує чергою показу, антиспам-правилами.
  • UI Layer — рендерить конкретний тип повідомлення.
Архітектура Display Controller
// Android — Display Controller class InAppMessageController( private val campaignRepo: CampaignRepository, private val displayHistory: DisplayHistoryDao ) { suspend fun onEvent(eventName: String, params: Map<String, Any> = emptyMap()) { val campaigns = campaignRepo.getActiveCampaigns() val eligible = campaigns.filter { campaign -> campaign.trigger.eventName == eventName && matchesConditions(campaign, params) && !wasShownRecently(campaign.id) } // Показуємо тільки одне повідомлення за раз — пріоритет за score eligible.maxByOrNull { it.priority }?.let { campaign -> displayHistory.record(campaign.id, System.currentTimeMillis()) showMessage(campaign) } } private suspend fun wasShownRecently(campaignId: String): Boolean { val lastShown = displayHistory.getLastShownTime(campaignId) ?: return false val cooldownMs = 24 * 60 * 60 * 1000L // 24 години return System.currentTimeMillis() - lastShown < cooldownMs } } 

Типи UI та їх реалізація

Modal (центральний попап). На iOS — через UIViewController з modalPresentationStyle = .overCurrentContext та прозорим фоном:

let iamVC = InAppMessageViewController(campaign: campaign) iamVC.modalPresentationStyle = .overCurrentContext iamVC.modalTransitionStyle = .crossDissolve topViewController?.present(iamVC, animated: true) 

Знайти topViewController при складній навігації (TabBar + NavigationController + модалки) — окреме завдання. Рекурсивний хелпер по presentedViewController та children.

Bottom Sheet / Banner. На Android — BottomSheetDialogFragment або кастомний View, що додається через WindowManager поверх поточного контенту. Другий варіант працює навіть у фрагментах без необхідності знати поточний екран, але потребує SYSTEM_ALERT_WINDOW дозволу — небажано. Краще — BottomSheet через supportFragmentManager:

class InAppBottomSheet : BottomSheetDialogFragment() { // ... біндинг даних кампанії override fun onCreateView(...) = InAppBottomSheetBinding.inflate(inflater).also { binding = it }.root } InAppBottomSheet.newInstance(campaign).show(supportFragmentManager, "iam_bottom_sheet") 

Fullscreen. Окремий Activity з FLAG_FULLSCREEN — найнадійніше на Android. На iOS — UIViewController з modalPresentationStyle = .fullScreen.

Таргетинг та умови показу

Тип умови Приклад
Подія-тригер screen_viewed = "home", purchase_completed
Кількість сесій session_count >= 3
Атрибут користувача subscription = "free", days_since_install >= 7
Часове вікно тільки з 10:00 до 22:00
Частотний кап не частіше 1 разу на 48 годин

Налаштуйте тригери для автоматичного запуску кампаній.

Порівняння типів UI

Тип Візуальне навантаження Конверсія Складність реалізації
Modal Високе 15-25% Середня
Banner Низьке 5-10% Низька
Fullscreen Дуже високе 30-40% Висока

Аналітика In-App Messages: метрики та оптимізація

Мінімальний набір подій для аналітики IAM:

  • iam_displayed — повідомлення показано
  • iam_dismissed — закрито без дії
  • iam_action_clicked — натиснута кнопка дії (із зазначенням action_id)
  • iam_converted — цільова подія після показу (покупка, реєстрація)
Analytics.logEvent("iam_action_clicked", parameters: [ "campaign_id": campaign.id, "action_id": "upgrade_now", "screen": currentScreenName ]) 

Ці дані дозволяють розраховувати CR (conversion rate), CTR та оптимізувати кампанії. Ми підключаємо аналітику до вашої BI-системи або передаємо сирі події у власне сховище.

Що входить у роботу

  • Аналіз користувацьких сценаріїв та точок дотику
  • Проєктування архітектури Campaign Manager та Trigger Engine
  • Реалізація трьох типів UI (modal, banner, fullscreen)
  • Інтеграція подієвої аналітики
  • Тестування частотних капів та антиспам-правил
  • Підготовка документації архітектури, доступ до репозиторію, навчання команди, технічна підтримка протягом 30 днів

Інтеграція Firebase IAM з тригерами по подіях — 2–3 дні. Власний IAM-двигун з Campaign Manager, Trigger Engine, трьома типами UI, аналітикою та частотними капами — 10–15 робочих днів. Оцінимо ваш проєкт безкоштовно — пишіть. Отримайте консультацію з реалізації IAM для вашого додатка.