(iOS v3.0.x) 3. Native 마이그레이션 가이드
목차
- 1 개요
- 2 주요 변경 사항
- 3 Native 기본 설정
- 3.1 광고 레이아웃 구성하기
- 3.2 광고 할당 및 표시하기
- 4 Native 고급 설정
- 4.1 CTA 버튼 자체 구현하기
- 4.2 한 번에 여러 개의 광고 로드하기
- 4.3 광고 이벤트 리스너 등록하기
- 4.4 비디오 광고 리스너 등록하기
- 5 API 변경 내역
개요
이 장에서는 BuzzAd iOS용 SDK 버전을 3.0으로 업데이트하기 위해 필요한 Native 지면의 설정을 안내합니다.
주요 변경 사항
BuzzAd iOS용 SDK의 공통 변경 사항 및 아래의 사항이 변경되었습니다.
Native 지면 클래스
BABAdLoader
를BZVBuzzAdNative
로 변경했습니다.광고를 표시할 때 광고 데이터를 자동으로 바인딩하는 기능을 추가했습니다.
광고 요청에 대한 응답으로
BABAd
객체 대신BZVNativeAd
를 반환하도록 변경했습니다.BZVNativeAd
객체는 광고를 보여주기 위해 필요한 정보 이외에 불필요한 정보를 포함하지 않습니다.BZVCtaViewProtocol
을 준수하는 클래스를 사용하여 CTA 버튼을 자체 구현하도록 변경했습니다.
Native 기본 설정
광고 레이아웃 구성하기
BuzzAd iOS용 SDK 3.0에서는 BABNativeAdView
, BABMediaView
를 각각 BZVNativeAdView
와 BZVMediaView
로 변경했습니다.
Native 광고 레이아웃을 구성하려면 기존의 BABNativeAdView
와 BABMediaView
를 각각 BZVNativeAdView
와 BZVMediaView
로 변경하세요.
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 광고를 할당받고 표시하려면 아래의 순서대로 기존 코드를 수정하세요.
BABAdLoader
클래스를 삭제하세요.빌더 블록을 이용해
BZVBuzzAdNative
를 생성하세요.BZVNativeAdRequest
데이터 객체를 생성해[BZVBuzzAdNative loadAdWithAdRequest:]
를 호출하세요.renderAd
함수에서 광고 데이터를 수동으로 바인딩하는 코드를 삭제하고BZVNativeAdViewBinder
를 사용하여 자동으로 바인딩하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
Native 고급 설정
CTA 버튼 자체 구현하기
BuzzAd iOS용 SDK 3.0에서는 CTA 버튼을 자체 구현할 때 사용할 수 있는 BZVCtaViewProtocol
을 제공합니다. BZVCtaViewProtocol
을 준수하는 클래스는 광고 데이터를 바인딩할 때 BZVNativeAdViewBinder
의 ctaView
인자로 설정할 수 있으며 자동으로 CTA 버튼의 상태에 따라 UI가 업데이트 됩니다.
CTA 버튼을 자체 구현하려면 아래의 순서대로 기존 코드를 수정하세요.
광고 레이아웃을 구성하는 클래스의
updateCtaButtonWithAd
함수에서 CTA 뷰의 UI를 업데이트하는 코드를 삭제하세요.BABNativeAdViewDelegate
의 콜백에서updateCtaButtonWithAd
함수를 호출하는 코드를 삭제하세요.CtaViewProtocol
을 준수하는UIView
클래스의 서브클래스를 생성하세요.광고 레이아웃을 구성하는 클래스에서 이전 단계에서 생성한 CTA 버튼 클래스를 사용하세요.
광고 데이터를 바인딩할 때
ctaView
인자로 자체 구현한 CTA 버튼을 설정하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
한 번에 여러 개의 광고 로드하기
기존에 한 번에 여러 개의 광고를 로드하는 기능을 사용하는 경우에만 해당합니다.
BuzzAd iOS용 SDK 3.0에서는 여러 개의 광고를 로드할 때 BZVNativeAdsRequest
클래스를 사용하도록 변경했습니다. 한 번에 여러 개의 광고를 요청하려면 아래의 순서대로 기존 코드를 수정하세요.
BABAdLoader
클래스를 삭제하세요.빌더 블록을 이용해
BZVBuzzAdNative
를 생성하세요..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에서는 BABNativeAdViewDelegate
를 BZVNativeAdEventDelegate
로 변경하고 BABNativeAdView
가 아닌 BZVNativeAd
의 delegate으로 설정하도록 변경했습니다.
광고 이벤트 리스너를 등록하려면 아래의 순서대로 기존 코드를 수정하세요.
BABNativeAdView
에서 delegate를 설정하는 코드를 삭제하세요.BABNativeAdViewDelegate
를BZVNativeAdEventDelegate
로 변경하세요.renderAd
호출 시점에 ad 객체에BZVNativeAdEventDelegate
를 설정하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
비디오 광고 리스너 등록하기
BuzzAd iOS용 SDK 3.0에서는 BABNativeAdViewVideoDelegate
를 BZVNativeAdViewVideoDelegate
로 변경했습니다.
비디오 광고 리스너를 등록하려면 기존의 BABNativeAdViewVideoDelegate
을 BZVNativeAdViewVideoDelegate
으로 변경하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
API 변경 내역
2.x (변경 전) | 3.0 (변경 후) | 설명 |
---|---|---|
|
| 클래스의 이름을 변경했습니다. |
|
| 클래스의 이름을 변경했습니다. |
|
| 클래스의 이름을 변경했습니다. |
|
|
|
|
| 함수의 이름을 변경하고 |
N/A |
| 클래스를 추가했습니다. |
N/A |
| 클래스를 추가했습니다. |
|
| 클래스의 이름을 변경했습니다. |
|
| 클래스의 이름을 변경했습니다. |