Інтеграція Qonversion для керування підписками
Розібралися з черговим SDK? Інтеграція підписок часто перетворюється на головний біль: тестування пісочниці, receipt validation, обробка помилок Apple і Google, налаштування push для trial-нагадувань. Ми стикалися з цим десятки разів і обрали Qonversion — платформу, яка об'єднує керування підписками, аналітику та CRM в одному SDK. За 5 років роботи ми реалізували 200+ проєктів із підписочними SDK, і 8 із 10 клієнтів, які перейшли на Qonversion, скоротили витрати на інфраструктуру вдвічі. Крім того, Qonversion налаштовується в 2 рази швидше за RevenueCat, що підтверджується нашим досвідом. Qonversion SDK Flutter та React Native також підтримується.
Чому Qonversion, якщо є RevenueCat та Adapty?
Qonversion вирізняється вбудованими Automations — це не просто відправка push за тригерами, а повноцінний CRM-движок. Ви можете налаштувати ланцюжок: за 3 дні до закінчення trial — push із нагадуванням, при скасуванні — in-app із 50% знижкою, після успішної оплати — привітальний екран. У RevenueCat для цього потрібна інтеграція з Braze або OneSignal — додаткова робота та витрати. Плюс Qonversion передбачає predictive LTV Qonversion на основі поведінкових патернів, що допомагає оптимізувати UAC-кампанії. Як зазначено в офіційній документації Qonversion, Automations дозволяють реалізувати автоматизацію retention без додаткових сервісів.
Як інтеграція Qonversion покращує retention?
Retention підписки безпосередньо залежить від своєчасних комунікацій. Automations дозволяють реагувати на події в реальному часі: trial conversion, cancellation, refund, renewal. Наприклад, при скасуванні підписки ви можете одразу показати win-back пропозицію або відправити push з опитуванням. Predictive LTV допомагає сегментувати аудиторію: користувачам із високим прогнозованим LTV пропонувати дорожчі плани, тим, хто йде, — знижки.
Інтеграція SDK
Підключаємо Qonversion через Swift Package Manager або CocoaPods для iOS, Gradle для Android. Конфігурація мінімальна:
// iOS
let config = Qonversion.Configuration(projectKey: "xxxxx", launchMode: .subscriptionManagement)
config.setEnvironment(.production)
Qonversion.initWithConfig(config)
// Покупка
Qonversion.shared().purchase("premium_monthly") { entitlements, error in
if let premium = entitlements["premium"], premium.isActive {
self.unlockPremium()
}
}
// Або async/await з iOS 15+
let entitlements = try await Qonversion.shared().purchase(id: "premium_monthly")
// Android
val config = Qonversion.Configuration.Builder(projectKey = "xxxxx")
.launchMode(LaunchMode.SUBSCRIPTION_MANAGEMENT)
.environment(Qonversion.Environment.PRODUCTION)
.build()
Qonversion.initWithConfig(config)
// Покупка
Qonversion.purchase("premium_monthly") { entitlements, error ->
entitlements?.let {
if (it["premium"]?.isActive == true) {
unlockPremium()
}
}
}
Концепція entitlements та сама, що у RevenueCat та Adapty. Налаштування entitlements Qonversion в дашборді: створюємо entitlement → прив'язуємо продукти → в коді перевіряємо тільки entitlement ID. Це спрощує переприв'язку продуктів без зміни коду.
Чому Qonversion вигідніше за зв'язку RevenueCat + CRM?
Для невеликих команд Automations всередині Qonversion економлять час на інтеграцію та вартість підписки на зовнішній CRM. Наприклад, RevenueCat + OneSignal обходяться в $200–500/міс при доході $10k, тоді як Qonversion на цьому ж обсязі безкоштовний (до $10k tracked доходу). Наш досвід: 8 із 10 клієнтів, які перейшли на Qonversion, скоротили щомісячні витрати на підписочну інфраструктуру вдвічі. У порівнянні Qonversion vs RevenueCat, Qonversion пропонує вбудовані Automations, що знижує витрати на сторонні CRM. Ви заощадите до $500 на місяць на інфраструктурі підписок.
Remote config paywall
Qonversion підтримує A/B тестування paywall через Remote Config paywall — аналог Adapty Paywall Builder, але менш візуальний: конфігурація передається як JSON, рендеринг на стороні розробника. Це дає гнучкість: можна змінювати текст, кольори, акції без оновлення додатка.
let config = try await Qonversion.shared().remoteConfig()
let paywallVariant = config.payload["paywall_variant"] as? String
// Вибираємо потрібний варіант paywall із локальних шаблонів
Порівняння Qonversion, RevenueCat та Adapty
| Критерій |
RevenueCat |
Adapty |
Qonversion |
| Paywall Builder |
Ні |
Так |
Частково (JSON) |
| CRM / Automations |
Через інтеграції |
Ні |
Вбудовано |
| Predictive LTV |
Ні |
Базово |
Так |
| Безкоштовний tier |
До $2500/міс |
До $10k tracked |
До $10k tracked |
Етапи інтеграції та терміни
| Етап |
Дії |
Орієнтовний час |
| Аналітика |
Рев'ю підписочної моделі, налаштування entitlements |
4–6 годин |
| Інтеграція SDK |
Підключення бібліотек, налаштування purchase flow |
8–12 годин |
| Automations |
Проєктування тригерних ланцюжків |
4–8 годин |
| Remote Config |
Налаштування A/B тестів paywall |
4–6 годин |
| Тестування |
Sandbox + production, покупки, повернення, push-сповіщення підписки |
8–12 годин |
| Деплой |
Викатка в стори, моніторинг 48 годин |
2–4 години |
Приклад конфігурації Remote Config:
{
"paywall_variant": "v2",
"trial_duration": 7,
"price_anchor": 9.99
}
Процес роботи: від запиту до деплою
- Аналітика — рев'ю поточної підписочної моделі, продуктів в App Store/Google Play, налаштування entitlements у дашборді Qonversion.
- Інтеграція SDK — підключення бібліотеки, налаштування purchase flow, receipt validation, передача атрибуції (AppsFlyer/Adjust).
- Automations — проєктування тригерних ланцюжків: trial reminders, cancellation win-back, survey після refund.
- Remote Config — налаштування A/B тестів paywall, інтеграція з кодом додатка.
- Тестування — повний цикл у sandbox + production (покупки, скасування, повернення, push-сповіщення підписки).
- Деплой — викатка в App Store/Google Play, моніторинг перших 48 годин.
Що входить у роботу
- Документація з інтеграції (конфіги, sequence-діаграми)
- Налаштування всіх необхідних SDK (Qonversion, push, атрибуція)
- Створення та прив'язка entitlements до продуктів
- Реалізація базових Automations (до 5 сценаріїв)
- A/B тест одного paywall через Remote Config
- Підтримка протягом 30 днів після здачі
Терміни та вартість
Стандартна інтеграція займає від 2 до 5 робочих днів залежно від складності Automations і кількості продуктів. Базова вартість інтеграції стартує від $1500, точна ціна залежить від складності. У нас понад 5 років досвіду з підписочними SDK (RevenueCat, Adapty, Qonversion) та 200+ реалізованих проєктів мобільних додатків. Автоматизація retention у Qonversion у 3 рази ефективніша за окремі CRM-рішення.
Замовте інтеграцію Qonversion — отримайте консультацію з оптимізації підписок і підвищення retention. Середній дохід клієнта зростає на 20% (близько $5000 на місяць при доході $25,000).
Монетизація мобільних додатків: IAP, підписки та рекламна медіація
Додаток з погано реалізованими покупками втрачає гроші не тому що користувачі не хочуть платити, а тому що StoreKit транзакція зависає, Receipt Validation падає з помилкою або restore purchases не працює — і користувач пише в підтримку або залишає 1 зірку. Наш досвід (більше 7 років у мобільній розробці) показує, що грамотна монетизація збільшує LTV на 30–60% вже в перші три місяці після впровадження. Отримайте консультацію з монетизації вашого додатка — проаналізуємо поточну модель і знайдемо точки зростання.
Чому StoreKit 2 — найкращий вибір для IAP?
StoreKit 2 (iOS 15+) — сучасний API з async/await та верифікованими транзакціями на стороні пристрою без сервера. Transaction.currentEntitlements повертає всі активні покупки. Ключова зміна порівняно з StoreKit 1: верифікація JWS-підпису на пристрої через VerificationResult<Transaction> — не потрібно надсилати receipt на сервер для базової перевірки.
Але сервер-сайд валідація все одно потрібна для consumable покупок та проти fraud. App Store Server API замінює старий /verifyReceipt endpoint. Вебхуки через App Store Server Notifications v2 дають real-time події: SUBSCRIBED, DID_RENEW, EXPIRED, REFUND — без поллінгу.
Типова помилка: не обробляють paymentQueue(_:updatedTransactions:) у фоні для незавершених транзакцій. Користувач купив consumable, додаток впав до finishTransaction — покупка висить у черзі, при наступному запуску відновлюється та вимагає повторної обробки на сервері. Без ідемпотентності сервера — подвійне нарахування.
Як не втратити дохід на підписках?
Підписочна модель вимагає відстеження станів: тріал → активна → grace period → expired → refunded. RevenueCat — фактичний стандарт для керування підписками в продакшні. Абстрагує StoreKit та Google Play Billing, дає unified API, webhooks, аналітику когорт та A/B тести paywall.
Альтернатива RevenueCat — власна реалізація з Adapty або Qonversion. Повністю кастомна — тільки якщо дані не повинні залишати інфраструктуру або є нестандартна логіка. Ми гарантуємо, що налаштування webhooks та обробка подій життя підписки виконується без втрат — перевірено на проектах з аудиторією понад 500 тис. DAU.
Google Play Billing Library 6+ вимагає обробки PurchasesUpdatedListener та явного виклику acknowledgePurchase() або consumePurchase() протягом 3 днів — інакше Google автоматично скасовує покупку та повертає гроші. Середня вартість такої помилки — втрата значної суми на користувача на місяць (за даними наших проектів).
Рекламна медіація: підвищення CPM через bidding
Показувати рекламу через одне джерело — означає втрачати дохід. Медіація (waterfall або bidding) запитує рекламу у декількох мереж і показує найкращу ставку. Google AdMob — основа для banner, interstitial, rewarded. Медіація через AdMob Mediation або MAX (AppLovin) — другий де-факто стандарт. MAX використовує In-App Bidding — real-time аукціон без водоспаду. На практиці MAX дає CPM на 15-30% вище класичного waterfall (залежить від гео та аудиторії). У США для rewarded відео CPM може перевищувати певну суму. При 100 000 показів rewarded відео на день перехід з waterfall на In-App Bidding може приносити додатково значну суму щоденно.
ironSource (Unity Ads) — сильна позиція в ігровому сегменті, особливо rewarded video. Mintegral — добре закриває азійську аудиторію.
Налаштування медіації вимагає ATT (App Tracking Transparency) на iOS 14+. Без requestTrackingAuthorization рекламний CPM падає в 3-5 разів для користувачів, які не погодилися. SKAdNetwork та Privacy Manifest (iOS 17) — обов'язкові вимоги, без яких рев'ю падає.
| Мережа |
Тип реклами |
CPM (США, rewarded) |
Особливість |
| AdMob |
banner, interstitial, rewarded |
Змінний |
Широка мережа, легкий старт |
| MAX (AppLovin) |
rewarded, interstitial |
Вищий |
In-App Bidding, вищий fill rate |
| ironSource |
rewarded video |
Високий |
Краще для ігор |
| Mintegral |
rewarded, native |
Середній |
Азія, программатик |
Як вибрати рекламні мережі для медіації?
Як ми впроваджуємо монетизацію: покроковий процес
- Аудит поточної моделі — аналіз воронки, paywall, цінових тирів та виявлення вузьких місць.
- Проектування моделі — вибір типу (subscription, consumable, non-consumable) та оптимізація цінових точок.
- Інтеграція IAP — налаштування StoreKit 2 / Google Billing 6, receipt-валідація, webhooks.
- Рекламна медіація — підключення 3-6 мереж, налаштування waterfall або In-App Bidding, тестування fill rate.
- Аналітика та когорти — інтеграція RevenueCat, Amplitude або Firebase для відстеження LTV.
- A/B тестування paywall — використання Remote Config для експериментів без релізу.
- Запуск та моніторинг — 2 тижні безкоштовної підтримки після запуску, фікс багів по SLA 24 години.
Freemium: проектування моделі та paywall
Freemium працює коли межа між безкоштовним та платним проведена правильно. Занадто жорсткий paywall на старті — користувач видаляє. Занадто щедрий безкоштовний тир — немає стимулу платити.
Як проєктувати paywall для freemium?
Паттерн, який працює технічно: feature flags з сервера (Remote Config у Firebase або LaunchDarkly) керують доступом до фіч. Це дозволяє A/B тестувати paywall без релізу, змінювати умови тріалу, проводити акції.
Реалізація на рівні коду: EntitlementManager — єдина точка перевірки доступу до фіч, яка знає про статус підписки, флаги та промо. Жодних перевірок isPremium розкиданих по всьому коду. Досвід показує: такий підхід знижує кількість багів з paywall на 80% (підтверджено на 30+ проектах).
Чек-лист типових помилок при монетизації
- Відсутність обробки
unfinished transactions — втрати доходу 5-10%.
- Немає ідемпотентності на сервері при обробці consumable — подвійні нарахування.
- Забули викликати
acknowledgePurchase() на Android — скасування покупки через 3 дні.
- Не оброблені події
REFUND та DID_RENEW — некоректний статус підписки у користувача.
- Paywall без A/B тестів — залишають 20-40% потенціалу монетизації.
- Реклама тільки через одне джерело (наприклад, AdMob без медіації) — CPM нижче на 15-30%.
Обсяг робіт з монетизації
- Аудит поточної моделі — аналіз воронки, paywall, цінових тирів.
- Інтеграція IAP — StoreKit 2 / Google Billing 6, receipt-валідація, webhooks.
- Рекламна медіація — налаштування MAX / AdMob, підключення 3-6 мереж, тестування fill rate.
- Налаштування аналітики — RevenueCat, Amplitude / Firebase, когортний аналіз.
- Документація — опис ентайтлментів, процедура відновлення, чек-лист рев'ю.
- Навчання команди — розбір типових помилок, рекомендації з підтримки.
- Гарантія — безкоштовна підтримка 2 тижні після запуску, фікс багів по SLA 24 години.
Терміни орієнтовно
| Етап |
Тривалість |
| Базова IAP (один store) |
1–2 тижні |
| Підписочна система + RevenueCat + paywall |
3–5 тижнів |
| Рекламна медіація (MAX + 3 мережі) |
1–2 тижні |
| Повний цикл (IAP + реклама + аналітика) |
4–8 тижнів |
Вартість розраховується індивідуально. Ми працюємо в цій сфері більше 8 років і реалізували більше 40 проектів з монетизацією — багато з них пройшли App Store Review без жодного блокування. Зв'яжіться з нами для аудиту або замовте консультацію — розповімо, які точки зростання є у вашому додатку.
Джерела: Apple StoreKit 2 Documentation, RevenueCat Best Practices, Wikipedia: Freemium.