Skip to main content

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.

class MainActivity : AppCompatActivity(), CloudXAdViewListener, CloudXAdRevenueListener {
    private lateinit var bannerAd: CloudXAdView

    private fun createBannerAd() {
        bannerAd = CloudX.createBanner(this, "your-banner-ad-unit-id")
        bannerAd.listener = this
        bannerAd.revenueListener = this

        val layoutParams = LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT
        )
        layoutParams.gravity = Gravity.CENTER_HORIZONTAL
        findViewById<LinearLayout>(R.id.banner_container).addView(bannerAd, layoutParams)
    }

    override fun onDestroy() {
        super.onDestroy()
        bannerAd.destroy()
    }

    // CloudXAdViewListener callbacks
    override fun onAdLoaded(cloudXAd: CloudXAd) {
        Log.d("CloudX", "Banner ad loaded from ${cloudXAd.networkName}")
    }

    override fun onAdLoadFailed(adUnitId: String, cloudXError: CloudXError) {
        Log.e("CloudX", "Banner ad failed to load: ${cloudXError.message}")
    }

    override fun onAdClicked(cloudXAd: CloudXAd) {
        Log.d("CloudX", "Banner ad clicked")
    }

    override fun onAdExpanded(cloudXAd: CloudXAd) {
        Log.d("CloudX", "Banner ad expanded")
    }

    override fun onAdCollapsed(cloudXAd: CloudXAd) {
        Log.d("CloudX", "Banner ad collapsed")
    }

    // CloudXAdRevenueListener callback
    override fun onAdRevenuePaid(cloudXAd: CloudXAd) {
        Log.d("CloudX", "Banner bid-time revenue: ${cloudXAd.revenue} from ${cloudXAd.networkName}")
        Log.d("CloudX", "Banner realized revenue: ${cloudXAd.realizedRevenueUsd}")
    }
}
Banner ads auto-refresh by default. To control refresh manually:
bannerAd.stopAutoRefresh()  // Stop auto-refresh
bannerAd.load()             // Manually load a new ad
bannerAd.startAutoRefresh() // Re-enable auto-refresh
Optional placement and custom data for tracking:
bannerAd.setPlacement("home_screen")
bannerAd.setCustomData("level:5,coins:100")

MREC Ads (300x250)

class MainActivity : AppCompatActivity(), CloudXAdViewListener, CloudXAdRevenueListener {
    private lateinit var mrecAd: CloudXAdView

    private fun createMrecAd() {
        mrecAd = CloudX.createMREC(this, "your-mrec-ad-unit-id")
        mrecAd.listener = this
        mrecAd.revenueListener = this

        val layoutParams = LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT
        )
        layoutParams.gravity = Gravity.CENTER_HORIZONTAL
        findViewById<LinearLayout>(R.id.mrec_container).addView(mrecAd, layoutParams)
    }

    override fun onDestroy() {
        super.onDestroy()
        mrecAd.destroy()
    }

    // CloudXAdViewListener callbacks (same as Banner)
    override fun onAdLoaded(cloudXAd: CloudXAd) {
        Log.d("CloudX", "MREC ad loaded from ${cloudXAd.networkName}")
    }

    override fun onAdLoadFailed(adUnitId: String, cloudXError: CloudXError) {
        Log.e("CloudX", "MREC ad failed to load: ${cloudXError.message}")
    }

    override fun onAdClicked(cloudXAd: CloudXAd) {
        Log.d("CloudX", "MREC ad clicked")
    }

    override fun onAdExpanded(cloudXAd: CloudXAd) {
        Log.d("CloudX", "MREC ad expanded")
    }

    override fun onAdCollapsed(cloudXAd: CloudXAd) {
        Log.d("CloudX", "MREC ad collapsed")
    }

    // CloudXAdRevenueListener callback
    override fun onAdRevenuePaid(cloudXAd: CloudXAd) {
        Log.d("CloudX", "MREC bid-time revenue: ${cloudXAd.revenue} from ${cloudXAd.networkName}")
        Log.d("CloudX", "MREC realized revenue: ${cloudXAd.realizedRevenueUsd}")
    }
}
MREC ads also auto-refresh by default. Use the same refresh control methods as Banner ads.