---
title: "Airbridge"
description: "Kết nối Adapty với Airbridge để theo dõi thông tin marketing và attribution."
---

[Airbridge](https://www.airbridge.io/) cung cấp phân tích hiệu suất marketing tích hợp cho website và ứng dụng di động bằng cách tổng hợp dữ liệu thu thập từ nhiều thiết bị, nền tảng và kênh khác nhau. Sử dụng Identity Resolution Engine của Airbridge, bạn có thể kết hợp dữ liệu định danh khách hàng phân tán từ các tương tác trên web và ứng dụng thành một định danh thống nhất dựa trên người dùng, giúp attribution chính xác hơn.

Adapty cung cấp đầy đủ dữ liệu để bạn theo dõi [các sự kiện gói đăng ký](events) từ các cửa hàng tại một nơi. Với Adapty, bạn dễ dàng nắm bắt hành vi của người dùng, hiểu sở thích của họ và dùng thông tin đó để giao tiếp một cách có mục tiêu và hiệu quả.

Tích hợp giữa Adapty và Airbridge hoạt động theo hai hướng chính.

1. **Nhận dữ liệu attribution từ Airbridge**  
   Sau khi thiết lập tích hợp Airbridge, Adapty sẽ bắt đầu nhận dữ liệu attribution từ Airbridge. Bạn có thể dễ dàng xem dữ liệu này trên trang của người dùng.
2. **Gửi sự kiện gói đăng ký đến Airbridge**  
   Adapty có thể gửi tất cả các sự kiện gói đăng ký đã được cấu hình trong tích hợp của bạn đến Airbridge. Nhờ đó, bạn có thể theo dõi các sự kiện này trong Airbridge dashboard, giúp đánh giá hiệu quả các chiến dịch quảng cáo.

## Thiết lập tích hợp \{#set-up-integration\}

### Kết nối Adapty với Airbridge \{#connect-adapty-to-airbridge\}

Để tích hợp Airbridge, vào [Integrations > Airbridge](https://app.adapty.io/integrations/airbridge), bật toggle từ tắt sang bật và điền thông tin vào các trường.

Trước tiên, hãy thiết lập thông tin xác thực để tạo kết nối giữa hồ sơ Airbridge và Adapty của bạn. Cần có tên ứng dụng Airbridge và API token 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 */
  }}
/>

Cả hai thông tin đều có thể tìm thấy trong Airbridge dashboard của bạn tại mục [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 */
  }}
/>

Trường Adapty API token được tạo sẵn từ phía backend của Adapty. Bạn cần sao chép giá trị Adapty API token và dán vào Airbridge Dashboard trong trường 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 */
  }}
/>

### Cấu hình sự kiện và tags \{#configure-events-and-tags\}

Bên dưới phần thông tin xác thực là ba nhóm sự kiện bạn có thể gửi từ Adapty đến 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 */
  }}
/>

Chỉ cần bật những sự kiện bạn cần.

### Kết nối ứng dụng với Airbridge \{#connect-your-app-to-airbridge\}

Để tích hợp, bạn cần truyền `airbridge_device_id` vào profile builder và gọi `setIntegrationIdentifier` như ví dụ dưới đây:

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

Đọc thêm về airbridgeDeviceId trong [tài liệu Airbridge.](https://help.airbridge.io/en/developers/airbridge-device-id-faq)

Adapty có thể mất tới 24 giờ để nhận dữ liệu attribution từ Airbridge sau một sự kiện gói đăng ký. Adapty sẽ hiển thị ngay trên dashboard sau khi nhận được.

## Cấu trúc sự kiện \{#event-structure\}

Adapty gửi các sự kiện đã chọn đến Airbridge theo cấu hình trong phần **Events names** trên [**trang tích hợp Airbridge**](https://app.adapty.io/integrations/airbridge). Mỗi sự kiện có cấu trúc như sau:

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

Trong đó:

| Tham số                                      | Kiểu    | Mô tả                                                                                       |
|:---------------------------------------------|:--------|:--------------------------------------------------------------------------------------------|
| `user`                                       | Object  | Thông tin người dùng.                                                                       |
| `user.externalUserID`                        | String  | Customer User ID của người dùng.                                                            |
| `user.externalUserEmail`                     | String  | Địa chỉ email của người dùng (nếu có).                                                      |
| `user.attributes`                            | Object  | Các thuộc tính tùy chỉnh của người dùng.                                                    |
| `device`                                     | Object  | Thông tin thiết bị.                                                                         |
| `device.deviceUUID`                          | String  | UUID thiết bị Airbridge.                                                                    |
| `device.deviceModel`                         | String  | Model thiết bị (ví dụ: "iPhone 14 Pro").                                                    |
| `device.osName`                              | String  | Tên hệ điều hành (ví dụ: "iOS", "Android").                                                 |
| `device.osVersion`                           | String  | Phiên bản hệ điều hành.                                                                     |
| `device.ifa`                                 | String  | **Chỉ iOS**. ID for Advertisers.                                                            |
| `device.ifv`                                 | String  | **Chỉ iOS**. ID for Vendors.                                                                |
| `device.gaid`                                | String  | **Chỉ Android**. Google Advertising ID.                                                     |
| `app`                                        | Object  | Thông tin ứng dụng.                                                                         |
| `app.packageName`                            | String  | Package name / bundle ID của ứng dụng.                                                      |
| `app.version`                                | String  | Phiên bản ứng dụng.                                                                         |
| `eventUUID`                                  | String  | ID duy nhất của sự kiện trong Adapty.                                                       |
| `eventTimestamp`                             | Long    | Timestamp của sự kiện tính bằng mili giây.                                                  |
| `eventData`                                  | Object  | Chi tiết sự kiện.                                                                           |
| `eventData.goal.category`                    | String  | Danh mục sự kiện Airbridge (ánh xạ từ sự kiện Adapty).                                      |
| `eventData.goal.semanticAttributes`          | Object  | Các thuộc tính sự kiện chuẩn.                                                               |
| `...semanticAttributes.transactionID`        | String  | ID giao dịch từ cửa hàng.                                                                   |
| `...semanticAttributes.totalValue`           | Float   | Giá trị doanh thu.                                                                          |
| `...semanticAttributes.currency`             | String  | Mã tiền tệ (ví dụ: "USD").                                                                  |
| `...semanticAttributes.period`               | String  | Chu kỳ gói đăng ký theo định dạng ISO 8601 (ví dụ: "P1M").                                  |
| `...semanticAttributes.isRenewal`            | Boolean | `true` nếu đây là giao dịch gia hạn.                                                        |
| `...semanticAttributes.renewalCount`         | Integer | Số lần gia hạn thành công.                                                                  |
| `...semanticAttributes.products`             | Array   | Danh sách sản phẩm liên quan đến sự kiện.                                                   |
| `...semanticAttributes.products[].productID` | String  | ID sản phẩm từ cửa hàng (ví dụ: "yearly.premium.6999").                                     |
| `...semanticAttributes.products[].name`      | String  | Giống với `productID`.                                                                      |
| `...semanticAttributes.products[].position`  | Integer | Vị trí của sản phẩm trong danh sách (luôn là 1).                                            |