---
title: "Integraciones de servicios de mensajería"
description: "Usa las herramientas de mensajería de Adapty para mejorar la retención y el engagement de suscripciones."
---

La adquisición de usuarios no es fácil ni barata en el mercado móvil actual. 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 más importantes de tus usuarios. Sabemos cuándo un cliente inició una prueba, si tuvo problemas con su pago, o si compró una suscripción y luego decidió cancelarla. Todos estos eventos —y otros— indican un cambio en el estado del cliente. Y ese es el mejor momento para actuar: enviar una oferta, un regalo personalizado o cualquier otro incentivo para retenerle.

Las plataformas de notificaciones push permiten describir a un usuario con etiquetas estándar y personalizadas para construir un sistema de retención automático y eficaz. Para que este sistema funcione, solo necesitas eventos desencadenadores que le 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:

- [Braze](braze)
- [OneSignal](onesignal)
- [Pushwoosh](pushwoosh)
- [Slack](slack)

:::note
¿No ves tu proveedor de atribución?

¡Cuéntanoslo! [Crea una solicitud de función](https://adapty.featurebase.app/en?b=6979f233ebd3cffd4f425ba0) y lo valoraremos.
:::

## Propiedades de los eventos \{#event-properties\}

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.

| 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 del recorte de Apple/Google. Ingresos. |
| **proceeds_usd**              | float         | Precio del producto después del recorte de Apple/Google. Ingresos netos. |
| **net_revenue_usd**           | float         | Ingresos netos (ingresos tras el recorte de Apple/Google e impuestos) en USD. Puede estar vacío. |
| **price_local**               | float         | Precio del producto antes del recorte de Apple/Google en moneda local. Ingresos. |
| **proceeds_local**            | float         | Precio del producto después del recorte 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 la 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 el Apple App Store, Google Play Store o Stripe. |
| **base_plan_id**              | str           | [ID del plan base](https://support.google.com/googleplay/android-developer/answer/12154973) en Google Play Store o [ID de precio](https://docs.stripe.com/products-prices/how-products-and-prices-work#use-products-and-prices) 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 en el formato "{} days", por ejemplo, "7 days". |
| **cancellation_reason**       | str           | <p>Motivo por el que el usuario canceló una suscripción.</p><p></p><p>Puede ser</p><p>iOS & Android</p><p>_voluntarily_cancelled_, _billing_error_, _refund_</p><p>iOS</p><p>_price_increase_, _product_was_not_available_, _unknown_</p><p>Android</p><p>_new_subscription_replace_, _cancelled_by_developer_</p> |
| **subscription_expires_at**   | ISO 8601 date | Fecha de vencimiento de la suscripción. Generalmente en el futuro. |
| **consecutive_payments**      | int           | Número de períodos durante los que el usuario ha estado 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 comisión reducida (habitualmente el 15%) tras un año de renovaciones continuas. Las tasas de comisión varían según la elegibilidad del programa y el país. Consulta [Comisiones del store e impuestos](controls-filters-grouping-compare-proceeds#display-gross-or-net-revenue) para más detalles. |
| **promotional_offer_id**      | str           | ID de la oferta promocional tal como aparece 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 se establece en 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 se establece en 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           | País enviado por el store.                                   |
| **profile_ip_address**        | str           | IP del perfil (puede ser IPv4 o IPv6; se prefiere IPv4 cuando está disponible). Se actualiza cada vez que cambia la IP del dispositivo. |
| **profile_country**           | str           | Determinado por Adapty a partir de la IP del perfil.         |
| **profile_total_revenue_usd** | float         | Ingresos totales del perfil, incluyendo 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 acceso de pago se renovará.           |
| **expires_at**                | ISO 8601 date | Fecha y hora en que el acceso de pago vencerá.               |
| **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

```json title="Json"
{
    "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.