앱 오프닝 광고 포맷 소개
앱 오프닝 광고는 다음과 같은 시점에 사용할 수 있는 화면 전체를 사용하는 광고 포맷입니다:- 앱 시작 시 로딩 화면에서 광고 표시
- 앱이 백그라운드에서 포그라운드로 전환될 때 광고 표시

광고 연동하기
시작하기에 따라 SDK를 먼저 초기화하세요. 아래 예제의YOUR_AD_UNIT_ID를 대시보드에서 확인한 해당 포맷의 Ad Unit Key로 바꾸세요.
1
adUnit 생성
대시보드에서 발급받은 Ad Unit Key를 사용하여 애드유닛을 설정합니다.
import droom.daro.core.appopen.DaroAppOpenAdManager
import droom.daro.core.adunit.DaroAppOpenAdUnit
val adUnit = DaroAppOpenAdUnit(
key = "YOUR_AD_UNIT_ID",
)
2
DaroAppOpenAdManager 생성 및 광고 로드
앱 오프닝 광고요청을 위한 DaroAppOpenAdManager를 생성합니다.
// Application 클래스의 onCreate 시점에 해당 코드를 호출해주세요.
val appOpenAdManager = DaroAppOpenAdManager.Builder(application)
.setAdUnit(adUnit)
.setAppOpenAdLoaderListener(object : DaroAppOpenAdLoaderListener {
override fun onAdLoadSuccess(ad: DaroAppOpenAd, adInfo: DaroAdInfo) {
// 광고 로드 성공
}
override fun onAdLoadFail(error: DaroError) {
// 광고 로드 실패
}
})
.setAppOpenAdListener(object : DaroAppOpenAdListener {
override fun onAdImpression(adInfo: DaroAdInfo) {
// 앱 오프닝 광고 임프레션 이벤트
}
override fun onAdClicked(adInfo: DaroAdInfo) {
// 앱 오프닝 광고 클릭 이벤트
}
override fun onShown(adInfo: DaroAdInfo) {
// 앱 오프닝 광고화면이 보여질때
}
override fun onDismiss(adInfo: DaroAdInfo) {
// 앱 오프닝 광고 화면이 닫혔을때
}
override fun onFailedToShow(adInfo: DaroAdInfo, error: DaroAdDisplayFailError) {
// 앱 오프닝 광고 화면을 보여주는데 실패했을때
}
})
.build()
// 광고 로드
appOpenAdManager.loadAd()
3
앱 오프닝 광고 표시
앱 오프닝 광고를 표시합니다.
// 1. Activity, Fragment, Composable 에서 직접 광고 호출이 필요하다면
appOpenAdManager.showIfAvailable(activity)
// 2. 앱이 background -> foreground 로 전환될때마다 호출이 필요하다면
// Application.ActivityLifecycleCallbacks를 구현해야 합니다.
class ActivityLifecycleCallbacks : Application.ActivityLifecycleCallbacks {
override fun onActivityStarted(activity: Activity) {
// (주의) 광고 표시 중 인지 체크해야 합니다.
if (!appOpenAdManager.isShowingAd()) {
appOpenAdManager.showIfAvailable(activity)
}
}
...
}
application.registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks())
4
DaroAppOpenAdManager 리소스 정리
앱 오프닝 광고가 더 이상 필요하지 않을 때 리소스를 정리합니다.
appOpenAdManager.destroy()
콜드 스타트 시 DaroAppOpenAdManager 초기화
import droom.daro.sdk.Daro
import droom.daro.core.appopen.DaroAppOpenAdManager
class MyApplication : Application() {
private lateinit var callbacks: Application.ActivityLifecycleCallbacks
private lateinit var appOpenAdManager: DaroAppOpenAdManager
override fun onCreate() {
super.onCreate()
Daro.init(this)
val adUnit = DaroAppOpenAdUnit(
key = "YOUR_AD_UNIT_ID"
)
appOpenAdManager = DaroAppOpenAdManager.Builder(this)
.setAdUnit(adUnit)
.setAppOpenAdLoaderListener(...)
.setAppOpenAdListener(...)
.build()
appOpenAdManager.loadAd()
this.callbacks = object : Application.ActivityLifecycleCallbacks {
override fun onActivityStarted(activity: Activity) {
if (!appOpenAdManager.isShowingAd()) {
appOpenAdManager.showIfAvailable(activity)
}
}
...
}
registerActivityLifecycleCallbacks(callbacks)
}
// 앱 오프닝 광고를 더이상 보여줄 필요가 없을때 호출
fun destroy() {
appOpenAdManager.destroy()
unregisterActivityLifecycleCallbacks(callbacks)
}
}

