Files
obsidian-vault/personal/projects/psychologist-app/monetization-revenuecat.md
T

744 lines
44 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Монетизация — RevenueCat"
aliases:
- "Монетизация"
- "Monetization"
- "RevenueCat"
- "subscriptions"
- "monetization-revenuecat"
created: '2026-05-16'
updated: '2026-05-31'
tags:
- project
- app
- psychology
- monetization
- revenuecat
related:
- "[[personal/projects/psychologist-app/overview]]"
- "[[personal/projects/psychologist-app/privacy-legal]]"
---
# Монетизация AI-приложения рефлексии: RevenueCat + Стратегия подписок
> **Контекст:** AI-приложение рефлексии, iOS SwiftUI + Android через Skip.tools. Соло инди-разработчик, Бишкек.
> **Планируемые планы:** Бесплатный триал / Monthly $9.99 / Annual $59.99 / Unlimited $19.99/mo
> **Дата исследования:** Май 2026
---
## 1. RevenueCat: Детальный разбор
### 1.1 Что такое RevenueCat
RevenueCat — это платформа управления подписками, которая предоставляет бэкенд-обёртку над StoreKit (iOS) и Google Play Billing (Android). Ключевая ценность: единый источник правды по подпискам вместо самостоятельного обслуживания двух разных платёжных систем.
**Полный список функций:**
| Категория | Функциональность |
|---|---|
| **Build** | Open-source SDK для iOS, Android, Flutter, React Native, Unity, macOS/Catalyst, Cordova, Ionic; Unified subscription backend; REST API; StoreKit 2 / Play Billing 5 поддержка |
| **Acquire** | Интеграции с MMP (AppsFlyer, Adjust, Branch, Facebook Ads, Apple Search Ads); Predictive LTV cohort analysis; No-code Web-to-App Funnels |
| **Convert** | A/B тестирование с remote config; No-code paywall editor с шаблонами; Segmentation (audience + in-app placement targeting) |
| **Understand** | Dashboard с 40+ метриками; Webhooks real-time; Automated data delivery (S3, BigQuery); интеграция с Amplitude, Mixpanel, Firebase, Segment и другими (27 интеграций всего) |
| **Retain** | Automated in-app subscription support; Cross-platform customer insights; Grant promotional subscriptions из дашборда; Event-based lifecycle triggers через маркетинговые интеграции |
| **Validation** | Server-side receipt validation для iOS и Android; защита от мошенничества |
### 1.2 Ценообразование RevenueCat: точные условия
| Тариф | Цена | Лимит |
|---|---|---|
| **Pro (Free tier)** | **$0** | До **$2,500/month MTR** (Monthly Tracked Revenue) |
| **Pro (платный)** | **1% от MTR** | Свыше $2,500 MTR |
| **Growth Tools Only** | 1% только на конверсии | Только Paywalls + Funnels на своей инфраструктуре |
| **Enterprise** | Custom | Высокий объём, кастомные SLA |
**Важные детали:**
- **MTR = gross revenue до вычета комиссии платформы** (т.е. $2,500 MTR ≠ $2,500 у вас в кармане; реально на счёт придёт ~$1,750 после комиссии 30%)
- **Кредитная карта не нужна** для старта
- **Все функции доступны на бесплатном тарифе** — нет ограничений по фичам, только по объёму
- Для соло инди-разработчика с нуля — **полностью бесплатно до ~175 активных подписчиков** ($9.99/mo × 250 ≈ $2,500)
**Когда начнёте платить:** При $9.99/mo плане, переход на платный тариф произойдёт примерно при 250 платящих пользователях (≈$2,500 MRR). RevenueCat будет брать 1%, то есть при $5,000 MRR → $50/месяц. Это разумно.
### 1.3 Интеграция в SwiftUI проект: сложность и время
**Установка через SPM (рекомендуемый путь):**
```swift
// Package.swift или Xcode → Add Package Dependencies
// URL: https://github.com/RevenueCat/purchases-ios-spm.git
// Версия: 5.0.0 < 6.0.0
import RevenueCat
// Инициализация один раз при запуске
Purchases.logLevel = .debug
Purchases.configure(withAPIKey: "appl_YOUR_KEY", appUserID: currentUserID)
```
**Проверка статуса подписки:**
```swift
let customerInfo = try await Purchases.shared.customerInfo()
if customerInfo.entitlements.all["pro"]?.isActive == true {
// Пользователь Premium
}
```
**Оценка времени для опытного iOS-разработчика:**
- Базовая интеграция (SDK + проверка статуса + paywall) — **48 часов**
- Полная интеграция с A/B тестами, аналитикой, webhooks — **13 дня**
- Настройка App Store Connect (продукты, группы подписок) — **24 часа**
### 1.4 RevenueCat + Skip.tools: Полная поддержка!
**Отличная новость:** Skip.tools имеет официальный модуль `skip-revenue` — это нативная обёртка для RevenueCat, работающая на обеих платформах из единого Swift-кода.
```swift
// Package.swift
.package(url: "https://source.skip.dev/skip-revenue.git", "0.0.0"..<"2.0.0")
// Инициализация с платформенными ключами
import SkipRevenue
@main struct MyApp: App {
init() {
#if !SKIP
RevenueCatFuse.shared.configure(apiKey: "appl_ios_key")
#else
RevenueCatFuse.shared.configure(apiKey: "goog_android_key")
#endif
}
}
```
**Функции skip-revenue:**
- `loadProducts()` / `loadOfferings()` — загрузка продуктов
- `purchase(package:)` — покупка (iOS: без доп. параметров; Android: требует `activity`)
- `getCustomerInfo()` — статус подписки
- `restorePurchases()` — восстановление покупок
- `RCFusePaywallView` — готовый нативный paywall UI на обеих платформах
**⚠️ Важный нюанс для Android (через Skip):**
```swift
// Android требует передачи Activity
let customerInfo = try await RevenueCatFuse.shared.purchase(
package: package,
activity: UIApplication.shared.androidActivity
)
```
Это единственное отличие от iOS-кода. Всё остальное идентично.
### 1.5 Отзывы инди-разработчиков о RevenueCat
**Из Reddit r/androiddev (реальные комментарии):**
**Плюсы:**
- "Easy to set up, works well long-term" — стабильная работа
- User retention dashboards без необходимости настраивать BigQuery
- A/B testing paywalls из коробки
- Responsive support в GitHub issues
- "That sort of support is worth so much more to me than the bare implementation!"
- Цитата из маркетинга RevenueCat (но показательная): "In just a year from shipping with RevenueCat, I was able to quit my day job to focus 100% on CardPointers."
**Минусы:**
- API latency: p90 ~800ms для запросов из EU-серверов (важно для UX)
- Абстракция Products/Offerings/Entitlements — требует понимания, не очевидна новичкам
- При высоких доходах 1% становится значительной суммой
- Paywall шаблоны ограничены (но fully custom paywall возможен)
**Рейтинги:**
- Capterra: **4.8/5**
- G2: **4.7/5**
- SOC2 certified, GDPR compliant
### 1.6 Конкуренты: Adapty, Qonversion, Superwall
| Критерий | **RevenueCat** | **Adapty** | **Qonversion** | **Superwall** |
|---|---|---|---|---|
| **Free tier** | $0 до $2,500 MTR | $0 до $10K MTR | ✅ (ограниченный) | — |
| **Платный тариф** | 1% от MTR | $99/mo (flat) | ~$20/mo | $99/mo |
| **SDK платформы** | 8 платформ | 5 платформ | iOS + Android | iOS + Android |
| **Skip.tools support** | ✅ Официальный пакет | ❌ | ❌ | ❌ |
| **Интеграции** | 27 | 17 | ~10 | ~15 |
| **No-code Paywall Builder** | ✅ (2024 добавлен) | ✅ | ❌ | ✅ (специализация) |
| **A/B Testing** | ✅ | ✅ | ❌ | ✅ |
| **Free CRM access** | ✅ | ❌ (только paid) | ❌ | — |
| **Free analytics** | Базовые 6 метрик | Более 10 метрик | Средние | — |
| **Локализация paywalls бесплатно** | ✅ | ❌ (только paid) | — | — |
| **MMP/Attribution (бесплатно)** | ✅ | ❌ ($100+ plan) | ❌ | — |
**Вывод для нашего кейса:**
> **RevenueCat — однозначный выбор** для Skip.tools проекта. Единственный инструмент с официальной поддержкой Skip. Adapty дешевле до $10K MTR, но отсутствует поддержка Skip и локализация paywalls платная. Qonversion и Superwall не имеют Skip-интеграции.
---
## 2. Данные о конверсии: RevenueCat State of Subscription Apps 2024
> Источник: RevenueCat, анализ 30,000+ приложений, 18,000+ разработчиков, $6.7B+ отслеживаемого дохода, 290M+ подписчиков
### 2.1 Ключевые бенчмарки конверсии
| Метрика | Значение |
|---|---|
| Downloads → платящий подписчик (первые 30 дней) | **1.7%** (среднее) |
| Нижний квартиль | 0.6% |
| Верхний квартиль | 4.2% |
| Trial → конверсия (2024) | **37.3%** (снизилась с 40.5% в 2023) |
| Trial → конверсия (Health & Fitness) | **44.5%** |
| Trial → конверсия, триал ≤4 дня | 31.2% |
| Trial → конверсия, длинный триал | до 44.9% |
| App Store vs Google Play конверсия | 39.0% vs 28.5% |
| Разница top 5% vs bottom 25% (за 12 месяцев) | **200x** |
| Churned пользователи, возвращающиеся за 12 мес | >10% |
### 2.2 Pricing benchmarks (релевантные для нашего приложения)
| Категория | Данные |
|---|---|
| Самая распространённая цена (месячная) | **$9.99/mo** ✅ — попадаем точно в рынок |
| Средняя месячная цена (2024) | $8.01 (рост +14% с $7.05) |
| Самая распространённая цена (годовая, Education) | **$59.99/year** ✅ — наш план попадает точно |
| Рекомендуемый дисконт Annual vs Monthly (аннуализированный) | **~17%** (наш: $59.99 vs $9.99×12=$119.88 → скидка 50% — агрессивно, но работает) |
| Health & Fitness предпочитают | **1-year планы** (долгосрочные цели) |
### 2.3 Стратегия триала: данные 2024
| Стратегия | 2024 | 2023 |
|---|---|---|
| Иногда предлагают триал | 47.84% | — |
| Никогда не предлагают | 28.81% | ~40% |
| Всегда предлагают | 23.34% | ~30%+ |
**Тренды:**
- Самый популярный период триала: **59 дней**
- Рост 17–32 дневных триалов на 50% (тренд к более длинным)
- **Большинство триалов стартуют в первые 24 часа** после установки (85%+ в Business, Health)
- Эксперт Hannah Parvaz: "Short trials are the equivalent of a speed date: brief yet intense"
### 2.4 Модели монетизации: Calm, Headspace, Duolingo
| Приложение | Модель | Ключевые решения |
|---|---|---|
| **Calm** | Hard paywall после онбординга + 7-day trial | Нет бесплатного контента; paywall сразу после регистрации; упор на "sleep" как крючок |
| **Headspace** | Freemium + подписка | Базовые медитации бесплатно; всё остальное — платно; Annual план с большой скидкой |
| **Duolingo** | Freemium + рекламный tier + Super Duolingo | Сильный gamification; ads создают motivation to upgrade; агрессивные уведомления |
**Вывод по индустрии:**
- Health & Fitness / Mental Health имеют **44.5% trial conversion** — лучший показатель после Travel
- Hard paywall (Calm) показывает хорошие результаты для brand-aware приложений
- Soft paywall (Headspace) работает для discovery через контент
### 2.5 Сравнение моделей для нашего приложения
| Модель | Конверсия (оценка) | Pros | Cons |
|---|---|---|---|
| **1 сессия бесплатно, потом prompt** | 3–5% платных | Нет барьера входа; пользователь видит ценность | Сложнее предсказать MRR |
| **14-day trial с картой** | 30–40% из начавших триал | Высокая конверсия завершивших | Меньше людей начнут триал (барьер карты) |
| **7-day trial без карты** | 5–15% из скачавших | Оптимальный баланс | Люди забывают подписаться |
| **Freemium с N сессиями в месяц** | 2–8% платных | Постоянная аудитория; вирусность | Сложность удержания платящих |
**Рекомендация для Mental Health / Reflection приложения:**
> Оптимальна модель **"7-day free trial без карты + soft paywall после первой сессии"** (показать paywall, но дать продолжить). После триала — hard paywall.
---
## 3. Правила Apple и Google
### 3.1 Apple: Free trial и сессии без карты
**Можно ли давать первую сессию бесплатно без карты?**
> ✅ **ДА — это полностью разрешено и поощряется.**
Apple позволяет предоставлять любой бесплатный контент без привязки карты. "1 бесплатная сессия" — это просто бесплатная функция приложения, не требующая IAP. Карта нужна только при оформлении подписки или триала.
**Типы offer Apple IAP:**
- **Introductory Offers** — бесплатный/сниженный триал для новых подписчиков
- **Offer Codes** — коды для маркетинговых акций
- **Promotional Offers** — специальные предложения для бывших/текущих подписчиков
**App Store Review Guidelines (раздел 3.1.1 — IAP):**
- Все функции, требующие разблокировки за деньги, **обязаны** использовать IAP Apple
- Нельзя ссылаться на другие методы оплаты внутри приложения (нарушение)
- "Free" приложения не могут требовать покупку до использования (но можно после первой сессии)
- Metadata должна чётко описывать, что нужна подписка
- Демо-аккаунт для ревьюеров обязателен если paywall блокирует функциональность
### 3.2 Apple Small Business Program: 15% комиссия
| Параметр | Условие |
|---|---|
| **Стандартная комиссия** | 30% |
| **Уменьшенная комиссия** | **15%** |
| **Порог дохода** | ≤ $1,000,000 USD proceeds в предыдущем календарном году |
| **Applies to** | Ты + ВСЕ связанные аккаунты разработчика суммарно |
| **Enrollement** | Нужно подать заявку; одобрение ~15 дней после конца фискального месяца |
| **Подходит ли соло-инди из KG?** | ✅ **Да, абсолютно** — нет ограничений по географии |
| **Subscriptions (2+ year)** | После 1-го года подписки Apple снижает до 15% автоматически |
**Как записаться:** App Store Connect → Account Holder → Small Business Program → Enroll
**Для нашего случая:** Сразу при запуске подаём заявку. До $1M proceed в год — это примерно 8,300 платящих пользователей при $9.99/mo × 12. Очень реально оставаться на 15% долго.
### 3.3 Google Play: аналогичные условия
| Параметр | Условие |
|---|---|
| **Стандартная комиссия** | 30% |
| **Подписки** | **15% всегда** (без лимита по доходу!) |
| **Первый $1M/год (не подписки)** | 15% |
| **Свыше $1M/год** | 30% |
| **97% разработчиков** | Платят 0% (бесплатное распространение) |
| **99% разработчиков с транзакциями** | Платят 15% или меньше |
**Ключевое отличие Google:** Для подписок Google уже автоматически берёт **15%** (не нужна отдельная программа как у Apple). Это выгоднее.
**Итоговые комиссии для нашего приложения:**
- Apple (после Small Business Program): **15%** → с $9.99 получаем $8.49
- Google Play (подписки): **15%** → с $9.99 получаем $8.49
- После вычета RevenueCat 1%: ~$8.41
### 3.4 Типичные ошибки при первой настройке IAP
1. **Не подписано Paid Apps Agreement** в App Store Connect → IAP не работает
2. **Не настроены банковские реквизиты** → то же самое
3. **Продукт в статусе "Ready to Submit"** но не "Approved" → покупки не работают в production
4. **Не включена In-App Purchase capability** в Xcode (Capabilities tab)
5. **Hardcoded product IDs** → при смене плана нужен update приложения
6. **Sandbox account не создан** в App Store Connect → тестирование невозможно
7. **Не вызван `transaction.finish()`** → транзакции висят бесконечно
8. **Metadata не описывает подписку** → reject от App Review (обязательно 2.3.2)
9. **Отсутствует восстановление покупок** → обязательное требование Apple
---
## 4. Психология ценообразования для Mental Health
### 4.1 Где показывать paywall
**Данные и рекомендации:**
| Момент показа | Конверсия (оценка) | Обоснование |
|---|---|---|
| Сразу при открытии (до онбординга) | ~1-2% | Слишком рано; пользователь не видел ценности |
| После онбординга (перед первой сессией) | ~3-5% | Вариант Calm; работает при сильном бренде |
| **После первой сессии** | **~5-10%** | ✅ Оптимально для рефлексии — пользователь понял ценность |
| После 3+ сессий / 3+ дней | ~3-6% | Пользователь "тёплый", но часть уже ушла |
| При достижении лимита (freemium) | ~4-8% | Естественный триггер; friction высокий |
**Рекомендация:**
> Показывай paywall **после первой завершённой сессии**. Момент завершения сессии — пик эмоциональной ценности: пользователь только что получил инсайт и готов инвестировать в продолжение.
### 4.2 Soft vs Hard paywall
| Тип | Описание | Конверсия | Retention |
|---|---|---|---|
| **Hard paywall** | Полная блокировка; нужна подписка | Выше среди прошедших | Ниже органический рост |
| **Soft paywall** | Можно пропустить; часть функций доступна | Ниже одномоментная | Выше долгосрочная |
| **Soft → Hard** (после триала) | Триал без карты, затем блокировка | **Оптимально** | Лучший баланс |
**Для mental health / reflection приложений:**
- Soft paywall с триалом даёт больше шансов доказать ценность
- Пользователи не доверяют психологическим инструментам без опыта
- Рекомендую: **мягкий paywall с 7-дневным триалом** → hard блокировка после триала
### 4.3 Framing: как формулировать ограничения
| Формулировка | Эффект |
|---|---|
| "2 сессии в неделю" | Кажется щедро; создаёт ритм |
| "8 сессий в месяц" | Кажется меньше; абстрактно |
| "Попробуй 7 дней бесплатно" | Позитивный framing; снижает страх |
| "Осталось 2 бесплатных сессии" | Loss aversion; хорошо конвертирует |
| "Продолжи свой путь рефлексии" | Emotional hook; лучше для mental health |
**Рекомендация по framing:**
- Используй **"неделю"** как единицу ("2 сессии в неделю"), не месяц
- Показывай **прогресс** — "ты уже сделал X шагов" до paywall
- Формулируй как **"продолжение"**, не как "покупку"
### 4.4 Annual plan: когда и как предлагать
**Рекомендации из данных RevenueCat 2024:**
- Health & Fitness аудитория **сильно предпочитает годовые планы** (долгосрочные цели)
- Эксперт Reid DeRamus (ex-Hulu): "Avoid lifetime plans — severely under-monetize most loyal users"
- Стандартный дисконт: 17% от аннуализированной месячной цены; наш: 50% скидка — агрессивно, но привычно для рынка
**Когда предлагать Annual:**
1. На paywall экране: **выделить Annual как "Most Popular"** или "Best Value"
2. После 2–3 недель месячной подписки: **upgrade prompt**
3. При ежегодном продлении: предложить скидку если хотели отменить
**Психология Annual:**
- "$59.99/year" воспринимается как "меньше $5/month" — используй это в copy
- Сравни с "двумя чашками кофе в месяц" для mental health аудитории
### 4.5 Примеры удачных paywall экранов (паттерны)
**Структура конвертирующего paywall для mental health:**
```
[Эмоциональный заголовок]
"Продолжи свой путь к ясности"
[Список 3-4 бенефита с иконками]
✓ Неограниченные сессии рефлексии
✓ AI-анализ паттернов мышления
✓ История и инсайты
✓ Экспорт данных
[Планы — Annual highlighted]
┌─────────────────────────────────┐
│ ⭐ ГОДОВОЙ $59.99/год │
│ Экономия 50% · $4.99/месяц │
└─────────────────────────────────┘
МЕСЯЧНЫЙ $9.99/месяц
[CTA Button]
"Начать 7 дней бесплатно"
[Legal]
Отмена в любое время · Без обязательств
```
**Ключевые принципы:**
- Annual план — **всегда первый и выделенный**
- Кнопка CTA фокусируется на триале, не на цене
- Минимум юридического текста сверху, максимум — мелко снизу
- Social proof если есть: "Помог 10,000 пользователям"
---
## 5. Пошаговый план реализации
### Шаг 0: Подготовка App Store Connect (до RevenueCat)
```
□ 1. Подписать Paid Apps Agreement (Schedule 2) в App Store Connect
□ 2. Добавить банковские реквизиты (можно Payoneer / карта KG-банка)
□ 3. Создать Subscription Group: "Psychologist Pro"
□ 4. Создать продукты:
- com.yourapp.monthly_999 ($9.99/mo, 1 month)
- com.yourapp.annual_5999 ($59.99/yr, 1 year)
- com.yourapp.unlimited_1999 ($19.99/mo, 1 month — "Unlimited")
□ 5. Для каждого продукта: добавить локализацию (EN обязательна)
□ 6. Настроить Free Trial: 7 days для каждого плана
□ 7. Добавить скриншот и описание для App Review
□ 8. Создать Sandbox тестовый аккаунт (Users and Access → Sandbox Testers)
□ 9. Подать заявку на Small Business Program (15% комиссия)
```
### Шаг 1: Настройка RevenueCat
```
□ 1. Зарегистрироваться на revenuecat.com (бесплатно, без карты)
□ 2. Создать проект "Psychologist App"
□ 3. Добавить iOS App: вставить Bundle ID, Apple API Key (из App Store Connect)
□ 4. Добавить Android App: Bundle ID, Google Service Account JSON
□ 5. В RevenueCat Dashboard → Products: добавить те же Product IDs
□ 6. Создать Entitlement "pro"
□ 7. Привязать все продукты к entitlement "pro"
□ 8. Создать Offering "default" с пакетами monthly, annual, unlimited
□ 9. Настроить webhooks (опционально: Slack уведомления о подписках)
```
### Шаг 2: Интеграция в Skip.tools проект
```swift
// Package.swift — добавить зависимость
.package(url: "https://source.skip.dev/skip-revenue.git", "0.0.0"..<"2.0.0")
// App.swift — инициализация
import SkipRevenue
@main struct PsychologistApp: App {
init() {
#if !SKIP
RevenueCatFuse.shared.configure(apiKey: "appl_XXXXXXXX")
#else
RevenueCatFuse.shared.configure(apiKey: "goog_XXXXXXXX")
#endif
}
}
// SubscriptionManager.swift — сервис подписок
@MainActor
class SubscriptionManager: ObservableObject {
@Published var isPro: Bool = false
func checkStatus() async {
let info = try? await RevenueCatFuse.shared.getCustomerInfo()
isPro = info?.isEntitlementActive("pro") ?? false
}
func loadOfferings() async throws -> [RCFusePackage] {
return try await RevenueCatFuse.shared.loadProducts()
}
}
// PaywallView.swift — использование готового UI
import SkipRevenueUI
.sheet(isPresented: $showPaywall) {
RCFusePaywallView(
onPurchaseCompleted: { _ in showPaywall = false },
onRestoreCompleted: { _ in showPaywall = false },
onDismiss: { showPaywall = false }
)
}
```
### Шаг 3: Тестирование в Sandbox
```
□ 1. В Xcode: настроить StoreKit Configuration File (File → New → StoreKit Config)
□ 2. Edit Scheme → Run → Options → StoreKit Configuration: выбрать файл
□ 3. Войти в Simulator под Sandbox тестовым аккаунтом (Settings → App Store)
□ 4. Тестировать сценарии:
- Успешная покупка подписки
- Отмена подписки
- Восстановление покупок
- Истечение триала (ускоренное время в Sandbox: 1 day = 5 min)
- Billing issue (decline карты)
□ 5. Проверять события в RevenueCat Dashboard → Customer Lookup
```
### Шаг 4: Запуск и мониторинг
```
□ 1. Настроить Webhook → Slack канал для real-time уведомлений
□ 2. Подключить Firebase Analytics для funnel отслеживания
□ 3. Настроить A/B тест paywall (RevenueCat Experiments):
- Вариант A: paywall после онбординга
- Вариант B: paywall после первой сессии
□ 4. Мониторить метрики:
- Trial start rate (цель: >5%)
- Trial conversion rate (цель: >35%)
- Monthly churn (цель: <10%)
- MRR growth
```
---
## 6. Рекомендованная модель монетизации
### Финальная рекомендация
**Выбранная модель: "Soft Paywall → Free Trial → Hard Paywall"**
```
Первый запуск
Онбординг (5 экранов, без paywall)
Первая ПОЛНАЯ бесплатная сессия
[После сессии — Paywall экран]
"Понравилось? Продолжи своё путешествие"
→ "Начать 7 дней бесплатно" [CTA]
→ "Пропустить" [маленькая ссылка]
↓ (если пропустил)
2-я сессия → HARD paywall (нет пропуска)
```
**Структура планов (финальная):**
| План | Цена | Позиционирование |
|---|---|---|
| **Annual** | $59.99/год ($4.99/mo) | ⭐ "Best Value" — выделен первым |
| **Monthly** | $9.99/mo | Стандартный план |
| **Unlimited** | $19.99/mo | Для power users (больше сессий в день, приоритет) |
**Триал:** 7 дней бесплатно (без карты) для Monthly и Annual. Unlimited — без триала или 3 дня.
### Почему именно эта модель
1. **1 сессия бесплатно** — пользователь видит ценность ДО оплаты (критично для trust в mental health)
2. **7-day trial без карты** — снижает барьер; Health & Fitness конвертирует 44.5% из начавших триал
3. **Annual как основной** — Health & Fitness аудитория предпочитает годовые планы (долгосрочные цели)
4. **$59.99/year** — точно попадает в самый распространённый ценовой tier (Education/Health data 2024)
5. **Soft → Hard** — адаптируется к уровню доверия пользователя
### Ожидаемые метрики (консервативный прогноз)
| Метрика | Значение |
|---|---|
| Download → Trial start | 2035% |
| Trial → Paid | 3040% |
| Download → Paid (итого) | ~510% |
| Annual vs Monthly split | 60% / 40% (цель) |
| MRR при 1000 активных подписчиках | ~$6,0008,000 |
| RevenueCat fee при $6,000 MRR | $60/mo (1%) |
| Apple/Google комиссия (15%) | ~$900/mo |
| Чистый MRR при $6K gross | ~$5,040/mo |
---
## Итоговые выводы
1. **RevenueCat** — единственный правильный выбор для Skip.tools проекта благодаря официальному пакету `skip-revenue`. Бесплатно до $2,500 MRR (≈250 платящих пользователей).
2. **Skip.tools + RevenueCat** работает нативно через единый Swift-код с минимальными платформенными различиями (только передача `activity` для Android-покупок).
3. **Apple Small Business Program** (15% вместо 30%) доступен сразу для соло-разработчика из Кыргызстана. Подать заявку в первый же день запуска.
4. **Google Play** автоматически берёт 15% на подписки — программа не нужна.
5. **7-day free trial + 1 бесплатная сессия** — оптимальная комбинация для mental health приложения. Trial start rate 2035%, конверсия trial→paid до 44.5% в категории Health & Fitness.
6. **Annual план выделить первым** — Health & Fitness аудитория предпочитает долгосрочные планы, конверсия выше.
7. **Paywall после первой сессии** — оптимальный момент. Эмоциональный пик после инсайта = максимальная готовность платить.
8. **Время интеграции** RevenueCat + Skip: 12 дня для базовой интеграции + 2–4 часа на App Store Connect настройку.
---
## 7. Российский рынок: подписки в условиях санкций (май 2026)
> **TL;DR:** App Store платежи в РФ полностью отключены с 1 апреля 2026. RevenueCat не поддерживает RuStore. Для России нужен отдельный платёжный стек. Единого SDK нет — нужна абстракция.
### 7.1 Текущий статус платёжных каналов
| Канал | Статус | Комментарий |
|---|---|---|
| **App Store (iOS)** | 🔴 **МЁРТВ** с 01.04.2026 | Apple Ireland оштрафована за нарушение санкций → отключила все платежи в РФ. Работает только существующий баланс Apple Account |
| **Google Play (Android)** | 🟡 Ограничен | Visa/Mastercard недоступны. МИР — частично. SBP — нет. Часть пользователей платит через операторские счета, но это «расходящийся» канал |
| **RuStore (Android)** | 🟢 **Основной канал** | Предустановлен на всех Android-устройствах в РФ с сентября 2025. Полная поддержка МИР, СБП, SberPay, карты из VK ID |
| **RuStore на iOS** | 🟠 Не существует | Только RuStore Bridge (требует Android-устройства рядом). Pay SDK для iOS был анонсирован дек. 2025 на «начало 2026» — статус запуска неясен |
| **Web-checkout iOS** | 🟡 Технически возможен | Внешний сайт + ЮКасса/Tinkoff/CloudPayments → пользователь получает токен доступа → вводит в приложении |
### 7.2 RevenueCat: поддержка России
**RevenueCat НЕ поддерживает RuStore.** RevenueCat оборачивает только:
- StoreKit / StoreKit 2 (Apple)
- Google Play Billing (Google)
RuStore использует собственный **Pay SDK** (и мигрирует с устаревшего BillingClient → обязательно до 1 августа 2026). Никакой официальной или сторонней обёртки RevenueCat для RuStore не существует.
**Следствие для skip-revenue:** `skip-revenue` тоже не покрывает RuStore — это обёртка над RevenueCat.
**Adapty** — та же ситуация: поддерживает App Store + Google Play, RuStore нет.
### 7.3 RuStore Pay SDK: ключевые детали
| Параметр | Значение |
|---|---|
| **Дедлайн миграции с BillingClient** | **1 августа 2026** — старый SDK перестаёт принимать платежи |
| **Платёжные методы** | МИР, СБП, SberPay, карты (T-Pay и мобильный счёт — в роадмапе) |
| **Авто-подгрузка карт** | Из VK ID — без ручного ввода → **+20% к конверсии** |
| **Поддержка подписок** | Полная: trial / promo / main / grace / hold периоды |
| **Sandbox** | Есть (в BillingClient не было) |
| **Комиссия** | Не публикуется явно; конкурентная с Google Play |
| **Фреймворки** | Kotlin/Java, React Native, Flutter, Unity, Godot, Unreal Engine, Defold |
| **Swift / iOS нативный SDK** | ❌ Отсутствует |
### 7.4 Архитектура для покрытия России
Единого SDK нет. Нужна абстракция на уровне приложения:
```
┌─────────────────────────────────────────────────────┐
│ PaymentProvider (протокол) │
│ loadProducts() / purchase() / checkStatus() │
└──────────┬───────────────────────────┬──────────────┘
│ │
▼ ▼
RevenueCatProvider RuStoreProvider
(iOS App Store + (Android RuStore
Android Google Play) Pay SDK)
skip-revenue пакет Kotlin native
Глобальные рынки Только РФ Android
│ │
└──────────┬────────────────┘
WebCheckoutProvider
(iOS РФ + fallback)
ЮКасса / Tinkoff /
CloudPayments
→ access token flow
```
**Практически это значит:**
- **Android**: 2 отдельных flavor — `googlePlay` (RevenueCat) и `ruStore` (Pay SDK). Или одна сборка с детектом магазина.
- **iOS глобальные**: RevenueCat + skip-revenue (как и планировалось).
- **iOS Россия**: Веб-чекаут — пользователь нажимает «Оформить подписку» → открывается Safari/SFSafariViewController → платёж через ЮКасса → сервер выдаёт токен → приложение активирует доступ. Apple разрешает это через External Purchase Link Entitlement (в РФ де-факто выдают для Reader App категории и ряда других).
### 7.5 Веб-чекаут для iOS России: как работает
```
iOS пользователь
[Кнопка "Подписаться"]
SFSafariViewController → ваш сайт (yourapp.com/subscribe)
Выбор плана + ввод данных карты
ЮКасса / CloudPayments / Tinkoff
(МИР, СБП, SberPay, карты)
Успешный платёж → сервер создаёт subscription record
Redirect с токеном → ваше приложение deeplink
Приложение активирует доступ (по токену или user ID)
```
**Российские платёжные провайдеры для web-checkout:**
| Провайдер | Комиссия | Методы | Подписки |
|---|---|---|---|
| **ЮКасса (Сбербанк)** | 2.83.5% | МИР, СБП, SberPay, карты, кошельки | Рекуррентные + 54-ФЗ авто |
| **CloudPayments (Тинькофф)** | 23.9% | МИР, СБП, T-Pay, карты | Лучшая поддержка подписок по API |
| **Tinkoff Checkout** | 2.53% | МИР, T-Pay, карты | Есть, через API |
**CloudPayments** — оптимален для подписочной модели: гибкий API, удобное управление рекуррентными платежами, owned by Тинькофф → надёжность.
### 7.6 Стратегия: стоит ли вообще заниматься РФ?
**Аргументы за:**
- 144 млн человек; mental health ниша практически пустая в RuStore
- RuStore — конкурентное преимущество (большинство международных разработчиков игнорируют)
- Пользователи платят в рублях, конкуренция ниже → выше средний чек в соотношении
**Аргументы против:**
- iOS Russia = мёртв до изменения политики. Веб-чекаут — сложная инфраструктура для соло-разработчика
- RuStore Pay SDK требует отдельную Android-интеграцию без RevenueCat
- VK/RuStore — политически неоднозначная зависимость
- Юридическая сторона: приём платежей из РФ как резидент Кыргызстана — требует консультации
**Рекомендация для соло-разработчика на старте:**
> **Фаза 1 (MVP):** Запуск только на глобальных рынках через RevenueCat + App Store + Google Play. Россию пропустить.
>
> **Фаза 2 (после первой выручки):** Добавить RuStore Android через Pay SDK как отдельный flavor. Это даёт 100% Android-охват РФ.
>
> **Фаза 3 (если есть спрос):** Веб-чекаут для iOS-аудитории РФ через CloudPayments. Только если data показывает значимый трафик.
### 7.7 Если всё-таки делать RuStore: минимальный план
```
□ 1. Зарегистрировать юрлицо или ИП (RuStore требует юридическое лицо)
□ 2. Зарегистрироваться в RuStore Console (console.rustore.ru)
□ 3. Создать отдельный Android productFlavor: ruStore
□ 4. Подключить Pay SDK (не BillingClient — он умирает 01.08.2026)
□ 5. Создать продукты в RuStore Console (подписки)
□ 6. Реализовать RuStorePaymentProvider абстракцию
□ 7. Протестировать в Sandbox
□ 8. Публикация → отдельный APK для RuStore подписан тем же ключом
```
**Важно:** RuStore требует, чтобы подпись APK совпадала с подписью билда в Console. Нельзя использовать debug keystore.
---
*Документ обновлён май 2026. Источники: CNews, MacDailyNews, The Verge, RuStore Developer Docs, ASO World Russia 2026, RevenueCat Blog (app-to-web), Adapty Blog (alternative payments), softwarelead.pro (Pay SDK migration).*
---
## Связанные заметки
- [[personal/projects/psychologist-app/overview|Overview]]
- [[personal/projects/psychologist-app/privacy-legal|Privacy & Legal]]