Действия и типы данных плагина Adapty для FlutterFlow

Кастомные действия

Ниже перечислены методы Adapty, доступные во FlutterFlow через плагин Adapty. Их можно использовать как кастомные действия во FlutterFlow.

Пользовательское действиеОписаниеАргументы действияТипы данных Adapty — переменная вывода действия
activateИнициализирует SDK AdaptyНет

getPaywall

Получает пейвол. Не возвращает продукты пейвола. Используйте действие getPaywallProducts, чтобы получить актуальные продуктыAdaptyGetPaywallResult

getPaywallProducts

Возвращает список актуальных продуктов пейволаAdaptyPaywallAdaptyGetProductsResult

getProductsIntroductoryOfferEligibility

Проверяет, имеет ли пользователь право на introductory offer для iOS-подпискиAdaptyPaywallProductAdaptyGetIntroEligibilitiesResult

makePurchase

Завершает покупку и открывает доступ к контенту. Если у пейвола есть promotional offer, Adapty автоматически применяет его при оформлении покупки
  • product: объект AdaptyPaywallProduct, полученный из пейвола.
  • subscriptionUpdateParams: объект AdaptySubscriptionUpdateParameters, используемый для повышения или понижения уровня подписки (для Android).
  • isOfferPersonalized: указывает, является ли предложение персонализированным для покупателя (для Android).
AdaptyMakePurchaseResult

getProfile

Получает профиль текущего пользователя приложения. Позволяет задавать уровни доступа и другие параметры

Если запрос завершается ошибкой (например, из-за отсутствия интернета), возвращаются кешированные данные. Adapty регулярно обновляет кеш профиля, чтобы информация оставалась как можно более актуальной

НетAdaptyGetProfileResult
updateProfileИзменяет необязательные атрибуты профиля текущего пользователя: email, номер телефона и т. д. Атрибуты можно использовать для создания сегментов пользователей или просматривать их в CRMID и любые параметры, которые нужно обновить для AdaptyProfileAdaptyError (необязательно)
restorePurchasesВосстанавливает все покупки пользователяНетAdaptyGetProfileResult
logShowPaywallФиксирует показ конкретного пейвола пользователюAdaptyPaywallAdaptyError (необязательно)
identifyИдентифицирует пользователя с помощью customerUserId из вашей системыcustomerUserIdAdaptyError (необязательно)
logoutВыполняет выход текущего пользователя из приложенияНетAdaptyError (необязательно)
presentCodeRedemptionSheetОтображает окно для активации промокодов (только iOS)НетНет

Типы данных

Типы данных Adapty (наборы значений данных), передаваемые в FlutterFlow через плагин Adapty.

AdaptyAccessLevel

Информация об уровне доступа пользователя.

Название поляТипОписание
activatedAtDateTimeВремя активации данного уровня доступа
activeIntroductoryOfferTypeStringТип активного introductory offer. Если задано, значит в текущем расчётном периоде подписки применялось предложение
activePromotionalOfferIdStringID активного promotional offer (приобретённого через iOS)
activePromotionalOfferTypeStringТип активного promotional offer (приобретённого через iOS). Если задано, значит в текущем расчётном периоде подписки применялось предложение
billingIssueDetectedAtDateTimeВремя обнаружения проблемы с оплатой. Подписка при этом может оставаться активной. Устанавливается в null при успешной обработке платежа
cancellationReasonStringПричина отмены подписки
expiresAtDateTimeВремя истечения уровня доступа (может быть в прошлом или не задано для пожизненного доступа)
idStringИдентификатор уровня доступа
isActiveBooleanTrue, если данный уровень доступа активен. Как правило, именно это свойство используется для проверки наличия у пользователя доступа к премиум-функциям
isInGracePeriodBooleanTrue, если данная автовозобновляемая подписка находится в льготном периоде
isLifetimeBooleanTrue, если данный уровень доступа активен на всё время (без даты истечения)
isRefundBooleanTrue, если данная покупка была возвращена
offerIdStringID активного promotional offer (приобретённого через Android)
renewedAtDateTimeВремя последнего продления уровня доступа
startsAtDateTimeВремя начала действия данного уровня доступа (может быть в будущем)
storeStringСтор, в котором была совершена покупка
unsubscribedAtDateTimeВремя отключения автопродления подписки. Подписка при этом может оставаться активной. Если не задано, пользователь повторно активировал подписку
vendorProductIdStringID продукта в сторе, открывшего данный уровень доступа
willRenewBooleanTrue, если данная автовозобновляемая подписка настроена на продление

AdaptyAccessLevelIdentifiers

Эта структура предназначена для замены пары ключ-значение в Map<String, AdaptyAccessLevel AdaptyAccessLevel.

Название поляТипОписание
accessLevelIdentifierStringID уровня доступа
accessLevelData (AdaptyAccessLevel)Связанный AdaptyAccessLevel

AdaptyCustomDoubleAttribute

Информация о пользовательских атрибутах типа double, заданных для пользователя.

Название поляТипОписание
keyStringИдентификатор пользовательского атрибута типа double
valueDoubleЗначение пользовательского атрибута типа double

AdaptyCustomStringAttribute

Информация о пользовательских строковых атрибутах, заданных для пользователя.

Название поляТипОписание
keyStringИдентификатор пользовательского строкового атрибута
valueStringЗначение пользовательского строкового атрибута

AdaptyError

Содержит подробности об ошибке. Полный список кодов ошибок приведён в разделе React Native, Flutter, Unity — Обработка ошибок.

Название поляТипОписание
errorMessageStringЧеловекочитаемое описание ошибки
errorCodeIntegerЧисловой код, идентифицирующий ошибку

AdaptyGetIntroEligibilitiesResult

Содержит результат выполнения пользовательского действия getProductsIntroductoryOfferEligibility.

Название поляТипОписание
valueList < Data (AdaptyProductIntroEligibility) >Список статусов доступности introductory offer для пользователя
errorData (AdaptyError)Содержит детали ошибки через AdaptyError

AdaptyGetPaywallResult

Содержит результат пользовательского действия getPaywall.

Название поляТипОписание
valueData (AdaptyPaywall)Содержит список объектов AdaptyPaywall
errorData (AdaptyError)Содержит информацию об ошибке через AdaptyError

AdaptyGetProductsResult

Содержит результат выполнения пользовательского действия getPaywallProducts.

Название поляТипОписание
valueList < Data (AdaptyPaywallProduct) >Содержит список AdaptyPaywallProducts
errorData (AdaptyError)Содержит информацию об ошибке через AdaptyError

AdaptyGetProfileResult

Содержит результат выполнения пользовательского действия getProfile.

Название поляТипОписание
valueData (AdaptyProfile)Содержит профиль пользователя в виде AdaptyProfile
errorData (AdaptyError)Содержит информацию об ошибке через AdaptyError

AdaptyMakePurchaseResult

Содержит результат пользовательского действия makePurchase.

Название поляТипОписание
valueData (AdaptyProfile)Содержит профиль пользователя в виде AdaptyProfile
errorData (AdaptyError)Содержит информацию об ошибке через AdaptyError

AdaptyNonSubscription

Информация о покупках, не являющихся подписками. Это могут быть разовые (расходуемые) покупки, разблокировки (например, новая карта в игре) и т. д.

Название поляТипОписание
isConsumableBooleanУказывает, является ли продукт расходуемой покупкой
isOneTimeBooleanУказывает, является ли продукт разовой покупкой (например, если true, покупка обрабатывается только один раз)
isRefundBooleanУказывает, был ли выполнен возврат средств за продукт
isSandboxBooleanУказывает, была ли покупка совершена в среде песочницы
purchasedAtDateTimeВремя, когда был куплен продукт
purchaseIdStringID покупки в Adapty. Можно использовать для отслеживания разовых покупок
storeStringСтор, в котором был куплен продукт (например, App Store, Google Play)
vendorProductIdStringID продукта в системе поставщика
vendorTransactionIdStringID транзакции в системе поставщика

AdaptyPaywall

Информация о пейволе.

Название поляТипОписание
abTestNameStringНазвание родительского A/B-теста
hasViewConfigurationBooleanУказывает, есть ли конфигурация отображения для пейвола
localeStringID локали пейвола
nameStringНазвание пейвола
placement.idStringID родительского плейсмента
remoteConfigStringStringПользовательский словарь из дашборда Adapty, связанный с этим пейволом
placement.revisionIntegerТекущая ревизия/версия пейвола. Каждое изменение создаёт новую ревизию
variationIdStringID варианта, используемый для атрибуции покупок этому пейволу
vendorProductIdsStringМассив ID продуктов, связанных с пейволом

AdaptyPaywallProduct

Информация о продукте.

Название поляТипОписание
vendorProductIdStringИдентификатор продукта в сторе
localizedDescriptionStringОписание продукта на языке пользователя
localizedTitleStringНазвание продукта на языке пользователя
regionCodeStringКод региона локали, используемый для форматирования цены продукта (применяется для iOS)
isFamilyShareableBooleanБулево значение, указывающее, доступен ли продукт для семейного доступа в App Store Connect. Всегда возвращает FALSE для iOS ниже версии 14.0 и macOS ниже версии 11.0 (применяется для iOS)
paywallVariationIdStringИдентификатор варианта, используемый для атрибуции покупок к данному пейволу
paywallABTestNameStringНазвание родительского A/B-теста
paywallNameStringНазвание родительского пейвола
priceData (AdaptyPriceData)Цена продукта
subscriptionDetailsData (AdaptySubscriptionDetails)Информация о подписке

AdaptyPrice

Информация о цене продукта.

Название поляТипОписание
amountDoubleЧисловое значение цены
currencyCodeStringКод валюты цены
currencySymbolStringСимвол валюты
localizedStringStringЦена, отображаемая на языке пользователя

AdaptyProductIntroEligibility

Определяет, имеет ли пользователь право на introductory offer для подписки iOS.

Название поляТипОписание
vendorProductIdStringИдентификатор продукта в сторе
eligibilityAdaptyEligibilityEnumОпределяет, имеет ли пользователь право на introductory offer для подписки iOS

AdaptyProductNonsubscriptions

Детали активной неподписочной покупки, связанной с этим продуктом.

Название поляТипОписание
productIdStringИдентификатор продукта в сторе
nonsubscriptionsAdaptyNonSubscriptionИнформация о покупках без подписки. Это могут быть разовые (расходуемые) покупки, разблокировки контента (например, новая карта в игре) и т. д.

AdaptyProductSubscriptions

Детали активной подписки, привязанной к этому продукту.

Название поляТипОписание
productIdStringID продукта в сторе
subscriptionAdaptySubscriptionИнформация о покупках подписки

AdaptyProfile

Информация о профиле пользователя

Название поляТипОписание
accessLevelsList < Data (AdaptyAccessLevelIdentifiers) >Список всех уровней доступа, принадлежащих пользователю
profileIdStringID профиля пользователя
customerUserIdStringID пользователя в системе вендора
subscriptionsList < Data (MapKeySubscriptions) >Список всех подписок, купленных пользователем
nonSubscriptionsList < Data (MapKeyNonSubscriptions) >Список всех продуктов без подписки, купленных пользователем

AdaptyProfileParameters

Информация о пользователе.

Название поляТипОписание
firstNameStringИмя пользователя
lastNameStringФамилия пользователя
genderAdaptyGenderEnumПол пользователя
birthdayStringДата рождения пользователя
emailStringEmail пользователя
phoneNumberStringНомер телефона пользователя
facebookAnonymousIdStringID пользователя в интеграции Facebook Ads
amplitudeUserIdStringID пользователя в интеграции Amplitude
amplitudeDeviceIdStringID устройства пользователя в интеграции Amplitude
mixpanelUserIdStringID пользователя в интеграции Mixpanel
appmetricaProfileIdStringID пользователя в интеграции AppMetrica
appmetricaDeviceIdStringID устройства пользователя в интеграции AppMetrica
oneSignalPlayerIdStringID пользователя в интеграции OneSignal
pushwooshHWIDStringID устройства пользователя в интеграции Pushwoosh
firebaseAppInstanceIdStringID пользователя в интеграции Firebase
airbridgeDeviceIdStringID устройства пользователя в интеграции Airbridge
appTrackingTransparencyStatusAdaptyATTStatusСтатус доступа к IDFA (используется для iOS)
analyticsDisabledBooleanПризнак того, что внешняя аналитика отключена для пользователя
customStringAttributesList < Data (AdaptyCustomStringAttribute) >Список пользовательских строковых атрибутов пользователя
customDoubleAttributesList < Data (AdaptyCustomDoubleAttribute) >Список пользовательских числовых атрибутов пользователя

AdaptySubscription

Информация о существующей подписке пользователя.

Название поляТипОписание
activatedAtDateTimeВремя активации подписки
activeIntroductoryOfferTypeStringТип активного introductory offer. Если задан, значит в течение данного периода подписки было применено предложение
activePromotionalOfferIdStringID активного promotional offer (используется для iOS)
activePromotionalOfferTypeStringТип активного promotional offer (используется для iOS). Если задан, значит в течение данного периода подписки было применено предложение
cancellationReasonStringПричина отмены подписки
expiresAtDateTimeВремя истечения подписки
renewedAtDateTimeВремя последнего продления подписки
unsubscribedAtDateTimeВремя отключения автопродления подписки. Подписка при этом может оставаться активной. Если не задано — пользователь повторно активировал подписку
billingIssueDetectedAtDateTimeВремя обнаружения проблемы с оплатой. Подписка при этом может оставаться активной. Сбрасывается в null при успешной обработке платежа
isActiveBooleanTrue, если подписка активна. Как правило, это поле используется для проверки доступа пользователя к премиум-функциям
isInGracePeriodBooleanTrue, если автовозобновляемая подписка находится в льготном периоде
isLifetimeBooleanTrue, если подписка действует бессрочно (без даты истечения)
isRefundBooleanTrue, если покупка была возвращена
isSandboxBooleanУказывает, была ли покупка совершена в среде песочницы
offerIdStringID активного promotional offer (используется для Android)
startsAtDateTimeВремя начала действия данного уровня доступа (может быть в будущем)
storeStringСтор, в котором был куплен продукт (например, App Store, Google Play)
vendorOriginalTransactionIdStringID первоначальной подписки в системе вендора
vendorProductIdStringID продукта в системе вендора
vendorTransactionIdStringID транзакции в системе вендора
willRenewBooleanTrue, если автовозобновляемая подписка настроена на продление

AdaptySubscriptionDetails

Схема объекта Subscription, являющегося частью AdaptyPaywallProduct.

Название поляТипОписание
androidBasePlanIdStringID базового плана в Google Play Store или ID цены в Stripe.
androidIntroductoryOfferEligibilityAdaptyEligibilityEnumОпределяет, имеет ли пользователь право на introductory offer для iOS-подписки
androidOfferIdStringID активного promotional offer (используется для Android)
androidOfferTagsList < String >Список пользовательских тегов, заданных для базовых планов и предложений по подписке.
introductoryOfferList < Data (AdaptySubscriptionPhase) >ID introductory offer (используется для iOS)
localizedSubscriptionPeriodStringПериод подписки на языке пользователя
promotionalOfferData (AdaptySubscriptionPhase)Детали promotional offer (используется для iOS)
promotionalOfferEligibilityBooleanОпределяет, имеет ли пользователь право на promotional offer для iOS-подписки
promotionalOfferIdStringID promotional offer (используется для iOS)
renewalTypeAdaptyRenewalTypeEnumОпределяет, является ли подписка автовозобновляемой, через AdaptyRenewalTypeEnum
subscriptionGroupIdentifierStringID группы продуктов, к которой относится продукт (используется для iOS)
subscriptionPeriodData (AdaptySubscriptionPeriod)Длительность подписки

AdaptySubscriptionPeriod

Длительность подписки.

Название поляТипОписание
numberOfUnitsIntegerКоличество дней/недель/месяцев/лет, на которое оформляется подписка.
unitAdaptyPeriodUnitEnumЕдиница измерения периода: дни, недели, месяцы, годы.

AdaptySubscriptionPhase

Представляет фазу подписки, например бесплатный пробный период или introductory offer.

Название поляТипОписание
identifierStringID фазы
localizedNumberOfPeriodsStringДлительность фазы. Например, предложение на 6 месяцев отобразится как 6 months на языке пользователя.
localizedSubscriptionPeriodStringДлительность подписки на языке пользователя, например 3 months.
numberOfPeriodsIntegerКоличество периодов подписки в данной фазе. Например, предложение на 6 месяцев будет содержать два периода по 3 месяца.
paymentModeAdaptyPaymentModeEnumМодель оплаты, используемая для данной фазы.
priceData (AdaptyPrice)Цена данной фазы.
subscriptionPeriodData (AdaptySubscriptionPeriod)Период подписки, на котором основана данная фаза.

AdaptySubscriptionUpdateParameters

(Только для Android) Параметры для замены одной подписки на другую.

ПолеТипОписание
oldSubVendorProductIdStringID текущей подписки в Play Store, которую вы хотите заменить.
replacementModeAdaptySubscriptionUpdateReplacementModeEnum, соответствующий значениям BillingFlowParams.ProrationMode.

MapKeyNonSubscriptions

Замена словаря для AdaptyNonSubscription.

Название поляТип
keyString
valueList < Data (AdaptyNonSubscription) >

MapKeySubscriptions

Замена словаря для AdaptySubscription.

Название поляТип
keyString
valueList < Data (AdaptySubscription) >

Перечисления

Перечисления Adapty (переменные, представляющие собой наборы предопределённых констант), поставляемые во FlutterFlow с плагином Adapty.

AdaptyEligibilityEnum

Определяет, имеет ли пользователь право на introductory offer для подписки iOS.

Название поляОписание
eligibleПользователь имеет право на introductory offer — можно безопасно отображать эту информацию в интерфейсе
ineligibleПользователь не имеет права на получение какого-либо предложения — не следует показывать его в интерфейсе
notApplicableДля этого продукта не настроено ни одного предложения

AdaptyGenderEnum

Определяет пол пользователя.

Название поляОписание
noneПол не указан
femaleПол пользователя — женский
maleПол пользователя — мужской
OtherПользователь указал пол как «другой»

AdaptyPaymentModeEnum

Определяет модель оплаты.

Название поляОписание
payAsYouGoМодель оплаты, при которой пользователь платит по факту использования продукта или сервиса, а не вносит фиксированную сумму заранее
payUpFrontМодель оплаты, при которой пользователь платит до получения продукта или сервиса
freeTrialПользователь находится на бесплатном пробном периоде
unknownМодель оплаты не определена

AdaptyPeriodUnitEnum

Определяет единицы измерения периодов.

Название поляОписание
dayВ днях
weekВ неделях
monthВ месяцах
yearВ годах
unknownНе определено

AdaptyRenewalTypeEnum

Определяет, является ли подписка автоматически возобновляемой.

Field NameDescription
prepaidПодписка является предоплаченной и не возобновляется автоматически.
autorenewableПодписка является автоматически возобновляемой.

AdaptySubscriptionUpdateReplacementMode

Определяет режим обновления подписки для Android.

Название поляОписание
withTimeProration(по умолчанию) Новый план вступает в силу немедленно, оставшееся время пересчитывается и зачисляется на счёт пользователя.
chargeProratedPriceНовый план вступает в силу немедленно, расчётный период остаётся прежним. Списывается оплата за оставшийся период. Доступно только при повышении уровня подписки.
withoutProrationНовый план вступает в силу немедленно, новая цена будет списана в следующую дату продления. Расчётный период остаётся прежним.
deferredНовая покупка оформляется немедленно, но новый план вступает в силу после истечения текущего.
chargeFullPriceНовый план вступает в силу немедленно, расчётный период остаётся прежним. Списывается полная стоимость за оставшийся период. Доступно только при повышении уровня подписки.

Состояния приложения

Переменные состояния приложения — это специальные переменные, которые хранят текущее состояние приложения. Они доступны и могут изменяться в любом месте приложения: на всех страницах и во всех компонентах. Такой тип переменных удобен для хранения данных, которые нужно передавать между разными частями приложения, — например, пользовательских настроек или токенов аутентификации.

Название поляТип данныхСохраняетсяОписание
currentProfileData (AdaptyProfile)FalseПеременная, содержащая информацию о текущем профиле пользователя. Поддерживайте её в актуальном состоянии.