Настройка плана с 12-месячным обязательством
Для предложения плана с обязательством нужна годовая подписка в App Store, кастомный пейвол и Adapty SDK версии 4.3 или выше. Флоу не поддерживают отображение такого плана.
Чтобы подписчики оформляли годовую подписку с ежемесячной оплатой, добавьте план с обязательством на 12 месяцев к вашему годовому продукту в App Store Connect и в Adapty.
Прежде чем начать
Прежде чем внедрять планы с обязательством, убедитесь, что вы:
- Выбирайте правильный рынок: Планы с обязательством недоступны в Соединённых Штатах. В Германии, Израиле, Южной Африке и Турции подписчики могут отменить подписку с немедленным эффектом через поддержку Apple.
- Выбирайте правильную версию ОС: Подписчикам нужна iOS 26.4 или новее, либо такая же версия iPadOS, macOS, tvOS или visionOS. Собирайте приложение с Xcode 26.5 или новее.
- Выбирайте правильный ценовой диапазон: Сумма 12 ежемесячных платежей должна составлять от 1x до 1,5x стоимости годовой подписки с единовременной оплатой.
- Используйте Adapty SDK v4.3 или новее: В версиях приложения с более ранним SDK пользователи смогут купить только план с единовременной оплатой.
- Обновите код, который читает ID продуктов: Вебхуки, интеграции, экспорт данных и серверный API передают покупки плана с обязательством как
<product_id>:monthly. Если ваш код обрабатывает ID продуктов, обновите логику до первой такой покупки.
1. Настройка App Store Connect
- Откройте годовую подписку в App Store Connect или создайте новую подписку с длительностью 1 Year.
- В разделе Availability добавьте одни и те же страны в разделах 1 Year Upfront и Monthly with 12-Month Commitment. Apple предлагает тарификацию с обязательным сроком только там, где доступна авансовая тарификация. Обратное не обязательно: вы можете предлагать план с единовременной оплатой в странах без плана с обязательным сроком.
- В разделе Subscription Prices установите авансовую цену для базовой территории, если у подписки её ещё нет. Apple требует авансовую цену, даже если пользователям отображается только план с обязательным сроком.
- Установите ежемесячную цену для базовой территории. Ежемесячная цена должна составлять от 1/12 до 1/8 авансовой цены. Например, при авансовой цене €59,99 ежемесячная цена может быть от €5,00 до €7,49.
App Store Connect рассчитывает цены для других стран на основе цен базовой территории.
Подробные инструкции можно найти в гайде Apple по предложению ежемесячных подписок с обязательством на 12 месяцев.
2. Настройка Adapty
Чтобы отображать план с обязательством в кастомных пейволах, включите его для годового продукта в Adapty. Если вы не используете кастомные пейволы, этот шаг можно пропустить.
-
Откройте годовой продукт. Если его ещё нет, создайте его и подключите подписку, настроенную в App Store Connect. Не создавайте новый продукт через Adapty: это создаст отдельную подписку без плана с обязательством.
-
Откройте вкладку App Store и выберите Offer monthly payments with a 12-month commitment.
-
Во всплывающем окне из списка Monthly price, USD выберите цену рассрочки, соответствующую значению в App Store Connect. Список содержит только ценовые точки App Store в допустимом диапазоне. Эта цена является справочным значением: Adapty не отправляет её в App Store Connect.
3. Настройте офферы
В App Store Connect у каждого тарифного плана есть собственные introductory offer, promotional offer, win-back offer и коды офферов. Оффер для авансового плана не применяется к плану с обязательством.
- Бесплатные пробные периоды и другие introductory offers: В App Store Connect настройте предложение для тарифного плана с обязательством. Adapty автоматически применяет introductory offers. Когда introductory offer заканчивается, начинается 12-месячный срок обязательства подписчика.
- Promotional и win-back offers: Настройте promotional или win-back offers для тарифного плана с обязательством в App Store Connect. Затем добавьте предложения в Adapty и установите для них App Store plan значение Monthly with 12-month commitment. В строке пейвола отображаются только предложения для соответствующего тарифного плана. Если вы не используете кастомные пейволы, добавлять предложения в Adapty не нужно.
- Промокоды (Offer codes): Настройте промокоды для тарифного плана с обязательством в App Store Connect.
4. Добавить на кастомный пейвол
Apple требует показывать как цену в рассрочку, так и общую годовую сумму до совершения покупки.
- В кастомном пейволе добавьте годовой продукт и установите для него Billing plan в значение Monthly. Чтобы продавать на том же пейволе тариф с единовременной оплатой, добавьте годовой продукт ещё раз с Upfront billing plan.
- Чтобы предложить пользователям, которые покупают тариф с единовременной оплатой, upfront offer вместо него — на более ранней версии SDK или там, где commitment plan не применяется — выберите его в разделе Fallback offer.
- В приложении отображайте цену из
product.subscriptionPricingTerms. Для пользователей, которые могут купить commitment plan, Adapty SDK возвращает его цены. Для всех остальных SDK возвращает цены тарифа с единовременной оплатой:- Чтобы определить, какой тариф вернул SDK, проверьте
product.subscriptionPricingTerms?.billingPlan. Значение.monthlyсоответствует commitment plan,.upFront— тарифу с единовременной оплатой. - Для отображения цены за отдельный платёж используйте
subscriptionPricingTerms.localizedBillingPriceиsubscriptionPricingTerms.billingPeriod. - Для отображения годовой суммы используйте
subscriptionPricingTerms.commitmentInfo.localizedPriceиsubscriptionPricingTerms.commitmentInfo.period. Для commitment planproduct.localizedPriceиproduct.subscriptionPeriodвозвращают те же годовые значения.
- Чтобы определить, какой тариф вернул SDK, проверьте
Пользователи не могут приобрести план с обязательным сроком в следующих случаях:
- Неподдерживаемая версия ОС или страна: Устройство Apple пользователя работает на версии системы ниже 26.4, либо план недоступен в App Store их страны. SDK Adapty в этом случае возвращает цену авансового плана.
- Существующая авансовая подписка: StoreKit сообщает, что пользователь уже подписан. Чтобы сменить план, подписчики используют настройки подписки Apple.
- Продвигаемая встроенная покупка: Пользователь выбирает продукт в App Store, после чего SDK Adapty инициирует покупку в вашем приложении. Для таких покупок SDK поддерживает только авансовый план.
Чтобы прекратить предлагать план с обязательствами, в своих кастомных пейволах установите для годового продукта Billing plan на Upfront или удалите строку Monthly. Снять флажок Offer monthly payments with a 12-month commitment в Adapty невозможно. Текущие подписчики продолжают обновляться на новый период обязательств каждый год — если только вы не нажмёте Remove Monthly Billing для годовой подписки в App Store Connect. Подписчики, уже взявшие на себя обязательства, продолжают платить до истечения срока действия своего периода.
5. Протестируйте план в песочнице
Следуйте гайду по тестированию в песочнице, используя два аккаунта песочницы:
- Аккаунт из страны, где доступен план с рассрочкой: пейвол должен отображать план с рассрочкой с ежемесячной ценой и общей суммой. После покупки в профиле пользователя песочницы должен появиться уровень доступа годового продукта.
- Аккаунт из США: пейвол должен отображать только план с единовременной оплатой.
Если ваш код обрабатывает идентификаторы продуктов из вебхуков или Server-side API, убедитесь, что он получает покупки commitment-plan как <product_id>:monthly.
Для локального тестирования логики покупок используйте StoreKit Testing в Xcode версии 26.5 или новее. Покупки в StoreKit Testing не попадают в Adapty.
Устранение неполадок
- Флажок ежемесячных платежей отсутствует: флажок Offer monthly payments with a 12-month commitment появляется только для продукта типа Annual с App Store product ID. Он остаётся неактивным, пока у продукта не задан Price (USD).
- Пользователи не видят бесплатный пробный период или другое предложение для плана с обязательством: в App Store Connect каждое предложение относится к одному тарифному плану. Настройте предложение для плана с обязательством. Для promotional offer или win-back offer также укажите App Store plan предложения в Adapty как Monthly with 12-month commitment.
- Все пользователи видят полную стоимость: убедитесь в следующем:
- Приложение собрано в Xcode 26.5 или новее. При использовании более ранней версии Xcode SDK Adapty всегда возвращает цены плана с единовременной оплатой.
- В кастомном пейволе для годового продукта Billing plan установлен как Monthly.
- Некоторые пользователи видят полную стоимость: эти пользователи не могут купить план с обязательством.
- На пейволе отображается годовая сумма вместо стоимости рассрочки: для плана с обязательством
product.localizedPriceвозвращает годовую сумму. Чтобы показать стоимость одного платежа, используйтеsubscriptionPricingTerms.localizedBillingPrice.