---
title: "Airbridge"
description: "Conecta Adapty con Airbridge para rastrear información de marketing y atribución."
---

[Airbridge](https://www.airbridge.io/) ofrece un análisis integrado del rendimiento de marketing para sitios web y aplicaciones móviles, consolidando datos recopilados de múltiples dispositivos, plataformas y canales. Con el motor de resolución de identidad de Airbridge, puedes combinar datos de identidad dispersos de clientes procedentes de interacciones web y de la app en una identidad unificada basada en personas, lo que se traduce en una atribución más precisa.

Adapty proporciona un conjunto completo de datos que te permite rastrear [eventos de suscripción](events) desde los stores en un solo lugar. Con Adapty, puedes ver fácilmente cómo se comportan tus suscriptores, descubrir qué les gusta y usar esa información para comunicarte con ellos de forma dirigida y efectiva.

La integración entre Adapty y Airbridge funciona de dos maneras principales.

1. **Recibir datos de atribución desde Airbridge**  
   Una vez configurada la integración con Airbridge, Adapty comenzará a recibir datos de atribución de Airbridge. Puedes acceder y consultar estos datos fácilmente en la página del usuario.
2. **Enviar eventos de suscripción a Airbridge**  
   Adapty puede enviar todos los eventos de suscripción configurados en tu integración a Airbridge. Como resultado, podrás rastrear estos eventos dentro del dashboard de Airbridge. Esta integración es útil para evaluar la efectividad de tus campañas publicitarias.

## Configurar la integración \{#set-up-integration\}

### Conectar Adapty con Airbridge \{#connect-adapty-to-airbridge\}

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

Primero, introduce las credenciales para establecer la conexión entre tus perfiles de Airbridge y Adapty. Se requieren el nombre de la app de Airbridge y el token de API de Airbridge.

  <img src="/assets/shared/img/2b31d90-Untitled-1_1.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Ambos se encuentran en tu dashboard de Airbridge, en la sección [Third-party Integrations > Adapty](https://app.airbridge.io/app/testad/integrations/third-party/adapty).

  <img src="/assets/shared/img/5a2f627-Screenshot_2023-02-21_at_11.19.29_AM.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

El campo del token de API de Adapty se genera previamente en el backend de Adapty. Debes copiar el valor del token de API de Adapty y pegarlo en el dashboard de Airbridge en el campo Adapty Authorization Token.

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

### Configurar eventos y etiquetas \{#configure-events-and-tags\}

Debajo de las credenciales encontrarás tres grupos de eventos que puedes enviar a Airbridge desde Adapty.

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

Simplemente activa los que necesites.

### Conectar tu app con Airbridge \{#connect-your-app-to-airbridge\}

Para la integración, debes pasar `airbridge_device_id` al perfil y llamar a `setIntegrationIdentifier` tal como se muestra en el siguiente ejemplo:

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS (Swift)" default>
```swift showLineNumbers

do {
    try await Adapty.setIntegrationIdentifier(
        key: "airbridge_device_id", 
        value: AirBridge.deviceUUID()
    )
} catch {
    // handle the error
}
```
</TabItem>
<TabItem value="kotlin" label="Android (Kotlin)" default>
```kotlin showLineNumbers
Airbridge.getDeviceInfo().getUUID(object: AirbridgeCallback.SimpleCallback<String>() {
    override fun onSuccess(result: String) {
        Adapty.setIntegrationIdentifier("airbridge_device_id", result) { error ->
            if (error != null) {
                // handle the error
            }
        }
    }
    override fun onFailure(throwable: Throwable) {
    }
})
```
</TabItem>
<TabItem value="flutter" label="Flutter (Dart)" default>
```javascript showLineNumbers

final deviceUUID = await Airbridge.state.deviceUUID;

try {
    await Adapty().setIntegrationIdentifier(
        key: "airbridge_device_id", 
        value: deviceUUID,
    );
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
    // handle the error
}
```
</TabItem>
<TabItem value="rn" label="React Native (TS)" default>
```typescript showLineNumbers

try {
  const deviceId = await Airbridge.state.deviceUUID();

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

Lee más sobre airbridgeDeviceId en la [documentación de Airbridge.](https://help.airbridge.io/en/developers/airbridge-device-id-faq)

Adapty puede tardar hasta 24 horas en recibir los datos de atribución de Airbridge tras un evento de suscripción. Adapty los mostrará en el dashboard de inmediato.

## Estructura del evento \{#event-structure\}

Adapty envía los eventos seleccionados a Airbridge según lo configurado en la sección **Events names** de la [**página de integración de Airbridge**](https://app.adapty.io/integrations/airbridge). Cada evento tiene la siguiente estructura:

```json
{
  "user": {
    "externalUserID": "user_12345",
    "externalUserEmail": "user@example.com",
    "attributes": {
      "is_premium": true
    }
  },
  "device": {
    "deviceUUID": "550e8400-e29b-41d4-a716-446655440000",
    "deviceModel": "iPhone 14 Pro",
    "osName": "iOS",
    "osVersion": "17.0.1",
    "locale": "en-US",
    "timezone": "America/New_York",
    "ifa": "00000000-0000-0000-0000-000000000000",
    "ifv": "00000000-0000-0000-0000-000000000000"
  },
  "app": {
    "packageName": "com.example.app",
    "version": "1.2.3"
  },
  "eventUUID": "d4f6f1f4-96fb-4a31-bafd-599fef77be90",
  "eventTimestamp": 1709294400000,
  "eventData": {
    "goal": {
      "category": "airbridge.subscribe",
      "customAttributes": {
        "isTrialConverted": true
      },
      "semanticAttributes": {
        "transactionID": "GPA.3383-4699-1373-07113",
        "totalValue": 9.99,
        "currency": "USD",
        "period": "P1M",
        "isRenewal": true,
        "renewalCount": 2,
        "products": [
          {
            "productID": "yearly.premium.6999",
            "name": "yearly.premium.6999",
            "position": 1
          }
        ]
      }
    }
  }
}
```

Donde:

| Parámetro                                    | Tipo    | Descripción                                                                        |
|:---------------------------------------------|:--------|:-----------------------------------------------------------------------------------|
| `user`                                       | Object  | Información del usuario.                                                           |
| `user.externalUserID`                        | String  | El Customer User ID del usuario.                                                   |
| `user.externalUserEmail`                     | String  | La dirección de correo electrónico del usuario (si está disponible).               |
| `user.attributes`                            | Object  | Atributos personalizados del usuario.                                              |
| `device`                                     | Object  | Información del dispositivo.                                                       |
| `device.deviceUUID`                          | String  | El UUID del dispositivo en Airbridge.                                              |
| `device.deviceModel`                         | String  | Modelo del dispositivo (p. ej., "iPhone 14 Pro").                                  |
| `device.osName`                              | String  | Nombre del sistema operativo (p. ej., "iOS", "Android").                           |
| `device.osVersion`                           | String  | Versión del sistema operativo.                                                     |
| `device.ifa`                                 | String  | **Solo iOS**. ID para anunciantes.                                                 |
| `device.ifv`                                 | String  | **Solo iOS**. ID para proveedores.                                                 |
| `device.gaid`                                | String  | **Solo Android**. Google Advertising ID.                                           |
| `app`                                        | Object  | Información de la app.                                                             |
| `app.packageName`                            | String  | El nombre del paquete / bundle ID de la aplicación.                                |
| `app.version`                                | String  | La versión de la aplicación.                                                       |
| `eventUUID`                                  | String  | ID único del evento en Adapty.                                                     |
| `eventTimestamp`                             | Long    | Marca de tiempo del evento en milisegundos.                                        |
| `eventData`                                  | Object  | Detalles del evento.                                                               |
| `eventData.goal.category`                    | String  | La categoría del evento en Airbridge (mapeada desde el evento de Adapty).          |
| `eventData.goal.semanticAttributes`          | Object  | Atributos estándar del evento.                                                     |
| `...semanticAttributes.transactionID`        | String  | ID de transacción del store.                                                       |
| `...semanticAttributes.totalValue`           | Float   | Importe de los ingresos.                                                           |
| `...semanticAttributes.currency`             | String  | Código de divisa (p. ej., "USD").                                                  |
| `...semanticAttributes.period`               | String  | Período de suscripción en formato de duración ISO 8601 (p. ej., "P1M").            |
| `...semanticAttributes.isRenewal`            | Boolean | `true` si se trata de una transacción de renovación.                               |
| `...semanticAttributes.renewalCount`         | Integer | Número de renovaciones exitosas.                                                   |
| `...semanticAttributes.products`             | Array   | Lista de productos involucrados en el evento.                                      |
| `...semanticAttributes.products[].productID` | String  | El ID del producto en el store (p. ej., "yearly.premium.6999").                    |
| `...semanticAttributes.products[].name`      | String  | Igual que `productID`.                                                             |
| `...semanticAttributes.products[].position`  | Integer | La posición del producto en la lista (siempre 1).                                  |