Versions Compared

Key

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

목차

Table of Contents
minLevel1
maxLevel1
exclude목차

개요

...

본 가이드는 BuzzAd iOS SDK의 Native 지면을 연동하는 방법은 안내합니다. Native 지면은 광고 지면 레이아웃을 직접 구성한 후, 버즈빌 서버로부터 광고 데이터를 할당받아 광고 지면에 표시합니다

준비사항

  • 2. 시작하기 적용 완료

  • Native 지면에 사용할 Unit ID (이하 YOUR_NATIVE_UNIT_ID)

광고 레이아웃 구성

...

Native 지면은 광고 레이아웃을 자유롭게 구성하여 노출하는 지면입니다. 광고 레이아웃의 최상위 컴포넌트는 BABNativeAdView이며, 아래 컴포넌트는 BABNativeAdView의 하위 컴포넌트로 구현해야 합니다.

...

Expand
titleSwift
Code Block
languageswift
class ViewController: UIViewController {
  // Native 관련 뷰
  private var adView = BABNativeAdView()
  private var mediaView = BABMediaView()
  private var titleLabel = UILabel()
  ...
  
  override func viewDidLoad() {
    super.viewDidLoad()
 
    view.addSubview(self.adView)
    adView.addSubview(self.mediaView)
    adView.addSubview(self.titleLabel)
    ...
    
    // LayoutConstraint 설정
    ...
  }
}

광고 요청

광고 레이아웃에 추가할 광고를 할당받습니다.

BABAdLoaderloadAd를 실행하면 광고 데이터를 요청합니다. 다음은 광고 할당 요청 예시입니다.

...

Expand
titleSwift
Code Block
languageswift
let adLoader = BABAdLoader(unitId: "YOUR_NATIVE_UNIT_ID")
// 버즈빌 서버에서 광고 정보를 받아옵니다
adLoader.loadAdWith(onSuccess: { ad in
  self.renderAd(ad: ad)
}, onFailure: { error in
  // 광고가 없을 경우 호출됩니다. error를 통해 발생한 error의 원인을 알 수 있습니다
})

renderAd는 아래 광고 표시를 참고하시기 바랍니다.

광고 표시

할당받은 광고 데이터를 직접 구현한 광고 레이아웃에 추가합니다. 다음은 광고를 표시하는 예시입니다. (아래 예시에서는 SDWebImage 라이브러리를 사용하였습니다.)

...

Expand
titleSwift
Code Block
languageswift
func renderAd(ad: BABAd) {
  // (1) Ad 의 각 요소를 세팅합니다.
  self.titleLabel.text = ad.creative.title
  self.descriptionLabel.text = ad.creative.body
    
  if let urlString = ad.creative.iconUrl {
    self.iconImageView.sd_setImage(with: URL(string: urlString))
  }
  self.ctaLabel.text = "\(Int(ad.reward))P \(ad.creative.callToAction ?? "디폴트 스트링")"
  self.rewardIcon.image = UIImage(named: "point_icon")
    
  // (2) NativeAdView 에 다음의 항목을 추가합니다.
  self.adView.ad = ad
  self.adView.mediaView = self.mediaView

  // (3) 광고 클릭이 가능한 영역을 지정합니다.
  self.adView.clickableViews = [self.ctaButton, self.iconImageView]
}

광고 이벤트 수신

사용자가 광고와 상호작용하면서 발생하는 이벤트를 수신할 수 있습니다. 일반 광고와 동영상 광고에 따라 리스너가 상이합니다. 광고 참여 후 문구 변경 등을 이벤트를 수신하여 처리할 수 있습니다.

...