메인 콘텐츠로 건너뛰기

앱 오프닝 광고 형태 소개

앱 오프닝 광고는 다음과 같은 시점에 사용할 수 있는 전면 광고 형식입니다:
  • 앱 시작 시 로딩 화면에서 광고 표시
  • 앱이 백그라운드에서 포그라운드로 전환될 때 광고 표시
앱 오프닝 광고 예시

광고 연동하기

1

adUnit 생성

대시보드에서 발급받은 ad unit ID를 사용하여 광고 단위를 설정합니다.
val adUnit = DaroAppOpenAdUnit(
    unitId = ${AdUnitId},,
    placement = ${placement}, // 로그 상 보여질 이름입니다. 공백을 보내도 무관합니다.
)
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: DaroLoadError) {
            // 광고 로드 실패
        }
    })
    .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 초기화

class MyApplication : Application() {

    private lateinit var appOpenAdManager: DaroAppOpenAdManager

    override fun onCreate() {
        super.onCreate()

        val adUnit = DaroAppOpenAdUnit(
            unitId = "your_appopen_unit_id",
            placement = "placement"
        )

        appOpenAdManager = DaroAppOpenAdManager.Builder(this)
            .setAdUnit(adUnit)
            .setAppOpenAdLoaderListener(...)
            .setAppOpenAdListener(...)
            .build()

        appOpenAdManager.loadAd()

        val callbacks = object : Application.ActivityLifecycleCallbacks {
           override fun onActivityStarted(activity: Activity) {
                if (appOpenAdManager.isShowingAd()) {
                    appOpenAdManager.showIfAvailable()
                }
            }

            ...
        }

        registerActivityLifecycleCallbacks(callbacks)
    }

    // 앱 오프닝 광고를 더이상 보여줄 필요가 없을때 호출
    fun destroy() {
        appOpenAdManager.destroy()
    }
}