---
title: "Pushwoosh"
description: "Integra Pushwoosh con Adapty para un seguimiento de notificaciones push sin fricciones."
---

Adapty utiliza eventos de suscripción para actualizar las etiquetas de perfil de [Pushwoosh](https://www.pushwoosh.com/), de modo que puedas crear comunicaciones dirigidas con tus clientes mediante notificaciones push tras una configuración de integración rápida y sencilla como la que se describe a continuación.

## Cómo configurar la integración con Pushwoosh \{#how-to-set-up-pushwoosh-integration\}

Para integrar Pushwoosh, ve a [**Integrations** -> **Pushwoosh**](https://app.adapty.io/integrations/pushwoosh), activa el interruptor y rellena los campos.

En primer lugar, introduce las credenciales para establecer la conexión entre tus perfiles de Pushwoosh y Adapty. Se necesitan el App ID y el auth token de Pushwoosh.

  <img src="/assets/shared/img/64e48a1-CleanShot_2023-08-18_at_11.13.212x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

1. El **App ID** se encuentra en tu dashboard de Pushwoosh.

  <img src="/assets/shared/img/ee27687-CleanShot_2023-08-18_at_14.37.442x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

2. El **Auth token** se encuentra en la sección API Access dentro de la configuración de Pushwoosh.

  <img src="/assets/shared/img/50e634b-CleanShot_2023-08-18_at_14.35.022x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Eventos y etiquetas \{#events-and-tags\}

Debajo de las credenciales encontrarás tres grupos de eventos que puedes enviar a Pushwoosh desde Adapty. Activa simplemente los que necesites. También puedes cambiar los nombres de los eventos antes de enviarlos a Pushwoosh. Consulta la lista completa de eventos que ofrece Adapty [aquí](events).

  <img src="/assets/shared/img/392dc31-screencapture-app-adapty-io-integrations-pushwoosh-2023-08-22-13_31_07.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Adapty enviará los eventos de suscripción a Pushwoosh mediante una integración server-to-server, lo que te permitirá ver todos los eventos de suscripción en tu Pushwoosh Dashboard.

:::note
Etiquetas personalizadas

Con Adapty también puedes usar tus propias etiquetas personalizadas para la integración con Pushwoosh. Consulta la lista de etiquetas que se muestra a continuación para determinar cuál se adapta mejor a tus necesidades.
:::

| Etiqueta | Tipo | Valor |
|---|----|-----|
| `adapty_customer_user_id` | String | Contiene el valor del identificador único del usuario, que puede encontrarse en el lado de Pushwoosh. |
| `adapty_profile_id` | String | Contiene el valor del identificador único del perfil de usuario de Adapty, que puede encontrarse en tu [dashboard](profiles-crm) de Adapty. |
| `environment` | String | <p>Indica si el usuario opera en un entorno sandbox o de producción.</p><p></p><p>Los valores son `Sandbox` o `Production`.</p> |
| `store` | String | <p>Contiene el nombre del store utilizado para realizar la compra.</p><p></p><p>Valores posibles:</p><p>`app_store` o `play_store`.</p> |
| `vendor_product_id` | String | <p>Contiene el valor del Product ID en la store de Apple o Google.</p><p></p><p>p. ej., org.locals.12345</p> |
| `subscription_expires_at` | String | <p>Contiene la fecha de expiración de la última suscripción.</p><p></p><p>El formato del valor es:</p><p>año-mes díaTHhora:minuto:segundo</p><p>p. ej., 2023-02-10T17:22:03.000000+0000</p> |
| `last_event_type` | String | Indica el tipo del último evento recibido de la lista de [eventos estándar de Adapty](events) que has habilitado para la integración. |
| `purchase_date` | String | <p>Contiene la fecha de la última transacción (compra original o renovación).</p><p></p><p>El formato del valor es:</p><p>año-mes díaTHhora:minuto:segundo</p><p>p. ej., 2023-02-10T17:22:03.000000+0000</p> |
| `original_purchase_date` | String | <p>Contiene la fecha de la primera compra según la transacción.</p><p></p><p>El formato del valor es:</p><p>año-mes díaTHhora:minuto:segundo</p><p>p. ej., 2023-02-10T17:22:03.000000+0000</p> |
| `active_subscription` | String | El valor se establecerá en `true` ante cualquier evento de compra o renovación, o en `false` si la suscripción ha expirado. |
| `period_type` | String | <p>Indica el tipo de período más reciente para la compra o renovación.</p><p></p><p>Los valores posibles son</p><p>`trial` para un período de prueba o `normal` para el resto.</p> |

Todos los valores float se redondearán a int. Las cadenas de texto permanecen igual.

Además de la lista predefinida de etiquetas disponibles, es posible enviar [atributos personalizados](segments#custom-attributes) mediante etiquetas. Esto ofrece mayor flexibilidad en el tipo de datos que se pueden incluir y resulta útil para rastrear información específica relacionada con un producto o servicio. Todos los atributos personalizados de usuario se envían automáticamente a Pushwoosh si el usuario marca la casilla **Send user custom attributes** en [la página de integración](https://app.adapty.io/integrations/pushwoosh).

## Configuración del SDK \{#sdk-configuration\}

Para vincular Adapty con Pushwoosh, necesitas enviarnos el valor `HWID`:

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS (Swift)" default>
```swift showLineNumbers
do {
    try await Adapty.setIntegrationIdentifier(
        key: "pushwoosh_hwid", 
        value: Pushwoosh.sharedInstance().getHWID()
    )
} catch {
    // handle the error
}
```
</TabItem>
<TabItem value="kotlin" label="Android (Kotlin)" default>
```kotlin showLineNumbers
Adapty.setIntegrationIdentifier("pushwoosh_hwid", Pushwoosh.getInstance().hwid) { error ->
    if (error != null) {
        // handle the error
    }
}
```
</TabItem>
<TabItem value="java" label="Android (Java)" default>
```java showLineNumbers
Adapty.setIntegrationIdentifier("pushwoosh_hwid", Pushwoosh.getInstance().getHwid(), error -> {
    if (error != null) {
        // handle the error
    }
});
```
</TabItem>
<TabItem value="flutter" label="Flutter (Dart)" default>
```javascript showLineNumbers

final hwid = await Pushwoosh.getInstance.getHWID;

try {
    await Adapty().setIntegrationIdentifier(
        key: "pushwoosh_hwid", 
        value: hwid,
    );
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
    // handle the error
}
```
</TabItem>
<TabItem value="unity" label="Unity (C#)" default>
```csharp showLineNumbers
using AdaptySDK;

Adapty.SetIntegrationIdentifier(
  "pushwoosh_hwid", 
  Pushwoosh.Instance.HWID, 
  (error) => {
  // handle the error
});
```
</TabItem>
<TabItem value="rn" label="React Native (TS)" default>
```typescript showLineNumbers

// ...
try {
  await adapty.setIntegrationIdentifier("pushwoosh_hwid", hwid);
} catch (error) {
  // handle `AdaptyError`
}
```
</TabItem>
</Tabs>