class ExampleViewController: UIViewController {
private var daroRewardedAd: DaroRewardedAd? = nil
let daroRewardedLoader = DaroRewardedAdLoader(unit: rewardAdUnit)
override func viewDidLoad() {
super.viewDidLoad()
setupRewardedAd()
}
private func setupRewardedAd() {
// 광고 로드 성공 리스너
daroRewardedLoader.listener.onAdLoadSuccess = { [weak self] ad, adInfo in
print("[DARO] Listener Reward Ad loaded: \(ad) \(adInfo)")
self?.showAd(ad: ad)
}
// 광고 클릭 리스너
daroRewardedLoader.listener.onAdClicked = { adInfo in
print("[DARO] Listener Reward Ad clicked: \(adInfo)")
}
// 광고 노출 리스너
daroRewardedLoader.listener.onAdImpression = { adInfo in
print("[DARO] Listener Reward Ad impression: \(adInfo)")
}
// 광고 로드 실패 리스너
daroRewardedLoader.listener.onAdLoadFail = { error in
print("[DARO] Listener Reward Ad failed: \(error)")
}
daroRewardedLoader.loadAd()
}
private func showAd(ad: DaroRewardedAd) {
self.daroRewardedAd = ad
// 보상 획득 리스너
self.daroRewardedAd?.rewardedAdListener.onEarnedReward = { adInfo, rewardedItem in
print("[DARO] Listener Reward Ad earned: \(adInfo) \(rewardedItem)")
}
// 광고 표시 성공 리스너
self.daroRewardedAd?.rewardedAdListener.onShown = { adInfo in
print("[DARO] Listener Reward Ad shown: \(adInfo)")
}
// 광고 닫힘 리스너
self.daroRewardedAd?.rewardedAdListener.onDismiss = { adInfo in
print("[DARO] Listener Reward Ad dismissed: \(adInfo)")
}
// 광고 표시 실패 리스너
self.daroRewardedAd?.rewardedAdListener.onFailedToShow = { adInfo, error in
print("[DARO] Listener Reward Ad failed to show: \(adInfo) \(error)")
}
showRewardedAd()
}
private func showRewardedAd() {
daroRewardedAd?.show(viewController: self)
}
}