Integration
Singular ad-revenue connector for CloudX Android SDK. Forwards CloudX ad revenue to Singular with no publisher glue code.
Connectors pass data between the CloudX SDK and another product. The Singular connector forwards CloudX ad revenue to your mobile measurement partner (MMP) so ad revenue appears alongside your other Singular data and feeds ROAS measurement. Add the dependency and revenue reporting is automatic — the connector registers itself at process start, joining the same global ad-revenue listener list that CloudX.addAdRevenueListener() uses. Its manifest is merged into your app’s, so there is nothing to call and no initialization order to get right.
Install
repositories {
maven(url = uri("https://maven.singular.net")) // you already have this
}
dependencies {
implementation("io.cloudx:connector-singular:12.0.0.0")
}repositories {
maven { url 'https://maven.singular.net' } // you already have this
}
dependencies {
implementation 'io.cloudx:connector-singular:12.0.0.0'
}Singular publishes its Android SDK to its own Maven repository rather than Maven Central, which is why the repository line is part of the snippet. If your app already integrates Singular you will have it; declare it once, wherever your build resolves repositories.
No code changes are required. The connector never initializes Singular; it uses your existing Singular setup and SDK key.
Requirements
- CloudX Android SDK
4.3.0or newer. - Your app already integrates and initializes the Singular SDK with your own SDK key and secret. The connector depends on the Singular SDK at compile time only, so your app must declare both
com.singular.sdk:singular_sdkand the Singular Maven repository (https://maven.singular.net) itself, and your runtime version is the one used. - A supported Singular SDK version:
12.0.0or newer. The connector compiles against12.0.0, and the ad-revenue API it calls is verified unchanged through12.16.0.
What gets reported
The connector calls Singular’s Singular.adRevenue once per CloudX-won impression, across all CloudX ad formats — banner, MREC, interstitial, rewarded, native, and app open. Each call carries:
| Singular field | Value |
|---|---|
| Ad platform | CloudX |
| Currency | USD |
| Revenue | The CloudX revenue estimate for the impression |
| Revenue precision | estimated |
| Network name | The winning ad network, or CloudX when the network is not reported |
| Ad unit id | The CloudX ad unit id |
| Ad type | BANNER, MREC, INTERSTITIAL, REWARDED, NATIVE, or APP_OPEN |
| Ad placement name | The CloudX placement |
| Ad unit name | The network placement |
Compatibility
| Connector version | Singular SDK | Minimum CloudX SDK |
|---|---|---|
12.0.0.0 | Singular Android SDK >= 12.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:
CloudX.addAdRevenueListener { ad ->
// Forward to Singular, 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.