Skip to content

Ad revenue

Ad revenue is reported with the chainable AffiseAdRevenue helper.

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

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")
var rewardedAd: RewardedAd? = null
val 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()
}
}
})
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()
}

Helium, ironSource and Admost follow the same pattern — construct AffiseAdRevenue(<source>), call the chainable setters, then send().

Before AffiseAdRevenue will fire, the upstream mediation SDK must be configured to deliver impression-level revenue events. Per-network setup: