Включение покупок в пользовательском пейволе в Unity SDK
Это руководство описывает, как интегрировать Adapty в ваши кастомные пейволы. Вы сохраняете полный контроль над реализацией пейвола, пока SDK получает продукты, обрабатывает новые покупки и восстанавливает предыдущие. В руководстве используются API Adapty Unity SDK v4 (beta) — если вы работаете с v3, см. руководство по миграции с соответствующими названиями методов.
Это руководство предназначено для разработчиков, реализующих пользовательские пейволы. Если вы хотите самый простой способ подключить покупки, используйте Adapty Flow Builder. С Flow Builder вы создаёте флоу в визуальном редакторе без кода, Adapty автоматически обрабатывает всю логику покупок, а тестировать разные дизайны можно без перевыпуска приложения.
Прежде чем начать
Настройте продукты
Для включения встроенных покупок вам нужно понять три ключевых концепции:
- Продукты – всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ)
- Пейволы – конфигурации, определяющие, какие продукты предлагать. В Adapty пейволы — единственный способ получить продукты, однако такой подход позволяет менять продукты, цены и офферы без изменения кода приложения. В SDK v4 варианты пейвола для плейсмента передаются через объект flow — вы получаете флоу и запрашиваете его продукты.
- Плейсменты – где и когда показывать пейволы в приложении (например,
main,onboarding,settings). Вы настраиваете пейволы для плейсментов в дашборде, а затем запрашиваете их по ID плейсмента в коде. Это упрощает проведение A/B-тестов и показ разных пейволов разным пользователям.
Убедитесь, что вы понимаете эти концепции, даже если работаете с кастомным пейволом. По сути, это просто способ управлять продуктами, которые вы продаёте в приложении.
Для реализации кастомного пейвола вам нужно создать пейвол и добавить его в плейсмент. Эта настройка позволяет получать ваши продукты. Чтобы понять, что нужно сделать в дашборде, следуйте быстрому старту здесь.
Управление пользователями
Вы можете работать как с бэкенд-аутентификацией, так и без неё.
SDK Adapty по-разному обрабатывает анонимных и идентифицированных пользователей. Прочитайте гайд по идентификации, чтобы разобраться в особенностях и убедиться, что вы правильно работаете с пользователями.
Шаг 1. Получение продуктов
Чтобы получить продукты для вашего кастомного пейвола, нужно:
- Получить объект
flow, передав ID плейсмента в методGetFlow. - Получить массив продуктов для этого флоу с помощью метода
GetPaywallProducts.
using AdaptySDK;
void LoadPaywall() {
Adapty.GetFlow("YOUR_PLACEMENT_ID", (flow, error) => {
if (error != null) {
// Handle the error
return;
}
Adapty.GetPaywallProducts(flow, (products, productsError) => {
if (productsError != null) {
// Handle the error
return;
}
// Use products to build your custom paywall UI
});
});
}
Шаг 2. Обработка покупок
Когда пользователь нажимает на продукт в вашем кастомном пейволе, вызовите метод MakePurchase с выбранным продуктом. Это запустит флоу покупки и вернёт обновлённый профиль.
using AdaptySDK;
void PurchaseProduct(AdaptyPaywallProduct product) {
Adapty.MakePurchase(product, (result, error) => {
if (error != null) {
// Handle the error
return;
}
switch (result.Type) {
case AdaptyPurchaseResultType.Success:
var profile = result.Profile;
// Purchase successful, profile updated
break;
case AdaptyPurchaseResultType.UserCancelled:
// User canceled the purchase
break;
case AdaptyPurchaseResultType.Pending:
// Purchase is pending (e.g., user will pay offline with cash)
break;
}
});
}
Шаг 3. Восстановление покупок
Сторы требуют, чтобы все приложения с подписками предоставляли пользователям возможность восстановить покупки.
Вызывайте метод RestorePurchases, когда пользователь нажимает кнопку восстановления. Это синхронизирует историю покупок с Adapty и вернёт обновлённый профиль.
using AdaptySDK;
void RestorePurchases() {
Adapty.RestorePurchases((profile, error) => {
if (error != null) {
// Handle the error
return;
}
// Restore successful, profile updated
});
}
Шаг 4. Проверьте статус подписки
После покупки или восстановления проверьте уровень доступа пользователя, чтобы решить — показывать пейвол или открыть платные функции. Методы MakePurchase и RestorePurchases уже возвращают обновлённый профиль; когда статус нужен в другом месте приложения, используйте метод GetProfile:
using AdaptySDK;
void CheckPremiumAccess() {
Adapty.GetProfile((profile, error) => {
if (error != null) {
// Handle the error
return;
}
var hasPremiumAccess =
profile.AccessLevels.TryGetValue("premium", out var premium) && premium.IsActive;
// Grant access to paid features if hasPremiumAccess is true
});
}
Другие способы проверки и отслеживания статуса подписки, включая получение обновлений в реальном времени, описаны в разделе Проверка статуса подписки.
Следующие шаги
Есть вопросы или возникли проблемы? Загляните на наш форум поддержки, где можно найти ответы на распространённые вопросы или задать свой. Наша команда и сообщество всегда готовы помочь!
Пейвол готов к отображению в приложении. Протестируйте покупки в песочнице App Store или в Google Play Store, чтобы убедиться, что тестовая покупка из пейвола проходит успешно.