Integraciones de servicios de mensajería
Captar usuarios en el mercado móvil no es fácil ni barato. Por eso, gestionar bien a los usuarios que ya tienes mejora tu economía unitaria, especialmente en nichos muy competitivos.
Adapty proporciona información en tiempo real sobre las acciones de pago principales de tus usuarios. Sabemos cuándo un cliente inició una prueba, si tuvo problemas con su pago, o si compró una suscripción y decidió cancelarla más adelante. Todos estos eventos y otros muestran el cambio en el estado del cliente. Y este es el mejor momento para reaccionar: enviar una oferta, un regalo personalizado o cualquier acción de retención.
Las plataformas de notificaciones push permiten describir a un usuario con etiquetas estándar y personalizadas para construir un sistema automático de retención eficaz. Para que este sistema funcione, solo necesitas eventos de activación que indiquen al sistema cuándo es el momento de enviar un mensaje. Estos eventos llegarán a la plataforma de push desde Adapty a través de la integración configurada.
Elige a continuación el servicio que necesitas integrar y sigue las instrucciones:
¿No encuentras tu proveedor de atribución?
¡Cuéntanos! Crea una solicitud de función y lo tendremos en cuenta.
Propiedades del evento
Los eventos de webhook se envían en formato JSON. Todos los eventos siguen la misma estructura, pero sus campos varían según el tipo de evento, el store y tu configuración específica.
Adapty convierte otras divisas a USD utilizando el tipo de cambio de currencylayer.com (actualizado cada 8 horas). El tipo se fija en el momento de la transacción — los cambios futuros no afectan al resultado de la conversión.
| Propiedad | Tipo | Descripción |
|---|---|---|
| profile_id | uuid | ID de usuario de Adapty. |
| currency | str | Moneda local (por defecto USD). |
| price_usd | float | Precio del producto antes de la comisión de Apple/Google. Ingresos. |
| proceeds_usd | float | Precio del producto después de la comisión de Apple/Google. Ingresos netos. |
| net_revenue_usd | float | Ingresos netos (ingresos tras la comisión de Apple/Google e impuestos) en USD. Puede estar vacío. |
| price_local | float | Precio del producto antes de la comisión de Apple/Google en moneda local. Ingresos. |
| proceeds_local | float | Precio del producto después de la comisión de Apple/Google en moneda local. Ingresos netos. |
| transaction_id | str | Identificador único de una transacción, como una compra o renovación. |
| original_transaction_id | str | Identificador de transacción de la compra original. |
| purchase_date | ISO 8601 date | Fecha y hora de la compra del producto. |
| original_purchase_date | ISO 8601 date | Fecha y hora de la compra original. |
| environment | str | Puede ser Sandbox o Production. |
| vendor_product_id | str | ID del producto en la Apple App Store, Google Play Store o Stripe. |
| base_plan_id | str | ID de plan base en Google Play Store o ID de precio en Stripe. |
| event_datetime | ISO 8601 date | Fecha y hora del evento. |
| store | str | Puede ser app_store o play_store. |
| trial_duration | str | Duración del período de prueba en días. Se envía con el formato ” days”, por ejemplo, “7 days”. |
| cancellation_reason | str | Motivo por el que el usuario canceló una suscripción. Puede ser iOS & Android voluntarily_cancelled, billing_error, refund iOS price_increase, product_was_not_available, unknown Android new_subscription_replace, cancelled_by_developer |
| subscription_expires_at | ISO 8601 date | Fecha de expiración de la suscripción. Normalmente en el futuro. |
| consecutive_payments | int | Número de períodos que un usuario lleva suscrito sin interrupciones. Incluye el período actual. |
| rate_after_first_year | bool | Booleano que indica que la suscripción cumple los requisitos para una tasa de comisión reducida (normalmente el 15%) tras un año de renovación continua. Las tasas de comisión varían según la elegibilidad del programa y el país. Consulta Comisión del store e impuestos para más detalles. |
| promotional_offer_id | str | ID de la oferta promocional tal como se indica en la sección de productos del Adapty Dashboard. |
| store_offer_category | str | Puede ser introductory o promotional. |
| store_offer_discount_type | str | Puede ser free_trial, pay_as_you_go o pay_up_front. |
| paywall_name | str | Nombre del paywall donde se originó la transacción. |
| paywall_revision | int | Revisión del paywall donde se originó la transacción. El valor es 1. |
| developer_id | str | ID de desarrollador (SDK) del placement donde se originó la transacción. |
| ab_test_name | str | Nombre de la prueba A/B donde se originó la transacción. |
| ab_test_revision | int | Revisión de la prueba A/B donde se originó la transacción. El valor es 1. |
| cohort_name | str | Nombre de la audiencia a la que pertenece el perfil. |
| profile_event_id | uuid | ID de evento único que puede usarse para deduplicación. |
| store_country | str | El país que nos envía el store. |
| profile_ip_address | str | IP del perfil (puede ser IPv4 o IPv6, con preferencia por IPv4 cuando esté disponible). Se actualiza cada vez que cambia la IP del dispositivo. |
| profile_country | str | Determinado por Adapty según la IP del perfil. |
| profile_total_revenue_usd | float | Ingresos totales del perfil, incluidos los reembolsos. |
| variation_id | uuid | ID único del paywall donde se realizó la compra. |
| access_level_id | str | ID del nivel de acceso de pago. |
| is_active | bool | Booleano que indica si el nivel de acceso de pago está activo para el perfil. |
| will_renew | bool | Booleano que indica si el nivel de acceso de pago se renovará. |
| is_refund | bool | Booleano que indica si la transacción ha sido reembolsada. |
| is_lifetime | bool | Booleano que indica si el nivel de acceso de pago es de por vida. |
| is_in_grace_period | bool | Booleano que indica si el perfil está en período de gracia. |
| starts_at | ISO 8601 date | Fecha y hora en que el nivel de acceso de pago comienza para el usuario. |
| renewed_at | ISO 8601 date | Fecha y hora en que el período actual del acceso de pago comenzó más recientemente. Hasta la primera renovación, coincide con activated_at. |
| expires_at | ISO 8601 date | Fecha y hora en que expirará el acceso de pago. |
| activated_at | ISO 8601 date | Fecha y hora en que se activó el acceso de pago. |
| billing_issue_detected_at | ISO 8601 date | Fecha y hora del problema de facturación. |
| profile_has_access_level | Bool | Booleano que indica si el perfil tiene un nivel de acceso activo (solo Webhook). |
Cada evento incluye las siguientes propiedades:
transaction_id, original_transaction_id, purchase_date, original_purchase_date, environment, vendor_product_id, event_datetime, store.
Además, algunos eventos tienen propiedades adicionales. Para los eventos subscription_refunded y non_subscription_purchase_refunded, es obligatorio proporcionar los valores de price_usd y proceeds_usd como propiedades adicionales.
| Nombre del evento | Propiedades |
|---|---|
| subscription_initial_purchase | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_renewed | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_cancelled | cancellation_reason, trial_duration |
| trial_started | subscription_expires_at, trial_duration |
| trial_converted | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| trial_cancelled | cancellation_reason, trial_duration |
| non_subscription_purchase | price_usd, proceeds_usd |
| billing_issue_detected | subscription_expires_at, trial_duration |
| entered_grace_period | subscription_expires_at, trial_duration |
Ejemplo de evento
{
"price_usd": 9.99,
"proceeds_usd": 6.99,
"transaction_id": "1000000628581600",
"original_transaction_id": "1000000628581600",
"purchase_date": "2020-02-18T18:40:22.000000+0000",
"original_purchase_date": "2020-02-18T18:40:22.000000+0000",
"environment": "Sandbox",
"vendor_product_id": "premium",
"event_datetime": "2020-02-18T18:40:22.000000+0000",
"store": "app_store"
}
Adapty envía eventos a tu servidor y a sistemas analíticos de terceros.
La propiedad profile_ip_address se sincroniza con la IP actual del dispositivo. Cada vez que los servidores de Adapty reciben información del SDK, la IP se actualiza si difiere de la que tenemos registrada.