---
id: "integrations/attribution/airbridge"
title: "Airbridge"
description: "With our Airbridge integration you can:"
permalink: "/docs/integrations/attribution/airbridge"
slug: "airbridge"
version: "current"
original_source: "docs/integrations/attribution/airbridge.mdx"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).

With our Airbridge integration you can:

- Attribute subscription revenue and lifecycle events to the Airbridge campaigns that drove them.
- Stream trial conversions, renewals, cancellations, and more directly from RevenueCat without relying on an app in the foreground.
- Continue measuring long-tail revenue from each campaign as subscriptions renew over time.

### Integration at a Glance

| Includes Revenue | Supports Negative Revenue | Sends Sandbox Events | Includes Customer Attributes | Sends Transfer Events |                                       Optional Event Types                                        |
| :--------------: | :-----------------------: | :------------------: | :--------------------------: | :-------------------: | :-----------------------------------------------------------------------------------------------: |
|        ✅        |            ❌             |          ✅          | Standard Reserved Attributes |          ❌           | `non_subscription_purchase_event` `expiration_event` `billing_issue_event` `product_change_event` |

## 1. Install the Airbridge SDK

Set up the latest Airbridge SDK in every platform where you collect purchases before enabling the integration. Refer to the [Airbridge developer documentation](https://developers.airbridge.io/) for the most up-to-date installation instructions.

## 2. Send device data to RevenueCat

Airbridge matches RevenueCat events to campaign cohorts using device and advertising identifiers. No subscriber attributes are strictly required for events to be sent, but collecting the following [Customer Attributes](https://www.revenuecat.com/docs/customers/customer-attributes) is recommended for accurate attribution:

| Key                  | Description                                                                                                                                     | Required         |
| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :--------------- |
| `$airbridgeDeviceId` | Airbridge DeviceUUID. The unique Airbridge identifier for the device                                                                            | ⚠️ (recommended) |
| `$idfa`              | iOS [advertising identifier](https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614151-advertisingidentifier) UUID        | ⚠️ (recommended) |
| `$gpsAdId`           | Google [advertising identifier](https://developers.google.com/android/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info) | ⚠️ (recommended) |
| `$idfv`              | iOS [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor) UUID                              | ⚠️ (recommended) |
| `$ip`                | The IP address of the device                                                                                                                    | ⚠️ (recommended) |

These properties can be set manually, like any other [Customer Attributes](https://www.revenuecat.com/docs/customers/customer-attributes), or through the helper methods `collectDeviceIdentifiers()` and `setAirbridgeDeviceID()`.

**Swift**

```swift
import AdSupport
import Purchases

// ...
Purchases.configure(withAPIKey: "public_sdk_key")
// ...

// Automatically collect the $idfa, $idfv, and $ip values
Purchases.shared.attribution.collectDeviceIdentifiers()

// Retrieve the DeviceUUID from the Airbridge SDK
let deviceUUID = /* Airbridge SDK DeviceUUID */

// Set the Airbridge Device ID
Purchases.shared.attribution.setAirbridgeDeviceID(deviceUUID)
```

**Kotlin**

```kotlin
// ...
Purchases.configure(this, "public_sdk_key")
// ...

// Automatically collect the $gpsAdId and $ip values
Purchases.sharedInstance.collectDeviceIdentifiers()

// Retrieve the DeviceUUID from the Airbridge SDK
val deviceUUID = /* Airbridge SDK DeviceUUID */

// Set the Airbridge Device ID
Purchases.sharedInstance.setAirbridgeDeviceID(deviceUUID)
```

You should make sure to call `collectDeviceIdentifiers()` after the *Purchases SDK* is configured, and before the first purchase occurs. It's safe to call this multiple times, as only the new/updated values will be sent to RevenueCat.

:::danger\[Device identifiers with iOS App Tracking Transparency (iOS 14.5+)]
If you are requesting the App Tracking permission through ATT to access the IDFA, you can call `.collectDeviceIdentifiers()` *again* if the customer accepts the permission to update the `$idfa` attribute in RevenueCat.
:::

:::info\[Import AdSupport Framework (iOS)]
The AdSupport framework is required to access the IDFA parameter on iOS. Don't forget to import this into your project.
:::

![Import AdSupport Framework](https://www.revenuecat.com/docs_images/integrations/attribution/import-adsupport-framework.png)

## 3. Configure Airbridge in the RevenueCat dashboard

After your SDK is ready and device data is flowing, finish the setup in RevenueCat:

1. Navigate to your project settings in the RevenueCat dashboard and choose **Airbridge** from the Integrations menu.
2. Enter your **Airbridge Token**. This token authenticates requests from RevenueCat to Airbridge.
3. Add the **Airbridge Subdomain (app name)** exactly as it appears in the Airbridge workspace (for example, `testapp`). Events will be routed to this app.

![Airbridge configuration fields in the RevenueCat dashboard](https://www.revenuecat.com/docs_images/integrations/attribution/airbridge/airbridge-configuration.png)

RevenueCat automatically maps subscription lifecycle events to the Airbridge event types expected by the integration.

4. Select how RevenueCat should report revenue totals using the **Revenue reporting mode** menu:
   - `Gross` reports transaction amounts before app store commission and taxes.
   - `Net` reports revenue after estimated store commission and/or taxes.

5. Click **Add integration** (or **Save**) to enable the connection.

## 4. Test the Airbridge integration

Before rolling out the integration, run through an end-to-end test:

1. Make a sandbox purchase with a new user after confirming the device identifiers from step 2 are present.
2. Visit the [Customer View](https://www.revenuecat.com/docs/dashboard-and-metrics/customer-profile) for the tester and confirm the Airbridge attributes are listed.
3. Open the test transaction in Customer History and ensure an Airbridge event was delivered successfully. You can also review the **Last dispatched events** panel in the integration settings for a delivery log.

:::success\[You're all set!]
Once configured, you should begin to see RevenueCat lifecycle events appear in Airbridge aligned with the campaigns that sourced those users.
:::
