Ad revenue
Ad revenue is reported with the chainable AffiseAdRevenue helper.
AffiseAdRevenue
Section titled “AffiseAdRevenue”class AffiseAdRevenue(source: AffiseAdSource) at attribution/src/main/java/com/affise/attribution/ad/AffiseAdRevenue.kt:7. Builder methods (all chainable, AffiseAdRevenue.kt:15-46):
| Method | Source |
|---|---|
| setRevenue(revenue: Float, currency: String) | AffiseAdRevenue.kt:15-19 |
| setRevenue(revenue: Double, currency: String) | AffiseAdRevenue.kt:21-25 |
| setNetwork(network: String?) | AffiseAdRevenue.kt:27-32 |
| setUnit(unit: String?) | AffiseAdRevenue.kt:34-39 |
| setPlacement(placement: String?) | AffiseAdRevenue.kt:41-46 |
| send() | AffiseAdRevenue.kt:48-50 (forwards to internal AdRevenueEvent) |
AffiseAdSource
Section titled “AffiseAdSource”enum class AffiseAdSource(val type: String) at attribution/src/main/java/com/affise/attribution/ad/AffiseAdSource.kt:4-10:
ADMOB("admob")ADMOST("admost")APPLOVIN_MAX("applovin_max")HELIUM_CHARTBOOST("helium_chartboost")IRONSOURCE("ironsource")
AdMob example
Section titled “AdMob example”var rewardedAd: RewardedAd? = nullval adRequest = AdRequest.Builder().build()RewardedAd.load(this,"AD_UNIT_ID", adRequest, object : RewardedAdLoadCallback() { override fun onAdLoaded(ad: RewardedAd) { rewardedAd = ad // Set paid event listener rewardedAd.onPaidEventListener = OnPaidEventListener { adValue -> val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponse
// Send AdRevenue info AffiseAdRevenue(AffiseAdSource.ADMOB) .setRevenue(adValue.valueMicros / 1000000, adValue.currencyCode) .setNetwork(loadedAdapterResponseInfo.adSourceName) .setUnit(ad.adUnitId) .send() } }})AppLovin MAX example
Section titled “AppLovin MAX example”override fun onAdRevenuePaid(ad: MaxAd){ // Send AdRevenue info AffiseAdRevenue(AffiseAdSource.APPLOVIN_MAX) .setRevenue(ad.revenue, "USD") .setNetwork(ad.networkName) .setUnit(ad.adUnitId) .setPlacement(ad.placement) .send()}Other networks
Section titled “Other networks”Helium, ironSource and Admost follow the same pattern — construct AffiseAdRevenue(<source>), call the chainable setters, then send().
Mediation network setup
Section titled “Mediation network setup”Before AffiseAdRevenue will fire, the upstream mediation SDK must be configured to deliver impression-level revenue events. Per-network setup:
- AdMob — Impression-level ad revenue
- AppLovin MAX — Advanced settings (mediation)
- Helium by Chartboost — Mediation Android — configure Helium
- ironSource — Android ad-revenue measurement integration (step 2)
- Admost — AMR Android docs