Уявіть: користувач завантажив ваш додаток для керування завданнями. Він пробує безкоштовну версію: створює 5 проєктів, призначає завдання, отримує сповіщення. Але через тиждень він впирається в ліміт — 100 завдань. Якщо ліміт показати заздалегідь і запропонувати апгрейд, конверсія може скласти 12%. Якщо ж раптово заблокувати — користувач піде до конкурентів. Freemium-модель — це не просто «безкоштовно + платно», а ретельно спроєктований досвід, де кожен гейт і ліміт підпорядковані завданню конверсії. Ми реалізували freemium більш ніж у десяти проєктах (від нотаток до AI-редакторів) і знаємо: головна помилка — дати або замало (користувач не розуміє цінність), або забагато (немає стимулу платити). Баланс досягається через чітке розділення цінності: feature gating, usage limits, quality gating та продумані paywall-тригери. Вартість такої інтеграції розраховується індивідуально, але наші клієнти економлять до 40% бюджету на монетизацію (в середньому $5000) за рахунок перевикористання EntitlementManager. З нашим багаторічним досвідом (понад 5 років на ринку) та понад 15 реалізованими freemium-проектами ми гарантуємо якісну інтеграцію. Вікіпедія визначає freemium як бізнес-модель, при якій базова функціональність надається безкоштовно, а розширена — за плату. У цій статті розберемо, як знайти цю межу та реалізувати її на iOS/Android без болю.
Межі freemium-моделі: feature gating, usage limits, quality gating
Три робочі патерни нарізки freemium:
-
Feature gating — базові функції безкоштовні, просунуті — за плату. Наприклад, створення завдань без обмежень (free) плюс командна колаборація (premium). Якщо платна фіча є у конкурента безкоштовно, втрачається сенс.
-
Usage limits — ті ж функції, але з кількісними обмеженнями. Скажімо, 3 проєкти в безкоштовній версії, 7 AI-запитів на день. Ліміти мають бути відчутними, але не фруструючими. 80% користувачів йдуть, якщо ліміт не показаний заздалегідь.
-
Quality gating — експорт без водяного знака, висока роздільна здатність — за premium. Популярно в креативних додатках.
На клієнті перевірка прав здійснюється через централізований EntitlementManager — єдиний шар FeatureFlag + Entitlement. Жодних розкиданих if-else.
Коли використовувати soft gate, а коли hard gate?
| Аспект |
Hard gate |
Soft gate |
| Тип блокування |
Функція фізично недоступна |
Функція доступна, потім paywall |
| Конверсія |
Нижча — користувач не бачить цінність |
На 40% вища (в 2 рази краще) — пробує та купує |
| Застосування |
Ресурсоємні фічі (AI, хмара) |
Інші |
Soft gate конвертує в 2 рази ефективніше, ніж hard gate. На iOS реалізація через FeatureGateModifier у SwiftUI:
Button("Export HD") { viewModel.exportHD() }
.featureGated(.hdExport, paywallTrigger: .featureTap)
Відображення лімітів та прогрес-барів
Користувач має бачити свої ліміти заздалегідь. Приховане обмеження, що спрацьовує раптово, дратує. Краще: прогрес-бар «7 з 10 AI-запитів сьогодні», при 80% — м'який nudge на premium. Ліміти зберігаються на сервері, клієнт отримує через API usage_quota. Скидання відбувається щоденно по cron, клієнт отримує push {"type": "quota_reset"}.
Ефективні тригери paywall
Freemium вимагає продуманих моментів показу paywall. Органічні тригери (користувач сам натрапив на ліміт) конвертують краще, ніж примусові. PaywallTrigger enum включає: .usageLimitReached, .featureTapped, .exportAttempted, .scheduled(day: 7). Кожен тригер A/B-тестується.
| Тригер |
Опис |
Приклад конверсії |
| usageLimitReached |
Досягнуто ліміт |
12% |
| featureTapped |
Спроба платної фічі |
8% |
| exportAttempted |
Спроба експорту (premium) |
15% |
| scheduled(day: 7) |
7 днів використання |
10% |
Retention-driven upsell: якщо користувач активний 7 днів, конверсія зростає. Day-7 retention таких користувачів — 70%+.
Чому плавний downgrade підвищує LTV?
Користувач скасував підписку — переходить на безкоштовний план. Плавний downgrade: якщо у нього 15 проєктів при ліміті 3 — не видаляємо, позначаємо read-only і показуємо повідомлення «Ваші проєкти збережено — поверніть premium для редагування». Це підвищує шанси повторної підписки на 25%, тоді як різке блокування призводить до повернення лише 3% користувачів. На клієнті DowngradeManager при зміні entitlement з premium на free обчислює перевищення та оновлює UI без видалення даних.
StoreKit 2 / Play Billing інтеграція
Auto-renewable subscription: product.subscription?.renewalInfo містить willAutoRenew — відображаємо статус. Manage subscription: URL(string: "https://apps.apple.com/account/subscriptions") для iOS, launchBillingFlow з SubscriptionUpdateParams для зміни планів на Android. Детальніше в документації StoreKit 2.
Процес роботи та що входить
- Проектування Feature Map (free vs premium).
- Розробка EntitlementManager + FeatureGate layer.
- Реалізація лімітів та їх відображення.
- Налаштування paywall-тригерів.
- Інтеграція StoreKit 2 / Play Billing.
- Реалізація downgrade-логіки.
- A/B тест setup (Firebase Remote Config).
- QA та публікація.
Що входить в реалізацію freemium-моделі
- Feature Map документ
- EntitlementManager та FeatureGate код
- Paywall UI (адаптивний під iOS/Android)
- Налаштування A/B тестів (Firebase Remote Config)
- Документація з моделі монетизації
- Підтримка при релізі в стори
Орієнтири по термінах
Реалізація freemium-моделі з EntitlementManager, feature gating, лімітами та soft/hard gates — 5 робочих днів при готовій IAP інтеграції. З нуля включно з StoreKit 2 / Play Billing — 1,5–2 тижні.
Зв'яжіться з нами для обговорення вашої моделі монетизації — допоможемо знайти баланс між безкоштовним та платним, щоб максимізувати LTV. Отримайте консультацію щодо вашого проєкту вже сьогодні.
Монетизація мобільних додатків: 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.