리워드 비디오 형태 소개

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

광고 단위 설정

대시보드에서 발급받은 ad unit ID를 사용하여 광고 단위를 설정하세요.

extension DaroAdRewardedUnit {
    static let rewarded = DaroAdRewardedUnit(id: "...")
}

리워드 비디오 광고 구현

리워드 비디오 광고를 로드하고 표시하기 위한 코드 예제입니다.

import Daro

final class SampleVC: UIViewController {
    var rewardedAd: DaroRewardedAd?
	...

    func loadRewardedAd() {
        Task {
            self.rewardedAd = try await DaroRewardedAd.load(adUnit: .rewarded)
        }
    }

    func showRewardedAd() {
		// [선택사항] --
        // 서버 콜백 검사
        let options = DaroServerSideVerificationOptions()
        options.userIdentifier = "USER_ID"
        options.customRewardString = "CUSTOM_REWARD"
        self.rewardedAd?.serverSideVerificationOptions = options
        // --

        rewardedAd?.fullScreenDelegate = self
        guard rewardedAd?.canPresent(from: self) == true else { return }
        rewardedAd?.present(
            from: self,
            userDidEarnRewardHandler: {
                print("🤑 User did earn reward")
            }
        )
    }
}

extension SampleVC: DaroFullScreenAdDelegate {

    func didFailToPresent(with error: Error) {
        print("\(#function) error: \(error.localizedDescription)")
    }

    func willPresentFullScreenContent() {
        print("\(#function)")
    }

    func willDismissFullScreenContent() {
        print("\(#function)")
    }

    func didDismissFullScreenContent() {
        print("\(#function)")
    }

    func didRecordImpression() {
        print("\(#function)")
    }

    func didRecordClick() {
        print("\(#function)")
    }
}