Включение покупок в пользовательском пейволе в 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. Получение продуктов

Чтобы получить продукты для вашего кастомного пейвола, нужно:

  1. Получить объект flow, передав ID плейсмента в метод GetFlow.
  2. Получить массив продуктов для этого флоу с помощью метода 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, чтобы убедиться, что тестовая покупка из пейвола проходит успешно.