> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration

> AppsFlyer ad-revenue connector for CloudX Android SDK. Forwards CloudX ad revenue to AppsFlyer with no publisher glue code.

Connectors pass data between the CloudX SDK and another product. The AppsFlyer connector forwards CloudX ad revenue to your mobile measurement partner (MMP) so ad revenue appears alongside your other AppsFlyer data. Add the dependency and revenue reporting is automatic — the CloudX SDK discovers the connector at initialization and attaches it to the same global ad-revenue listener list that `CloudX.addAdRevenueListener()` uses.

## Install

<CodeGroup>
  ```kotlin Kotlin DSL theme={null}
  dependencies {
      implementation("io.cloudx:connector-appsflyer:6.15.0.0")
  }
  ```

  ```groovy Groovy theme={null}
  dependencies {
      implementation 'io.cloudx:connector-appsflyer:6.15.0.0'
  }
  ```
</CodeGroup>

No code changes are required. The connector never initializes AppsFlyer; it uses your existing AppsFlyer setup and dev key.

## Requirements

* CloudX Android SDK `4.3.0` or newer.
* Your app already integrates and initializes the AppsFlyer SDK with your own dev key. The connector depends on the AppsFlyer SDK at compile time only, so your app must declare `com.appsflyer:af-android-sdk` itself and your runtime version is the one used.
* A supported AppsFlyer SDK version: `6.15.0` up to (excluding) `7.0.0`.

## What gets reported

The connector calls AppsFlyer's `logAdRevenue` once per CloudX-won impression, across all CloudX ad formats — banner, MREC, interstitial, rewarded, native, and app open. Each call carries the winning ad network, the CloudX revenue estimate for the impression in USD, and the CloudX ad unit, format, and placement.

<Warning>
  If your app already calls `AppsFlyerLib.logAdRevenue` from a CloudX ad-revenue callback, remove that code when you add this connector. Otherwise every impression is reported to AppsFlyer twice.
</Warning>

## Compatibility

| Connector version | AppsFlyer SDK                           | Minimum CloudX SDK |
| ----------------- | --------------------------------------- | ------------------ |
| `6.15.0.0`        | AppsFlyer Android SDK `[6.15.0, 7.0.0)` | `4.3.0`            |

## Reporting revenue yourself instead

If you would rather control the reporting call, skip the connector and subscribe to CloudX ad revenue directly:

```kotlin theme={null}
CloudX.addAdRevenueListener { ad ->
    // Forward to AppsFlyer, or any other destination, using your own mapping.
}
```

`CloudX.addAdRevenueListener()` is the stable public surface. Use either the connector or your own listener — not both.
