(iOS v3.0.x) 3. Native 마이그레이션 가이드

목차

개요

이 장에서는 BuzzAd iOS용 SDK 버전을 3.0으로 업데이트하기 위해 필요한 Native 지면의 설정을 안내합니다.

 

주요 변경 사항

BuzzAd iOS용 SDK의 공통 변경 사항 및 아래의 사항이 변경되었습니다.

  • Native 지면 클래스 BABAdLoaderBZVBuzzAdNative로 변경했습니다.

  • 광고를 표시할 때 광고 데이터를 자동으로 바인딩하는 기능을 추가했습니다.

  • 광고 요청에 대한 응답으로 BABAd 객체 대신 BZVNativeAd를 반환하도록 변경했습니다. BZVNativeAd 객체는 광고를 보여주기 위해 필요한 정보 이외에 불필요한 정보를 포함하지 않습니다.

  • BZVCtaViewProtocol을 준수하는 클래스를 사용하여 CTA 버튼을 자체 구현하도록 변경했습니다.

 

Native 기본 설정

광고 레이아웃 구성하기

BuzzAd iOS용 SDK 3.0에서는 BABNativeAdView, BABMediaView를 각각 BZVNativeAdViewBZVMediaView로 변경했습니다.

Native 광고 레이아웃을 구성하려면 기존의 BABNativeAdViewBABMediaView를 각각 BZVNativeAdViewBZVMediaView로 변경하세요.

Objective-C
2.x (변경 전)
@import BuzzAdBenefit; @interface ViewController () @property (nonatomic, strong, readonly) BABNativeAdView *nativeAdView; @property (nonatomic, strong, readonly) BABMediaView *mediaView; ...생략... @end
3.x (변경 후)
@import BuzzAdBenefit; @interface ViewController () @property (nonatomic, strong, readonly) BZVNativeAdView *nativeAdView; @property (nonatomic, strong, readonly) BZVMediaView *mediaView; ...생략... @end
Swift
2.x (변경 전)
import BuzzAdBenefit final class ViewController: UIViewController { let nativeAdView = BABNativeAdView(frame: .zero) let mediaView = BABMediaView(frame: .zero) ...생략... }
3.x (변경 후)

광고 할당 및 표시하기

BuzzAd iOS용 SDK 3.0에서는 BABAdLoader 클래스를 BZVBuzzAdNative로 변경하고 광고를 표시할 때 광고 데이터를 자동으로 바인딩하는 기능을 제공합니다. 또한, 광고 요청에 대한 응답으로 BABAd 객체 대신 BZVNativeAd를 반환하도록 변경했습니다.

Native 광고를 할당받고 표시하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABAdLoader 클래스를 삭제하세요.

  2. 빌더 블록을 이용해 BZVBuzzAdNative를 생성하세요.

  3. BZVNativeAdRequest 데이터 객체를 생성해 [BZVBuzzAdNative loadAdWithAdRequest:]를 호출하세요.

  4. renderAd 함수에서 광고 데이터를 수동으로 바인딩하는 코드를 삭제하고 BZVNativeAdViewBinder를 사용하여 자동으로 바인딩하세요.

Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)

 

Native 고급 설정

CTA 버튼 자체 구현하기

BuzzAd iOS용 SDK 3.0에서는 CTA 버튼을 자체 구현할 때 사용할 수 있는 BZVCtaViewProtocol을 제공합니다. BZVCtaViewProtocol을 준수하는 클래스는 광고 데이터를 바인딩할 때 BZVNativeAdViewBinderctaView 인자로 설정할 수 있으며 자동으로 CTA 버튼의 상태에 따라 UI가 업데이트 됩니다.

CTA 버튼을 자체 구현하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. 광고 레이아웃을 구성하는 클래스의 updateCtaButtonWithAd 함수에서 CTA 뷰의 UI를 업데이트하는 코드를 삭제하세요.

  2. BABNativeAdViewDelegate의 콜백에서 updateCtaButtonWithAd 함수를 호출하는 코드를 삭제하세요.

  3. CtaViewProtocol을 준수하는 UIView 클래스의 서브클래스를 생성하세요.

  4. 광고 레이아웃을 구성하는 클래스에서 이전 단계에서 생성한 CTA 버튼 클래스를 사용하세요.

  5. 광고 데이터를 바인딩할 때 ctaView 인자로 자체 구현한 CTA 버튼을 설정하세요.

Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)

한 번에 여러 개의 광고 로드하기

기존에 한 번에 여러 개의 광고를 로드하는 기능을 사용하는 경우에만 해당합니다.

BuzzAd iOS용 SDK 3.0에서는 여러 개의 광고를 로드할 때 BZVNativeAdsRequest 클래스를 사용하도록 변경했습니다. 한 번에 여러 개의 광고를 요청하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABAdLoader 클래스를 삭제하세요.

  2. 빌더 블록을 이용해 BZVBuzzAdNative를 생성하세요..

  3. BZVNativeAdsRequest 데이터 객체를 생성해 [BZVBuzzAdNative loadAdsWithAdsRequest:]를 호출하세요.

Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)

광고 이벤트 리스너 등록하기

기존에 광고 이벤트를 수신하는 경우에만 해당합니다.

  • 광고 참여 상태에 따라 CTA View를 변경하기 위해 이벤트 리스너를 사용했다면, 더 이상 사용할 필요 없습니다.

  • BuzzAd iOS용 SDK 3.0부터는 CTA View상태를 bind하는 방식으로 변경했기 때문에, CTA View 상태 변경 외에 각 이벤트 별 구현이 필요할 경우에만 아래 가이드를 적용하세요.

BuzzAd iOS용 SDK 3.0에서는 BABNativeAdViewDelegateBZVNativeAdEventDelegate로 변경하고 BABNativeAdView가 아닌 BZVNativeAd의 delegate으로 설정하도록 변경했습니다.

광고 이벤트 리스너를 등록하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABNativeAdView에서 delegate를 설정하는 코드를 삭제하세요.

  2. BABNativeAdViewDelegateBZVNativeAdEventDelegate로 변경하세요.

  3. renderAd 호출 시점에 ad 객체에 BZVNativeAdEventDelegate를 설정하세요.

Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)

비디오 광고 리스너 등록하기

BuzzAd iOS용 SDK 3.0에서는 BABNativeAdViewVideoDelegateBZVNativeAdViewVideoDelegate로 변경했습니다.

비디오 광고 리스너를 등록하려면 기존의 BABNativeAdViewVideoDelegateBZVNativeAdViewVideoDelegate으로 변경하세요.

Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)

 

API 변경 내역

2.x (변경 전)

3.0 (변경 후)

설명

2.x (변경 전)

3.0 (변경 후)

설명

BABNativeAdView

BZVNativeAdView

클래스의 이름을 변경했습니다.

BABMediaView

BZVMediaView

클래스의 이름을 변경했습니다.

BABAdLoader

BZVBuzzAdNative

클래스의 이름을 변경했습니다.

[BABAdLoader loadAdWithOnSuccess:onFailure]

[BZVBuzzAdNative loadAdWithAdRequest:onSuccess:onFailure]

BZVNativeAdRequest 인자를 요구하도록 변경했습니다.

[BABAdLoader loadAdsWithSize:onSuccess:onFailure]

[BZVBuzzAdNative loadAdsWithAdsRequest:onSuccess:onFailure]

함수의 이름을 변경하고 BZVNativeAdsRequest 인자를 요구하도록 변경했습니다.

N/A

BZVNativeAdReuqest

클래스를 추가했습니다.

N/A

BZVNativeAdsReuqest

클래스를 추가했습니다.

BABNativeAdViewDelegate

BZVNativeAdEventDelegate

클래스의 이름을 변경했습니다. BABNativeAdView가 아닌 BZVNativeAd의 delegate로 설정하도록 변경했습니다.

BABNativeAdViewVideoDelegate

BZVNativeAdViewVideoDelegate

클래스의 이름을 변경했습니다.