Skip to main content

리워드 비디오 형태 소개

  • 광고 시청을 대가로 인앱 가치를 지닌 보상(재화, 기능, 컨텐츠 등)을 제공하는 형태의 광고입니다.
  • 보상을 대가로 시청하므로 동영상 광고의 스킵이 불가능하며 일반적인 길이는 30초입니다.
보상형 광고 예시

광고 연동하기

1

adUnit 생성

val adUnit = DaroRewardedAdUnit(
    key = ${AdUnitId},
    placement = ${placement}, //로그 상 보여질 이름입니다. 공백을 보내도 무관합니다.
)
2

Loader 생성 및 광고 로드

val loader = DaroRewardedAdLoader(
    context = context,
    adUnit = adUnit
)
loader.setListener(object : DaroRewardedAdLoaderListener {
    override fun onAdLoadSuccess(ad: DaroRewardedAd, adInfo: DaroAdInfo) {
        // ...
    }
    override fun onAdLoadFail(err: DaroAdLoadError) {
        // ...
    }
})
loader.load()
3

리스너 설정 및 광고 표시

loader.setListener(object : DaroRewardedAdLoaderListener {
    override fun onAdLoadSuccess(ad: DaroRewardedAd, adInfo: DaroAdInfo) {
        ad.setListener(object : DaroRewardedAdListener {
            override fun onShown(adInfo: DaroAdInfo) {}
            override fun onFailedToShow(adInfo: DaroAdInfo, error: DaroAdDisplayFailError) {}
            override fun onDismiss(adInfo: DaroAdInfo) {}
            override fun onEarnedReward(adInfo: DaroAdInfo, rewardItem: DaroRewardedAd.DaroRewardedItem) {}
        })
        ad.show(activity = this@MainActivity)
    }
    override fun onAdLoadFail(err: DaroAdLoadError) {}
})
4

광고 시청 완료 후 destroy 호출

ad.destroy()
아래와 같은 방법으로 서버 콜백 메서드를 설정할 수 있습니다.
  loader.setListener(object : DaroRewardedAdLoaderListener {
      override fun onAdLoadSuccess(ad: DaroRewardedAd, adInfo: DaroAdInfo) {
          ...
          Daro.setUserId(context = context, ${user_id})
          ad.setCustomData(${custom_data})
          ...
      }
      ...
  })

Example

private fun showRewardAd() {
    DaroRewardedAdLoader(
      context = context,
      adUnit = DaroRewardedAdUnit(
        key = ${AdUnitId},
        placement = ${placement}
      )
    ).apply {
      setListener(
        object : DaroRewardedAdLoaderListener {
          override fun onAdLoadSuccess(ad: DaroRewardedAd, adInfo: DaroAdInfo) {
            Log.d("Ad Test", "rewarded - success")

            ad.setListener(
              object : DaroRewardedAdListener {
                override fun onShown(adInfo: DaroAdInfo) {
                  Log.d("Ad Test", "rewarded - onShown")
                }

                override fun onFailedToShow(
                  adInfo: DaroAdInfo,
                  error: DaroAdDisplayFailError,
                ) {
                  Log.d("Ad Test", "rewarded - onFailedToShow")
                }

                override fun onDismiss(adInfo: DaroAdInfo) {
                  Log.d("Ad Test", "rewarded - onDismiss")
                  ad.destroy()
                }

                override fun onEarnedReward(
                  adInfo: DaroAdInfo,
                  rewardItem: DaroRewardedAd.DaroRewardedItem,
                ) {
                  Log.d("Ad Test", "rewarded - onEarnedReward")
                }
              },
            )

            Daro.setUserId(context = context, ${user_id})
            ad.setCustomData(${custom_data})

            ad.show(activity = this@MainActivity)
          }
        })
      load()
    }
  }
I