(iOS v3.0.x) 2. Feed 마이그레이션 가이드
목차
- 1 개요
- 2 주요 변경 사항
- 3 Feed 기본 설정
- 3.1 Feed 지면 초기화하기
- 3.2 Feed 지면 표시하기
- 3.3 광고 할당 및 표시하기
- 4 Feed 고급 설정
- 4.1 광고 분류 기능
- 4.2 무한 스크롤 기능
- 4.3 헤더 영역 자체 구현하기
- 4.4 광고 디자인 자체 구현하기
- 4.5 사용자 활동 추적 권한의 허용 관련 기능
- 5 Feed 디자인 커스터마이징
- 5.1 탭 디자인 변경하기
- 5.2 필터 디자인 변경하기
- 6 API 변경 내역
개요
이 장에서는 BuzzAd iOS용 SDK 버전을 3.0으로 업데이트하기 위해 필요한 Feed 지면의 설정을 안내합니다.
주요 변경 사항
BuzzAd iOS용 SDK의 공통 변경 사항 및 아래의 사항이 변경되었습니다.
Feed 지면 클래스
BABFeedHandler
를BZVBuzzAdFeed
로 변경했습니다.Feed 지면의 기본 설정을
BuzzAdBenefit
의setDefaultFeedConfig
로 설정하는 기능이 추가되었습니다.
Feed 기본 설정
Feed 지면 초기화하기
BuzzAd iOS용 SDK 3.0에서는 BABFeedHandler
를 생성할 때마다 설정하던 BABFeedConfig
를 BuzzAdBenefit
초기화 시점에 BZVFeedConfig
를 설정하도록 변경했습니다.
Feed 지면을 초기화하려면 빌더 블록을 이용해 BZVFeedConfig
를 생성하고 BuzzAdBenefit
을 초기화할 때 BZVConfig
의 defaultFeedConfig
로 설정하세요.
Objective-C
2.x (변경 전)
@import BuzzAdBenefit;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BABConfig *config = [[BABConfig alloc] initWithAppId:@"YOUR_APP_ID"];
[BuzzAdBenefit initializeWithConfig:config];
return YES;
}
@end
3.x (변경 후)
@import BuzzAdBenefit;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BZVConfig *config = [BZVConfig configWithBlock:^(BZVConfigBuilder * _Nonnull builder) {
builder.appId = @"YOUR_APP_ID";
builder.defaultFeedConfig = [BZVFeedConfig configWithBlock:^(BZVFeedConfigBuilder * _Nonnull builder) {
builder.unitId = @"YOUR_FEED_UNIT_ID";
}];
}];
[BuzzAdBenefit initializeWithConfig:config];
return YES;
}
@end
Swift
2.x (변경 전)
import BuzzAdBenefit
@main
final class AppDelegateSwift: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let config = BABConfig(appId: "YOUR_APP_ID")
BuzzAdBenefit.initialize(with: config)
return true
}
}
3.x (변경 후)
Feed 지면 표시하기
BuzzAd iOS용 SDK 3.0에서는 BABFeedHandler
를 BZVBuzzAdFeed
로 변경했습니다. 또한, BABFeedHandler
를 생성할 때마다 설정하던 BABFeedConfig
를 BuzzAdBenefit
초기화 시점에 BZVFeedConfig
를 1회만 설정하면 되도록 변경했습니다.
Feed 지면을 표시하려면 아래의 순서대로 기존 코드를 수정하세요.
BABFeedConfig
를 생성하고BABFeedHandler
생성자의 인자로 넘겨주는 코드를 삭제하세요.BABFeedHandler
를 사용하여 Feed 지면을 표시하는 코드를 삭제하세요.빌더 블록을 이용하여
BZVBuzzAdFeed
를 생성하세요.BZVBuzzAdFeed
를 사용하여 Feed 지면을 표시하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
광고 할당 및 표시하기
기존에 Feed를 표시하기 전 광고 할당 기능을 사용하는 경우에만 해당합니다.
BuzzAd iOS용 SDK 3.0에서는 preload
함수를 load
로 변경했습니다.
광고 할당 후에 Feed 지면을 표시하려면 기존의 feedHandler
를 buzzAdFeed
로 변경하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
Feed 고급 설정
광고 분류 기능
기존에 광고 분류 기능을 사용하고 있는 경우에만 해당합니다.
코드를 수정하거나 앱을 재배포하지 않고도 Feed 지면의 탭, 필터를 활성화 또는 비활성화할 수 있습니다. 탭, 필터의 설정을 변경하려면 버즈빌 담당자에게 연락하세요.
BuzzAd iOS용 SDK 3.0에서는 광고를 분류하기 위한 탭, 필터 기능이 기본적으로 활성화되도록 변경했습니다.
광고 분류 기능을 설정하려면 BABFeedConfig
에서 tabUiEnabled
, filterUiEnabled
를 설정하는 코드를 삭제하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
무한 스크롤 기능
BuzzAd iOS용 SDK 3.0에서는 무한 스크롤 기능이 기본적으로 활성화되도록 변경했습니다.
무한 스크롤 기능을 설정하려면 BABFeedConfig
에서 autoLoadingEnabled
를 설정하는 코드를 삭제하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
헤더 영역 자체 구현하기
BuzzAd iOS용 SDK 3.0에서는 헤더 영역을 자체 구현하기 위해 필요한 클래스의 이름을 변경했습니다. 또한, Swift 언어와의 호환성을 보완하기 위해 availableRewardDidUpdate
함수의 reward
인자 타입을 double
에서 NSInteger
로 변경했습니다.
헤더 영역을 자체 구현하려면 아래의 순서대로 기존 코드를 수정하세요.
헤더 영역을 자체 구현하는 클래스가
BABFeedHeaderView
가 아닌BZVFeedHeaderViewHolder
를 상속하도록 변경하세요.availableRewardDidUpdate
함수의reward
인자 타입 변경에 따라 코드를 수정하세요.BABFeedConfig
에서headerViewClass
를 설정하는 코드를 삭제하세요.BZVFeedConfig
에headerViewHolderClass
를 헤더 영역을 자체 구현한 클래스로 설정하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
광고 디자인 자체 구현하기
BuzzAd iOS용 SDK 3.0에서는 자동으로 광고의 데이터를 뷰에 바인딩하는 기능을 사용하고 BZVCtaViewProtocol
을 통해 CTA 뷰의 상태에 따라 UI를 업데이트합니다.
광고 디자인을 자체 구현하려면 아래의 순서대로 기존 코드를 수정하세요.
광고 디자인을 자체 구현하는 클래스의
updateCtaButtonWithAd
함수에서 CTA 뷰의 UI를 업데이트하는 코드를 삭제하세요.BABNativeAdViewDelegate
의 콜백에서updateCtaButtonWithAd
함수를 호출하는 코드를 삭제하세요.CTA 버튼 자체 구현하기 토픽을 참고해 CTA 버튼을 직접 구현하세요.
광고 디자인을 자체 구현하는 클래스가
BABAdViewHolder
가 아닌BZVFeedAdViewHolder
를 상속하도록 변경하세요.BABNativeAdView
,BABMediaView
클래스를 각각BZVNativeAdView
와BZVMediaView
클래스로 변경하세요.renderAd
함수에서 광고 데이터를 수동으로 바인딩하는 코드를 삭제하고BZVNativeAdViewBinder
를 사용하여 자동으로 바인딩하세요.CTA 뷰의 UI 업데이트 이외의 목적으로 광고 이벤트를 수신해야 한다면
BZVNativeAdEventDelegate
를 부가적으로 구현할 수 있습니다.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
사용자 활동 추적 권한의 허용 관련 기능
BuzzAd iOS용 SDK 3.0에서 Feed 지면의 활동 추적 권한 허용과 관련된 기능을 사용하려면 아래의 순서대로 기존 코드를 수정하세요.
BABFeedConfig
에서shouldShowAppTrackingTransparencyDialog
와shouldShowAppTrackingTransparencyGuideBanner
를 설정하는 코드를 삭제하세요.BZVFeedConfig
에shouldShowAppTrackingTransparencyDialog
와shouldShowAppTrackingTransparencyGuideBanner
를 설정하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
Feed 디자인 커스터마이징
탭 디자인 변경하기
BuzzAd iOS용 SDK 3.0에서는 탭 디자인을 변경할 때 BABFeedConfig
가 아닌 BZVBuzzAdFeedTheme
클래스를 사용하도록 변경했습니다.
탭 디자인을 변경하려면 아래의 순서대로 기존 코드를 수정하세요.
BABFeedConfig
에서tabDefaultColor
,tabSelectedColor
,tabBackgroundColor
,tabIndicatorColor
를 설정하는 코드를 삭제하세요.BZVBuzzAdFeedTheme
에tabBackgroundColor
,tabTextColor
,tabIndicatorColor
를 설정하세요.이전 단계에서 생성한
BZVBuzzAdFeedTheme
을BZVBuzzAdFeed
의 defaultTheme으로 설정하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
필터 디자인 변경하기
BuzzAd iOS용 SDK 3.0에서는 탭 디자인을 변경할 때 BABFeedConfig
가 아닌 BZVBuzzAdFeedTheme
클래스를 사용하도록 변경했습니다.
필터 디자인을 변경하려면 아래의 순서대로 기존 코드를 수정하세요.
BABFeedConfig
에서filterTextDefaultColor
,filterTextSelectedColor
,filterBackgroundDefaultColor
,filterBackgroundSelectedColor
를 설정하는 코드를 삭제하세요.BZVBuzzAdFeedTheme
에filterTextColor
,filterBackgroundColor
를 설정하세요.이전 단계에서 생성한
BZVBuzzAdFeedTheme
을BZVBuzzAdFeed
의 defaultTheme으로 설정하세요.
Objective-C
2.x (변경 전)
3.x (변경 후)
Swift
2.x (변경 전)
3.x (변경 후)
API 변경 내역
2.x (변경 전) | 3.0 (변경 후) | 설명 |
---|---|---|
N/A |
| Feed 지면을 초기화하는 방법을 추가했습니다. |
N/A |
| Feed 지면의 디자인을 커스터마이징하는 방법을 추가했습니다. |
|
| 클래스의 이름을 변경하고 빌더 블록을 이용해 생성하도록 변경했습니다. |
|
| 함수의 이름을 변경했습니다. |
|
| 함수의 이름을 변경했습니다. |
|
| 변수의 타입을 |
|
| 클래스의 이름을 변경하고 빌더 블록을 이용해 생성하도록 변경했습니다. |
|
| 클래스의 이름을 변경했습니다. |
|
| 광고 디자인을 변경할 때 |
|
| 클래스의 이름을 변경했습니다. |
BABFeedConfig 변경 내역
2.x (변경 전) | 3.0 (변경 후) | 설명 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| N/A | API가 삭제되었습니다. 추후에 별도의 인터페이스를 통해 기능을 제공할 예정입니다. |
| N/A | API가 삭제되었습니다. 추후에 별도의 인터페이스를 통해 기능을 제공할 예정입니다. |