...
위 Step 2에서 생성한 광고 컴포넌트에 Ad 의 각 요소를 세팅합니다.
NativeAdView
에MediaView
,ad
를 세팅합니다.clickableViews
list를 생성하여 광고 클릭이 가능하도록 설정할 영역을 지정합니다. 해당 뷰 영역을 클릭 시 광고 랜딩 페이지로 이동하게 됩니다.Code Block language objective-c // Objective-C - (void)renderAd(BABAd *ad) { // 1) self.titleLabel.text = ad.creative.title; // description 필드가 objc 객체에 기본으로 있어서 body로 컨버팅 하여 사용 self.descriptionLabel.text = ad.creative.body; [self.iconImageView sd_setImageWithURL:[NSURL URLWithString:ad.creative.iconUrl]]; self.ctaLabel.text = [NSString stringWithFormat:@"+%d %@", (int)ad.reward, ad.creative.callToAction]; [self.rewardIcon setImage:[UIImage imageNamed:@"point_icon"]]; // 2) self.adView.ad = ad; self.adView.mediaView = self.mediaView; // 3) self.adView.clickableViews = @[self.ctaButton, self.iconImageView]; }
Code Block language swift // Swift func renderAd(ad: BABAd) { // 1) self.titleLabel.text = ad.creative.title // description 필드가 objc 객체에 기본으로 있어서 body로 컨버팅 하여 사용 self.descriptionLabel.text = ad.creative.body self.iconImageView.sd_setImage(with: URL(string: ad.creative.iconUrl)) self.ctaLabel.text = "+\(ad.reward) \(ad.creative.callToAction)" self.rewardIcon.image = UIImage(named: "point_icon") // 2) self.adView.ad = ad self.adView.mediaView = self.mediaView // 3) self.adView.clickableViews = [self.ctaButton, self.iconImageView] }
Step 4: BABNativeAdViewDelegate
, BABNativeAdViewVideoDelegate
를 통해 ad 이벤트 처리
BABAdView에 delegate를 delegate와 videoDelegate를 설정하여 광고에 대한 이벤트를 전달 받을 수 있습니다. (광고의 상태별 콜백에 대해 다양한 커스터마이즈를 원하는 경우 콜백의 정의 및 동작은 광고 노출/클릭/참여와 관련한 콜백 변화 문서 참고)
Code Block | ||
---|---|---|
| ||
// Objective-C @interface SampleViewController: UIViewController <BABNativeAdViewDelegate> @end @implementation SampleViewController - (void)viewDidLoad { adView.deleagte = self; } #pragma mark - BABNativeAdViewDelegate // 광고가 impress 되었을 때 호출됩니다. - (void)BABNativeAdView:(BABNativeAdView *)adView didImpressAd:(BABAd *)ad { } // 광고가 click 되었을 때 호출됩니다. - (void)BABNativeAdView:(BABNativeAdView *)adView didClickAd:(BABAd *)ad { } // 리워드 요청이 시작될 때 호출됩니다. - (void)BABNativeAdView:(BABNativeAdView *)adView willRequestRewardForAd:(BABAd *)ad { } // 리워드 요청이 완료되었을 때 호출됩니다. 결과는 `result` 인자에 담겨있습니다. - (void)BABNativeAdView:(BABNativeAdView *)adView didRewardForAd:(BABAd *)ad withResult:(BABRewardResult)result { } // 광고에 참여 완료 되었을 때 호출됩니다. 이곳에서 UI를 참여 완료 상태로 변경합니다. - (void)BABNativeAdView:(BABNativeAdView *)adView didParticipateAd:(BABAd *)ad { [self.rewardIcon setImage:[UIImage imageNamed:@"participated_icon"]]; } #pragma mark - BABNativeAdViewVideoDelegate - (void)BABNativeAdViewWillStartPlayingVideo:(BABNativeAdView *)adView { } - (void)BABNativeAdViewDidResumeVideo:(BABNativeAdView *)adView { } - (void)BABNativeAdViewWillReplayVideo:(BABNativeAdView *)adView { } - (void)BABNativeAdViewDidPauseVideo:(BABNativeAdView *)adView { } - (void)BABNativeAdView:(BABNativeAdView *)adView didFinishPlayingVideoAd:(BABAd *)ad { } @end |
Code Block | ||
---|---|---|
| ||
// Swift class SampleViewController: UIViewController, BABNativeAdViewDelegate { override func viewDidLoad { adView.deleagte = self } // 광고가 impress 되었을 때 호출됩니다. func babNativeAdView(_ adView: BABNativeAdView, didImpress ad: BABAd) { } // 광고가 click 되었을 때 호출됩니다. func babNativeAdView(_ adView: BABNativeAdView, didClick ad: BABAd) { } // 리워드 요청이 시작될 때 호출됩니다. func babNativeAdView(_ adView: BABNativeAdView, willRequestRewardFor ad: BABAd) { } // 리워드 요청이 완료되었을 때 호출됩니다. 결과는 `result` 인자에 담겨있습니다. func babNativeAdView(_ adView: BABNativeAdView, didRewardFor ad: BABAd, with result: BABRewardResult) { } // 광고에 참여 완료 되었을 때 호출됩니다. 이곳에서 UI를 참여 완료 상태로 변경합니다. func babNativeAdView(_ adView: BABNativeAdView, didParticipateAd ad: BABAd) { self.rewardIcon.image = UIImage(named: "participated_icon") } func babNativeAdViewWillStartPlayingVideo(_ adView: BABNativeAdView) { } func babNativeAdViewDidResumeVideo(_ adView: BABNativeAdView) { } func babNativeAdViewWillReplayVideo(_ adView: BABNativeAdView) { } func babNativeAdViewDidPauseVideo(_ adView: BABNativeAdView) { } func babNativeAdView(_ adView: BABNativeAdView, didFinishPlayingVideoAd ad: BABAd) { } } |
Advanced Usage
...
복수 개의 Native 광고 로드하기
...