---
title: "Airbridge"
description: "Подключите Adapty к Airbridge для отслеживания маркетинговых данных и атрибуции."
---

[Airbridge](https://www.airbridge.io/) предоставляет комплексный анализ маркетинговой эффективности для сайтов и мобильных приложений, объединяя данные с нескольких устройств, платформ и каналов. С помощью движка Identity Resolution Engine от Airbridge можно объединить разрозненные данные об идентификации пользователей из веб- и мобильных взаимодействий в единую идентичность на основе людей, что обеспечивает более точную атрибуцию.

Adapty предоставляет полный набор данных для отслеживания [событий подписки](events) из сторов в одном месте. С Adapty вы легко увидите, как ведут себя ваши подписчики, узнаете, что им нравится, и сможете использовать эту информацию для целенаправленного и эффективного общения с ними.

Интеграция между Adapty и Airbridge работает двумя основными способами.

1. **Получение данных атрибуции от Airbridge**  
   После настройки интеграции с Airbridge Adapty начнёт получать данные атрибуции от Airbridge. Вы сможете легко просматривать эти данные на странице пользователя.
2. **Отправка событий подписки в Airbridge**  
   Adapty может отправлять все события подписки, настроенные в вашей интеграции, в Airbridge. В результате вы сможете отслеживать эти события в дашборде Airbridge. Эта интеграция полезна для оценки эффективности рекламных кампаний.

## Настройка интеграции \{#set-up-integration\}

### Подключение Adapty к Airbridge \{#connect-adapty-to-airbridge\}

Чтобы интегрировать Airbridge, перейдите в [Integrations > Airbridge](https://app.adapty.io/integrations/airbridge), включите переключатель и заполните поля.

Прежде всего укажите учётные данные для установки соединения между вашими профилями Airbridge и Adapty. Необходимы название приложения в Airbridge (Airbridge app name) и токен API Airbridge (Airbridge API token).

  <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 */
  }}
/>

Оба значения можно найти в вашем дашборде Airbridge в разделе [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 */
  }}
/>

Поле Adapty API token уже заполнено — значение генерируется на бэкенде Adapty. Скопируйте его и вставьте в дашборд Airbridge в поле 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 */
  }}
/>

### Настройка событий и тегов \{#configure-events-and-tags\}

Ниже учётных данных расположены три группы событий, которые можно отправлять из Adapty в Airbridge.

  <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 */
  }}
/>

Просто включите нужные.

### Подключение приложения к Airbridge \{#connect-your-app-to-airbridge\}

Для интеграции нужно передать `airbridge_device_id` в профиль и вызвать `setIntegrationIdentifier`, как показано в примере ниже:

<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>

Подробнее об airbridgeDeviceId читайте в [документации Airbridge](https://help.airbridge.io/en/developers/airbridge-device-id-faq).

После события подписки Adapty может получать данные атрибуции от Airbridge до 24 часов. На дашборде они отобразятся сразу после получения.

## Структура события \{#event-structure\}

Adapty отправляет выбранные события в Airbridge в соответствии с настройками в разделе **Events names** на [**странице интеграции с Airbridge**](https://app.adapty.io/integrations/airbridge). Каждое событие имеет следующую структуру:

```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
          }
        ]
      }
    }
  }
}
```

Где:

| Параметр                                     | Тип     | Описание                                                                          |
|:---------------------------------------------|:--------|:----------------------------------------------------------------------------------|
| `user`                                       | Object  | Информация о пользователе.                                                        |
| `user.externalUserID`                        | String  | Customer User ID пользователя.                                                    |
| `user.externalUserEmail`                     | String  | Email-адрес пользователя (если доступен).                                         |
| `user.attributes`                            | Object  | Пользовательские атрибуты.                                                        |
| `device`                                     | Object  | Информация об устройстве.                                                         |
| `device.deviceUUID`                          | String  | UUID устройства Airbridge.                                                        |
| `device.deviceModel`                         | String  | Модель устройства (например, "iPhone 14 Pro").                                    |
| `device.osName`                              | String  | Название ОС (например, "iOS", "Android").                                         |
| `device.osVersion`                           | String  | Версия ОС.                                                                        |
| `device.ifa`                                 | String  | **Только iOS**. ID для рекламодателей (IFA).                                      |
| `device.ifv`                                 | String  | **Только iOS**. ID для вендоров (IFV).                                            |
| `device.gaid`                                | String  | **Только Android**. Google Advertising ID.                                        |
| `app`                                        | Object  | Информация о приложении.                                                          |
| `app.packageName`                            | String  | Package name / bundle ID приложения.                                              |
| `app.version`                                | String  | Версия приложения.                                                                |
| `eventUUID`                                  | String  | Уникальный идентификатор события в Adapty.                                        |
| `eventTimestamp`                             | Long    | Временная метка события в миллисекундах.                                          |
| `eventData`                                  | Object  | Детали события.                                                                   |
| `eventData.goal.category`                    | String  | Категория события Airbridge (сопоставляется с событием Adapty).                   |
| `eventData.goal.semanticAttributes`          | Object  | Стандартные атрибуты события.                                                     |
| `...semanticAttributes.transactionID`        | String  | ID транзакции в сторе.                                                            |
| `...semanticAttributes.totalValue`           | Float   | Сумма дохода.                                                                     |
| `...semanticAttributes.currency`             | String  | Код валюты (например, "USD").                                                     |
| `...semanticAttributes.period`               | String  | Период подписки в формате ISO 8601 duration (например, "P1M").                    |
| `...semanticAttributes.isRenewal`            | Boolean | `true`, если это транзакция продления.                                            |
| `...semanticAttributes.renewalCount`         | Integer | Количество успешных продлений.                                                    |
| `...semanticAttributes.products`             | Array   | Список продуктов, задействованных в событии.                                      |
| `...semanticAttributes.products[].productID` | String  | ID продукта в сторе (например, "yearly.premium.6999").                            |
| `...semanticAttributes.products[].name`      | String  | То же, что `productID`.                                                           |
| `...semanticAttributes.products[].position`  | Integer | Позиция продукта в списке (всегда равна 1).                                       |