Acciones y tipos de datos del plugin FlutterFlow de Adapty
Acciones personalizadas
A continuación se muestran los métodos de Adapty disponibles en FlutterFlow con el plugin de Adapty. Pueden usarse como acciones personalizadas en FlutterFlow.
| Custom Action | Description | Action Arguments | Adapty Data Types - Action Output Variable |
|---|---|---|---|
| activate | Inicializa el SDK de Adapty | None | |
getPaywall | Obtiene un paywall. No devuelve los productos del paywall. Usa la acción getPaywallProducts para obtener los productos reales | AdaptyGetPaywallResult | |
getPaywallProducts | Devuelve una lista de los productos reales del paywall | AdaptyPaywall | AdaptyGetProductsResult |
getProductsIntroductoryOfferEligibility | Comprueba si el usuario cumple los requisitos para una oferta introductoria de suscripción iOS | AdaptyPaywallProduct | AdaptyGetIntroEligibilitiesResult |
makePurchase | Completa una compra y desbloquea el contenido. Si el paywall tiene una oferta promocional, Adapty la aplica automáticamente en el proceso de pago |
| AdaptyMakePurchaseResult |
getProfile | Obtiene el perfil del usuario actual de la app. Esto te permite configurar niveles de acceso y otros parámetros Si falla (por ejemplo, por falta de conexión), se devolverán los datos en caché. Adapty actualiza regularmente la caché del perfil para mantener la información lo más actualizada posible | None | AdaptyGetProfileResult |
| updateProfile | Modifica atributos opcionales del perfil del usuario actual, como correo electrónico, número de teléfono, etc. Posteriormente puedes usar estos atributos para crear segmentos de usuarios o simplemente consultarlos en el CRM | El ID y cualquier parámetro que deba actualizarse en el AdaptyProfile | AdaptyError (Optional) |
| restorePurchases | Restaura todas las compras realizadas por el usuario | None | AdaptyGetProfileResult |
| logShowPaywall | Registra cuándo se muestra un paywall concreto al usuario | AdaptyPaywall | AdaptyError (Optional) |
| identify | Identifica al usuario mediante el customerUserId de tu sistema | customerUserId | AdaptyError (Optional) |
| logout | Cierra la sesión del usuario actual en tu app | None | AdaptyError (Optional) |
| presentCodeRedemptionSheet | Muestra una hoja que permite a los usuarios canjear códigos (solo iOS) | None | None |
Tipos de datos
Tipos de datos de Adapty (colecciones de valores de datos) entregados a FlutterFlow con el plugin de Adapty.
AdaptyAccessLevel
Información sobre el nivel de acceso del usuario.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| activatedAt | DateTime | La hora en que este nivel de acceso fue activado |
| activeIntroductoryOfferType | String | El tipo de oferta introductoria activa. Si está definido, significa que se aplicó una oferta durante este período de suscripción |
| activePromotionalOfferId | String | El ID de una oferta promocional activa (comprada desde iOS) |
| activePromotionalOfferType | String | El tipo de oferta promocional activa (comprada desde iOS). Si está definido, significa que se aplicó una oferta durante este período de suscripción |
| billingIssueDetectedAt | DateTime | La hora en que se detectó un problema de facturación. La suscripción puede seguir activa. Se establece en null si el pago se procesa correctamente |
| cancellationReason | String | El motivo por el que se canceló la suscripción |
| expiresAt | DateTime | La hora de expiración del nivel de acceso (puede ser en el pasado o no estar definida para el acceso de por vida) |
| id | String | El identificador del nivel de acceso |
| isActive | Boolean | True si este nivel de acceso está activo. En general, puedes consultar esta propiedad para determinar si un usuario tiene acceso a las funciones premium |
| isInGracePeriod | Boolean | True si esta suscripción de renovación automática está en el período de gracia |
| isLifetime | Boolean | True si este nivel de acceso está activo de por vida (sin fecha de expiración) |
| isRefund | Boolean | True si esta compra fue reembolsada |
| offerId | String | El ID de una oferta promocional activa (comprada desde Android) |
| renewedAt | DateTime | La hora en que el nivel de acceso fue renovado por última vez |
| startsAt | DateTime | La hora de inicio de este nivel de acceso (puede ser en el futuro) |
| store | String | El store donde se realizó la compra |
| unsubscribedAt | DateTime | La hora en que se desactivó la renovación automática de la suscripción. La suscripción puede seguir activa. Si no está definido, el usuario reactivó la suscripción |
| vendorProductId | String | El ID del producto en el store que desbloqueó este nivel de acceso |
| willRenew | Boolean | True si esta suscripción de renovación automática está configurada para renovarse |
AdaptyAccessLevelIdentifiers
Esta estructura está diseñada para reemplazar el par clave-valor de Map<String, AdaptyAccessLevel AdaptyAccessLevel.
| Campo | Tipo | Descripción |
|---|---|---|
| accessLevelIdentifier | String | El ID del nivel de acceso |
| accessLevel | Data (AdaptyAccessLevel) | El AdaptyAccessLevel asociado |
AdaptyCustomDoubleAttribute
Información sobre los atributos double personalizados definidos para el usuario.
| Field Name | Type | Description |
|---|---|---|
| key | String | El ID del atributo double personalizado |
| value | Double | El valor del atributo double personalizado |
AdaptyCustomStringAttribute
Información sobre los atributos de cadena personalizados definidos para el usuario.
| Field Name | Type | Description |
|---|---|---|
| key | String | El ID del atributo de cadena personalizado |
| value | String | El valor del atributo de cadena personalizado |
AdaptyError
Contiene detalles sobre un error. Para ver la lista completa de códigos de error, consulta React Native, Flutter, Unity - Gestión de errores.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| errorMessage | String | Descripción legible del error |
| errorCode | Integer | Código numérico que identifica el error |
AdaptyGetIntroEligibilitiesResult
Contiene el resultado de la acción personalizada getProductsIntroductoryOfferEligibility.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| value | List < Data (AdaptyProductIntroEligibility) > | Lista de la elegibilidad del usuario para ofertas promocionales |
| error | Data (AdaptyError) | Contiene detalles sobre el error mediante AdaptyError |
AdaptyGetPaywallResult
Contiene el resultado de la acción personalizada getPaywall.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| value | Data (AdaptyPaywall) | Contiene una lista de objetos AdaptyPaywall |
| error | Data (AdaptyError) | Contiene información del error a través de AdaptyError |
AdaptyGetProductsResult
Contiene el resultado de la acción personalizada getPaywallProducts.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| value | List < Data (AdaptyPaywallProduct) > | Contiene una lista de AdaptyPaywallProducts |
| error | Data (AdaptyError) | Contiene información del error a través de AdaptyError |
AdaptyGetProfileResult
Contiene el resultado de la acción personalizada getProfile.
| Field Name | Type | Description |
|---|---|---|
| value | Data (AdaptyProfile) | Contiene el perfil del usuario como un AdaptyProfile |
| error | Data (AdaptyError) | Contiene información del error mediante AdaptyError |
AdaptyMakePurchaseResult
Contiene el resultado de la acción personalizada makePurchase.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| value | Data (AdaptyProfile) | Contiene el perfil del usuario como AdaptyProfile |
| error | Data (AdaptyError) | Contiene información del error mediante AdaptyError |
AdaptyNonSubscription
Información sobre compras que no son suscripciones. Pueden ser productos de una sola compra (consumibles), desbloqueos (como desbloquear un nuevo mapa en el juego), etc.
| Campo | Tipo | Descripción |
|---|---|---|
| isConsumable | Boolean | Indica si el producto es consumible |
| isOneTime | Boolean | Indica si el producto es una compra única (p. ej., si es true, la compra se procesa solo una vez) |
| isRefund | Boolean | Indica si el producto ha sido reembolsado |
| isSandbox | Boolean | Indica si el producto se compró en un entorno sandbox |
| purchasedAt | DateTime | La hora en que se compró el producto |
| purchaseId | String | El ID de la compra en Adapty. Se puede usar para rastrear productos de compra única |
| store | String | El store donde se compró el producto (p. ej., App Store, Google Play) |
| vendorProductId | String | ID del producto en el sistema del proveedor |
| vendorTransactionId | String | ID de la transacción en el sistema del proveedor |
AdaptyPaywall
Información sobre un paywall.
| Nombre del campo | Tipo | Descripción |
|---|---|---|
| abTestName | String | El nombre de la prueba A/B padre |
| hasViewConfiguration | Boolean | Indica si existe una configuración de vista para el paywall |
| locale | String | El ID de configuración regional del paywall |
| name | String | Nombre del paywall |
| placement.id | String | El ID del placement padre |
| remoteConfigString | String | Un diccionario personalizado del Adapty Dashboard asociado a este paywall |
| placement.revision | Integer | La revisión/versión actual del paywall. Cada cambio genera una nueva revisión |
| variationId | String | El ID de variante usado para atribuir las compras a este paywall |
| vendorProductIds | String | Array de IDs de productos relacionados con el paywall |
AdaptyPaywallProduct
Información sobre el producto.
| Field Name | Type | Description |
|---|---|---|
| vendorProductId | String | El ID de un producto del store |
| localizedDescription | String | Una descripción del producto en el idioma del usuario |
| localizedTitle | String | El nombre del producto en el idioma del usuario |
| regionCode | String | El código de región de la configuración regional usada para formatear el precio del producto (usar en iOS) |
| isFamilyShareable | Boolean | Un valor booleano que indica si el producto está disponible para compartir en familia en App Store Connect. Siempre será FALSE en versiones de iOS anteriores a 14.0 y de macOS anteriores a 11.0 (usar en iOS) |
| paywallVariationId | String | El ID de una variante, usado para atribuir las compras a este paywall |
| paywallABTestName | String | Nombre de la prueba A/B principal |
| paywallName | String | Nombre del paywall principal |
| price | Data (AdaptyPriceData | El precio del producto |
| subscriptionDetails | Data (AdaptySubscriptionDetails) | Información sobre la suscripción |
AdaptyPrice
Información sobre el precio del producto.
| Field Name | Type | Description |
|---|---|---|
| amount | Double | El valor numérico del precio |
| currencyCode | String | El código de la moneda del precio |
| currencySymbol | String | El símbolo utilizado para la moneda |
| localizedString | String | El precio mostrado en el idioma del usuario |
AdaptyProductIntroEligibility
Define si el usuario es elegible para una oferta introductoria de una suscripción de iOS.
| Field Name | Type | Description |
|---|---|---|
| vendorProductId | String | El ID de un producto en una store |
| eligibility | AdaptyEligibilityEnum | Indica si el usuario es elegible para una oferta introductoria en una suscripción de iOS |
AdaptyProductNonsubscriptions
Detalles de la compra única activa vinculada a este producto.
| Field Name | Type | Description |
|---|---|---|
| productId | String | El ID del producto en el store |
| nonsubscriptions | AdaptyNonSubscription | Información sobre compras que no son suscripciones. Pueden ser productos de compra única (consumibles), desbloqueos (como desbloquear un mapa nuevo en un juego), etc. |
AdaptyProductSubscriptions
Detalles de la suscripción activa vinculada a este producto.
| Field Name | Type | Description |
|---|---|---|
| productId | String | El ID del producto en un store |
| subscription | AdaptySubscription | Información sobre las compras de suscripción |
AdaptyProfile
Información sobre el perfil del usuario
| Field Name | Type | Description |
|---|---|---|
| accessLevels | List < Data (AdaptyAccessLevelIdentifiers) > | Lista de todos los niveles de acceso que pertenecen al usuario |
| profileId | String | El ID del perfil del usuario |
| customerUserId | String | El ID del usuario en el sistema del proveedor |
| subscriptions | List < Data (MapKeySubscriptions) > | La lista de todas las suscripciones compradas por el usuario |
| nonSubscriptions | List < Data (MapKeyNonSubscriptions) > | La lista de todos los productos que no son suscripciones comprados por el usuario |
AdaptyProfileParameters
Información sobre el usuario.
| Field Name | Type | Description |
|---|---|---|
| firstName | String | El nombre del usuario |
| lastName | String | El apellido del usuario |
| gender | AdaptyGenderEnum | El género del usuario |
| birthday | String | La fecha de nacimiento del usuario |
| String | El correo electrónico del usuario | |
| phoneNumber | String | El número de teléfono del usuario |
| facebookAnonymousId | String | El ID del usuario en la integración con Facebook Ads |
| amplitudeUserId | String | El ID del usuario en la integración con Amplitude |
| amplitudeDeviceId | String | El ID del dispositivo del usuario en la integración con Amplitude |
| mixpanelUserId | String | El ID del usuario en la integración con Mixpanel |
| appmetricaProfileId | String | El ID del usuario en la integración con AppMetrica |
| appmetricaDeviceId | String | El ID del dispositivo del usuario en la integración con AppMetrica |
| oneSignalPlayerId | String | El ID del usuario en la integración con OneSignal |
| pushwooshHWID | String | El ID del dispositivo del usuario en la integración con Pushwoosh |
| firebaseAppInstanceId | String | El ID del usuario en la integración con Firebase |
| airbridgeDeviceId | String | El ID del dispositivo del usuario en la integración con Airbridge |
| appTrackingTransparencyStatus | AdaptyATTStatus | El estado del acceso a IDFA (usar en iOS) |
| analyticsDisabled | Boolean | Indica si el analytics externo está desactivado para el usuario |
| customStringAttributes | List < Data (AdaptyCustomStringAttribute) > | Lista de atributos de cadena personalizados del usuario |
| customDoubleAttributes | List < Data (AdaptyCustomDoubleAttribute) > | Lista de atributos double personalizados del usuario |
AdaptySubscription
Información sobre la suscripción existente del usuario.
| Field Name | Type | Description |
|---|---|---|
| activatedAt | DateTime | El momento en que se activó esta suscripción |
| activeIntroductoryOfferType | String | El tipo de oferta introductoria activa. Si está definido, significa que se aplicó una oferta durante este período de suscripción |
| activePromotionalOfferId | String | El ID de una oferta promocional activa (usar en iOS) |
| activePromotionalOfferType | String | El tipo de oferta promocional activa (usar en iOS). Si está definido, significa que se aplicó una oferta durante este período de suscripción |
| cancellationReason | String | El motivo por el que se canceló la suscripción |
| expiresAt | DateTime | El momento de expiración de la suscripción |
| renewedAt | DateTime | El momento en que se renovó por última vez la suscripción |
| unsubscribedAt | DateTime | El momento en que se desactivó la renovación automática de la suscripción. La suscripción puede seguir activa. Si no está definido, el usuario reactivó la suscripción |
| billingIssueDetectedAt | DateTime | El momento en que se detectó un problema de facturación. La suscripción puede seguir activa. Se establece en null si el pago se procesa correctamente |
| isActive | Boolean | True si esta suscripción está activa. En general, puedes comprobar esta propiedad para determinar si un usuario tiene acceso a las funciones premium |
| isInGracePeriod | Boolean | True si esta suscripción de renovación automática está en el período de gracia |
| isLifetime | Boolean | True si esta suscripción tiene acceso de por vida (sin fecha de expiración) |
| isRefund | Boolean | True si esta compra fue reembolsada |
| isSandbox | Boolean | Indica si el producto se compró en un entorno sandbox |
| offerId | String | El ID de una oferta promocional activa (usar en Android) |
| startsAt | DateTime | El momento de inicio de este nivel de acceso (puede ser en el futuro) |
| store | String | El store donde se compró el producto (p. ej., App Store, Google Play) |
| vendorOriginalTransactionId | String | ID de la suscripción inicial en el sistema del proveedor |
| vendorProductId | String | ID del producto en el sistema del proveedor |
| vendorTransactionId | String | ID de la transacción en el sistema del proveedor |
| willRenew | Boolean | True si esta suscripción de renovación automática está configurada para renovarse |
AdaptySubscriptionDetails
Esquema de un objeto Subscription como parte del AdaptyPaywallProduct.
| Field Name | Type | Description |
|---|---|---|
| androidBasePlanId | String | ID del plan base en Google Play Store o ID de precio en Stripe. |
| androidIntroductoryOfferEligibility | AdaptyEligibilityEnum | Indica si el usuario cumple los requisitos para una oferta introductoria en una suscripción de iOS |
| androidOfferId | String | El ID de una oferta promocional activa (usar en Android) |
| androidOfferTags | List < String > | Lista de etiquetas personalizadas especificadas para planes base y ofertas de suscripción. |
| introductoryOffer | List < Data (AdaptySubscriptionPhase) > | El ID de una oferta introductoria (usar en iOS) |
| localizedSubscriptionPeriod | String | El período de la suscripción en el idioma del usuario |
| promotionalOffer | Data (AdaptySubscriptionPhase) | Los detalles de la oferta promocional (usar en iOS) |
| promotionalOfferEligibility | Boolean | Indica si el usuario cumple los requisitos para una oferta promocional en una suscripción de iOS |
| promotionalOfferId | String | El ID de la oferta promocional (usar en iOS) |
| renewalType | AdaptyRenewalTypeEnum | Define si la suscripción es de renovación automática o no mediante AdaptyRenewalTypeEnum |
| subscriptionGroupIdentifier | String | El ID del grupo de productos al que pertenece el producto (usar en iOS) |
| subscriptionPeriod | Data (AdaptySubscriptionPeriod) | La duración de la suscripción |
AdaptySubscriptionPeriod
La duración de la suscripción.
| Field Name | Type | Description |
|---|---|---|
| numberOfUnits | Integer | Número de días/semanas/meses/años que dura la suscripción. |
| unit | AdaptyPeriodUnitEnum | Unidad de medida del período: días, semanas, meses, años. |
AdaptySubscriptionPhase
Representa una fase de suscripción, como un período de prueba gratuita o una oferta introductoria.
| Field Name | Type | Description |
|---|---|---|
| identifier | String | El ID de la fase |
| localizedNumberOfPeriods | String | La duración de la fase. Por ejemplo, una oferta de 6 meses se mostraría como 6 months en el idioma del usuario. |
| localizedSubscriptionPeriod | String | La duración de la suscripción en el idioma del usuario, como 3 months. |
| numberOfPeriods | Integer | El número de períodos de suscripción en esta fase. Por ejemplo, una oferta de 6 meses tendría dos períodos de 3 meses. |
| paymentMode | AdaptyPaymentModeEnum | El modelo de pago utilizado para esta fase. |
| price | Data (AdaptyPrice) | El precio de esta fase. |
| subscriptionPeriod | Data (AdaptySubscriptionPeriod) | El período de suscripción en el que se basa esta fase. |
AdaptySubscriptionUpdateParameters
(Solo Android) Parámetros para reemplazar una suscripción por otra.
| Field Name | Type | Description |
|---|---|---|
| oldSubVendorProductId | String | El ID de la suscripción actual en Play Store que deseas reemplazar. |
| replacementMode | AdaptySubscriptionUpdateReplacementMode | Enum que corresponde a los valores de BillingFlowParams.ProrationMode. |
MapKeyNonSubscriptions
Reemplazo de un diccionario para AdaptyNonSubscription.
| Field Name | Tipo |
|---|---|
| key | String |
| value | List < Data (AdaptyNonSubscription) > |
MapKeySubscriptions
Reemplazo de un diccionario para AdaptySubscription.
| Field Name | Type |
|---|---|
| key | String |
| value | List < Data (AdaptySubscription) > |
Enumeraciones
Enumeraciones de Adapty (variables que representan conjuntos de constantes predefinidas) disponibles en FlutterFlow a través del plugin de Adapty.
AdaptyEligibilityEnum
Define si el usuario puede beneficiarse de una oferta introductoria para una suscripción de iOS.
| Field Name | Description |
|---|---|
| eligible | El usuario es elegible para una oferta introductoria; puedes mostrar esta información en tu interfaz |
| ineligible | El usuario no es elegible para ninguna oferta; no deberías presentarla en tu interfaz |
| notApplicable | Este producto no está configurado para tener una oferta |
AdaptyGenderEnum
Define el género del usuario.
| Field Name | Description |
|---|---|
| none | El género no está definido |
| female | El género del usuario es femenino |
| male | El género del usuario es masculino |
| Other | El usuario ha definido su género como “otro” |
AdaptyPaymentModeEnum
Define el modelo de pago.
| Campo | Descripción |
|---|---|
| payAsYouGo | Modelo de precios en el que se factura al cliente según el uso o consumo real del producto/servicio, en lugar de pagar una tarifa fija por adelantado |
| payUpFront | Modelo de precios en el que se factura al cliente antes de que reciba el producto/servicio. |
| freeTrial | El usuario está en un período de prueba gratuita |
| unknown | El modelo de precios no está definido |
AdaptyPeriodUnitEnum
Define las unidades en las que se miden los períodos.
| Field Name | Description |
|---|---|
| day | En días |
| week | En semanas |
| month | En meses |
| year | En años |
| unknown | No definido |
AdaptyRenewalTypeEnum
Define si la suscripción es de renovación automática o no.
| Field Name | Description |
|---|---|
| prepaid | La suscripción es de prepago y no se renueva automáticamente. |
| autorenewable | La suscripción se renueva automáticamente. |
AdaptySubscriptionUpdateReplacementMode
Define el modo de actualización de suscripción para Android.
| Field Name | Descripción |
|---|---|
| withTimeProration | (predeterminado) El nuevo plan entra en vigor de inmediato y el tiempo restante se prorrateará y acreditará al usuario. |
| chargeProratedPrice | El nuevo plan entra en vigor de inmediato y el ciclo de facturación permanece igual. Se cobrará el precio por el período restante. Esta opción solo está disponible para actualizaciones de suscripción. |
| withoutProration | El nuevo plan entra en vigor de inmediato y el nuevo precio se cobrará en la siguiente fecha de renovación. El ciclo de facturación permanece igual. |
| deferred | La nueva compra entra en vigor de inmediato y el nuevo plan se activará cuando el artículo anterior expire. |
| chargeFullPrice | El nuevo plan entra en vigor de inmediato y el ciclo de facturación permanece igual. Se cobrará el precio completo por el período restante. Esta opción solo está disponible para actualizaciones de suscripción. |
Estados de la app
Las variables de estado de la app son variables específicas que almacenan el estado actual de una aplicación. Se puede acceder a ellas y modificarlas en toda la aplicación, en todas las páginas y componentes. Este tipo de variable resulta útil para almacenar datos que deben compartirse entre distintas partes de la app, como preferencias de usuario y tokens de autenticación.
| Nombre del campo | Tipo de dato | Persistido | Descripción |
|---|---|---|---|
| currentProfile | Data (AdaptyProfile) | False | La variable que contiene la información del perfil del usuario actual. Mantenla actualizada. |