Інтеграція RevenueCat для керування підписками
Користувач купив річну підписку за $49.99 на iPhone, але на Android вона не активна. Власна реалізація вимагає 2–3 тижнів і коштує $10 000–20 000. Ми вирішуємо це завдання за 2–3 дні за допомогою RevenueCat — економія часу у 4–10 разів та грошей до $10 000.
RevenueCat надає єдиний CustomerInfo з актуальним статусом підписки для всіх платформ. SDK обгортає нативний StoreKit (iOS) та Google Play Billing (Android). При покупці receipt або purchaseToken надсилається на сервери RevenueCat, які верифікують його у Apple та Google і повертають нормалізований статус. RevenueCat обробляє понад 10 000 подій на секунду для великих клієнтів згідно з офіційною документацією. Синхронізація статусів між iOS та Android — ключова перевага RevenueCat: користувач отримує доступ на всіх платформах.
Як RevenueCat вирішує проблему синхронізації?
Якщо користувач аутентифікований у додатку, ми передаємо однаковий appUserID при конфігурації SDK на iOS та Android. RevenueCat віддає CustomerInfo з активним entitlement незалежно від платформи покупки. Для анонімних користувачів генерується $RCAnonymousID, який не переноситься між пристроями — це обмеження, але його можна обійти, попросивши користувача авторизуватися після встановлення.
// iOS — AppDelegate або @main Purchases.configure( with: Configuration.Builder(withAPIKey: "appl_xxxxx") .with(appUserID: currentUser.id) // nil = анонімний .build() ) // Покупка через RevenueCat let (transaction, customerInfo, error) = await Purchases.shared .purchase(package: package) if customerInfo?.entitlements["premium"]?.isActive == true { unlockPremium() } Ключова концепція — entitlements. У дашборді RevenueCat створюємо entitlement premium, прив'язуємо до нього всі продукти (місячна підписка, річна, lifetime). У коді перевіряємо тільки entitlement, а не конкретний product ID. При додаванні нового тарифного плану достатньо додати продукт до entitlement у дашборді — код не змінюється.
Що таке entitlements і навіщо вони потрібні?
Entitlement — це логічна група продуктів, що надають однакові права доступу. Наприклад, всі преміум-підписки (місячна, річна, lifetime) об'єднуються в entitlement premium. Розробнику достатньо перевіряти isActive для цього entitlement, не турбуючись про конкретні ідентифікатори продуктів. Це дозволяє гнучко змінювати тарифи без зміни коду додатка.
Чому RevenueCat краще за власну реалізацію?
| Аспект | Власна реалізація | RevenueCat |
|---|---|---|
| Час на серверну частину | 2–3 тижні | 2–3 дні (у 5–10 разів швидше) |
| Вартість | $10 000–20 000 | Безкоштовний Starter план, далі комісія 1% після $2 500/міс |
| Навантаження на команду | Потрібен сервер, підтримка двох нотифікаційних систем | Один SDK, один Webhook |
| Помилки при синхронізації | Ймовірні, особливо при edge cases (скасування, billing issue) | Протестовані тисячами додатків, зниження багів на 90% |
| Масштабування | При зростанні доходу потрібен рефакторинг | Out of the box — 10 000+ подій/сек |
RevenueCat краще у 10 разів за часом розробки та у 20 разів за витратами на першому етапі.
Які події обробляє Webhook RevenueCat?
| Подія | Опис |
|---|---|
| INITIAL_PURCHASE | Перша покупка підписки |
| RENEWAL | Автоматичне продовження |
| CANCELLATION | Скасування підписки користувачем |
| EXPIRATION | Закінчення терміну без продовження |
| BILLING_ISSUE | Проблема з оплатою (карта відхилена тощо) |
Усі події надходять у єдиному JSON-форматі, що спрощує серверну інтеграцію: достатньо одного endpoint замість двох для Apple та Google. RevenueCat автоматично повторює відправлення при помилках (до 3 разів), що знижує ризик втрати даних.
Що входить в інтеграцію RevenueCat під ключ?
- Встановлення SDK для iOS (Swift) та Android (Kotlin/Java) — при необхідності обгортка для Flutter або React Native.
- Налаштування products та entitlements у дашборді RevenueCat, прив'язка до Google Play та App Store Connect.
- Інтеграція існуючого flow аутентифікації — передача appUserID.
- Реалізація paywall з використанням RevenueCat Offerings — A/B-тестування цін.
- Налаштування Webhook для відправлення подій на ваш бекенд — єдиний формат.
- Тестування в Sandbox (iOS) та Test environment (Android) — перевірка всіх сценаріїв: нова покупка, продовження, скасування, відновлення.
- Передача доступів до дашборду та документація.
- Підтримка після запуску — допомога в налаштуванні аналітики та звітів.
Процес роботи: від аналітики до деплою
- Аналітика: визначаємо поточну модель підписок, scope користувачів, вимоги до аутентифікації.
- Проектування: схема entitlements, mapping продуктів, інтеграція Webhook з вашим API.
- Реалізація: встановлення SDK, інтеграція в додаток, налаштування дашборду.
- Тестування: unit-тести на серверному endpoint, тестові покупки на обох платформах.
- Деплой: публікація в App Store та Google Play, моніторинг перших транзакцій.
Строки, вартість та гарантії
Інтеграція RevenueCat займає від 2 до 5 днів під ключ залежно від складності аутентифікації та кількості продуктів. Ми гарантуємо стабільну синхронізацію статусів підписок між платформами. У нас понад 8 років досвіду в мобільній розробці та 30+ реалізованих підписних моделей. Оцініть проект: пишіть нам для консультації та отримайте попередній розрахунок безкоштовно.







