Skip to main content

App Open Ad Format

App open ads are full-screen ad format that can be used at the following moments:
  • Display ads during app launch loading screen
  • Display ads when app transitions from background to foreground
App Open Ad Example

Integrating Ads

1

Create adUnit

Configure your ad unit using the ad unit ID issued from the dashboard.
val adUnit = DaroAppOpenAdUnit(
    unitId = ${AdUnitId},
    placement = ${placement}, // Name displayed in logs. Can be left empty.
)
2

Create Loader and load ad

Create an ad loader, set up listeners, and load the ad.
val loader = DaroAppOpenAdLoader(
    context = context,
    adUnit = adUnit
)

loader.setListener(object : DaroAppOpenAdLoaderListener {
    override fun onAdLoadSuccess(ad: DaroAppOpenAd, adInfo: DaroAdInfo) {
        // Ad loaded successfully
        daroAppOpenAd = ad
        setupAdListeners(ad)
    }

    override fun onAdLoadFail(error: DaroLoadError) {
        // Ad failed to load
        ...
    }
})

// Load ad
loader.loadAd()
3

Set listener and show ad

Set up display listeners for the loaded ad and show it.
private var daroAppOpenAd: DaroAppOpenAd? = null

private fun setupAdListeners(ad: DaroAppOpenAd) {
    ad.setListener(object : DaroAppOpenAdListener {
        override fun onAdImpression(adInfo: DaroAdInfo) {
            // App open ad impression event
        }

        override fun onAdClicked(adInfo: DaroAdInfo) {
            // App open ad click event
        }
        override fun onShown(adInfo: DaroAdInfo) {
            // When app open ad screen is shown
        }

        override fun onDismiss(adInfo: DaroAdInfo) {
            // When app open ad screen is dismissed
        }

        override fun onFailedToShow(adInfo: DaroAdInfo, error: DaroAdDisplayFailError) {
            // When failed to show app open ad screen
        }
    })
}

// Show ad (Activity required)
daroAppOpenAd.show(activity = this@MainActivity)
4

Clean up ad resources

Clean up resources when the activity is destroyed or the ad is no longer needed.
override fun onDestroy() {
    super.onDestroy()
    daroAppOpenAd?.destroy()
    daroAppOpenAd = null
}

Showing App Open Ads on Cold Start

class SplashActivity : AppCompatActivity() {
    private var daroAppOpenAd: DaroAppOpenAd? = null
    private var isAdShown = false

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_splash)

        loadDaroAppOpenAd()
    }

    private fun loadDaroAppOpenAd() {
        val adUnit = DaroAppOpenAdUnit(
            unitId = "your_appopen_unit_id",
            placement = "splash_screen"
        )

        val loader = DaroAppOpenAdLoader(
            context = this,
            adUnit = adUnit
        )

        loader.setListener(object : DaroAppOpenAdLoaderListener {
            override fun onAdLoadSuccess(ad: DaroAppOpenAd, adInfo: DaroAdInfo?) {
                daroAppOpenAd = ad

                ad.setListener(object : DaroAppOpenAdListener {
                    override fun onAdImpression(adInfo: DaroAdInfo) {
                        ...
                    }

                    override fun onAdClicked(adInfo: DaroAdInfo) {
                        ...
                    }

                    override fun onShown(adInfo: DaroAdInfo) {
                        isAdShown = true
                    }

                    override fun onDismiss(adInfo: DaroAdInfo) {
                        // Handle action when app open ad is dismissed (ex. navigate to main screen)
                        if (!isAdShown) {
                            val intent = Intent(this, MainActivity::class.java)
                            startActivity(intent)
                            finish()
                        }
                    }

                    override fun onFailedToShow(adInfo: DaroAdInfo, error: DaroAdDisplayFailError) {
                        // Handle action when unable to show app open ad.
                        ...
                    }
                })

                // Show ad
                ad.show(this@SplashActivity)
            }

            override fun onAdLoadFail(error: DaroLoadError) {
                // Handle action on ad load failure.
            }
        })

        // Load ad
        loader.loadAd()
    }

    override fun onDestroy() {
        super.onDestroy()
        daroAppOpenAd?.destroy()
        daroAppOpenAd = null
    }
}