Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 위 Step 2에서 생성한 광고 컴포넌트에 Ad 의 각 요소를 세팅합니다.

  2. NativeAdView 에 MediaViewad 를 세팅합니다.

  3. clickableViews list를 생성하여 광고 클릭이 가능하도록 설정할 영역을 지정합니다. 해당 뷰 영역을 클릭 시 광고 랜딩 페이지로 이동하게 됩니다.

    Code Block
    languageobjective-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
    languageswift
    // 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: BABNativeAdViewDelegateBABNativeAdViewVideoDelegate를 통해 ad 이벤트 처리

BABAdView에 delegate를 delegate와 videoDelegate를 설정하여 광고에 대한 이벤트를 전달 받을 수 있습니다. (광고의 상태별 콜백에 대해 다양한 커스터마이즈를 원하는 경우 콜백의 정의 및 동작은 광고 노출/클릭/참여와 관련한 콜백 변화 문서 참고)

Code Block
languageobjective-c
// 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
languageswift
// 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 광고 로드하기

...