Skip to main content
App Open ads are fullscreen placements intended for app foreground moments, such as when a user returns to your app after it has been backgrounded.

Supported Networks

App Open demand is served by the following bidding networks:
NetworkAdapter
MintegralMintegral
PanglePangle
VungleVungle
The Google Mobile Ads waterfall adapter also supports App Open placements for AdMob waterfall demand.
class MainActivity : AppCompatActivity(), CloudXAppOpenListener, CloudXAdRevenueListener {
    private lateinit var appOpenAd: CloudXAppOpenAd

    private fun createAppOpenAd() {
        appOpenAd = CloudX.createAppOpen(this, "your-app-open-ad-unit-id")
        appOpenAd.listener = this
        appOpenAd.revenueListener = this
        appOpenAd.load()
    }

    private fun showAppOpenAd() {
        if (appOpenAd.isAdReady) {
            appOpenAd.show(this, "app_foreground")
        }
    }

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

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

    override fun onAdDisplayed(cloudXAd: CloudXAd) {
        Log.d("CloudX", "App Open ad displayed")
    }

    override fun onAdDisplayFailed(cloudXAd: CloudXAd, cloudXError: CloudXError) {
        Log.e("CloudX", "App Open ad failed to display: ${cloudXError.message}")
        appOpenAd.load()
    }

    override fun onAdHidden(cloudXAd: CloudXAd) {
        appOpenAd.load()
    }

    override fun onAdClicked(cloudXAd: CloudXAd) {}

    // CloudXAdRevenueListener callback
    override fun onAdRevenuePaid(cloudXAd: CloudXAd) {
        Log.d("CloudX", "App Open bid-time revenue: ${cloudXAd.revenue}")
    }

    override fun onDestroy() {
        super.onDestroy()
        appOpenAd.destroy()
    }
}
Use App Open ads sparingly and only at natural app-open or app-resume transitions. Avoid showing one while the user is already interacting with app content.