(iOS v3.0.x) 2. Feed 마이그레이션 가이드

목차

개요

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

 

주요 변경 사항

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

  • Feed 지면 클래스 BABFeedHandlerBZVBuzzAdFeed로 변경했습니다.

  • Feed 지면의 기본 설정을 BuzzAdBenefitsetDefaultFeedConfig로 설정하는 기능이 추가되었습니다.

 

Feed 기본 설정

Feed 지면 초기화하기

BuzzAd iOS용 SDK 3.0에서는 BABFeedHandler를 생성할 때마다 설정하던 BABFeedConfigBuzzAdBenefit 초기화 시점에 BZVFeedConfig를 설정하도록 변경했습니다.

Feed 지면을 초기화하려면 빌더 블록을 이용해 BZVFeedConfig를 생성하고 BuzzAdBenefit을 초기화할 때 BZVConfigdefaultFeedConfig로 설정하세요.

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에서는 BABFeedHandlerBZVBuzzAdFeed로 변경했습니다. 또한, BABFeedHandler를 생성할 때마다 설정하던 BABFeedConfigBuzzAdBenefit 초기화 시점에 BZVFeedConfig를 1회만 설정하면 되도록 변경했습니다.

Feed 지면을 표시하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABFeedConfig를 생성하고 BABFeedHandler 생성자의 인자로 넘겨주는 코드를 삭제하세요.

  2. BABFeedHandler를 사용하여 Feed 지면을 표시하는 코드를 삭제하세요.

  3. 빌더 블록을 이용하여 BZVBuzzAdFeed를 생성하세요.

  4. BZVBuzzAdFeed를 사용하여 Feed 지면을 표시하세요.

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

광고 할당 및 표시하기

기존에 Feed를 표시하기 전 광고 할당 기능을 사용하는 경우에만 해당합니다.

BuzzAd iOS용 SDK 3.0에서는 preload 함수를 load로 변경했습니다.

광고 할당 후에 Feed 지면을 표시하려면 기존의 feedHandlerbuzzAdFeed로 변경하세요.

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로 변경했습니다.

헤더 영역을 자체 구현하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. 헤더 영역을 자체 구현하는 클래스가 BABFeedHeaderView가 아닌 BZVFeedHeaderViewHolder를 상속하도록 변경하세요.

  2. availableRewardDidUpdate 함수의 reward 인자 타입 변경에 따라 코드를 수정하세요.

  3. BABFeedConfig에서 headerViewClass를 설정하는 코드를 삭제하세요.

  4. BZVFeedConfigheaderViewHolderClass를 헤더 영역을 자체 구현한 클래스로 설정하세요.

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

광고 디자인 자체 구현하기

BuzzAd iOS용 SDK 3.0에서는 자동으로 광고의 데이터를 뷰에 바인딩하는 기능을 사용하고 BZVCtaViewProtocol을 통해 CTA 뷰의 상태에 따라 UI를 업데이트합니다.

광고 디자인을 자체 구현하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. 광고 디자인을 자체 구현하는 클래스의 updateCtaButtonWithAd 함수에서 CTA 뷰의 UI를 업데이트하는 코드를 삭제하세요.

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

  3. CTA 버튼 자체 구현하기 토픽을 참고해 CTA 버튼을 직접 구현하세요.

  4. 광고 디자인을 자체 구현하는 클래스가 BABAdViewHolder가 아닌 BZVFeedAdViewHolder를 상속하도록 변경하세요.

  5. BABNativeAdView, BABMediaView 클래스를 각각 BZVNativeAdViewBZVMediaView 클래스로 변경하세요.

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

  7. CTA 뷰의 UI 업데이트 이외의 목적으로 광고 이벤트를 수신해야 한다면 BZVNativeAdEventDelegate를 부가적으로 구현할 수 있습니다.

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

사용자 활동 추적 권한의 허용 관련 기능

BuzzAd iOS용 SDK 3.0에서 Feed 지면의 활동 추적 권한 허용과 관련된 기능을 사용하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABFeedConfig에서 shouldShowAppTrackingTransparencyDialogshouldShowAppTrackingTransparencyGuideBanner를 설정하는 코드를 삭제하세요.

  2. BZVFeedConfigshouldShowAppTrackingTransparencyDialogshouldShowAppTrackingTransparencyGuideBanner를 설정하세요.

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

 

Feed 디자인 커스터마이징

탭 디자인 변경하기

BuzzAd iOS용 SDK 3.0에서는 탭 디자인을 변경할 때 BABFeedConfig가 아닌 BZVBuzzAdFeedTheme 클래스를 사용하도록 변경했습니다.

탭 디자인을 변경하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABFeedConfig에서 tabDefaultColor, tabSelectedColor, tabBackgroundColor, tabIndicatorColor를 설정하는 코드를 삭제하세요.

  2. BZVBuzzAdFeedThemetabBackgroundColor, tabTextColor, tabIndicatorColor를 설정하세요.

  3. 이전 단계에서 생성한 BZVBuzzAdFeedThemeBZVBuzzAdFeed의 defaultTheme으로 설정하세요.

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

필터 디자인 변경하기

BuzzAd iOS용 SDK 3.0에서는 탭 디자인을 변경할 때 BABFeedConfig가 아닌 BZVBuzzAdFeedTheme 클래스를 사용하도록 변경했습니다.

필터 디자인을 변경하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. BABFeedConfig에서 filterTextDefaultColor, filterTextSelectedColor, filterBackgroundDefaultColor, filterBackgroundSelectedColor를 설정하는 코드를 삭제하세요.

  2. BZVBuzzAdFeedThemefilterTextColor, filterBackgroundColor를 설정하세요.

  3. 이전 단계에서 생성한 BZVBuzzAdFeedThemeBZVBuzzAdFeed의 defaultTheme으로 설정하세요.

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

 

API 변경 내역

2.x (변경 전)

3.0 (변경 후)

설명

2.x (변경 전)

3.0 (변경 후)

설명

N/A

[BZVConfig defaultFeedConfig]

Feed 지면을 초기화하는 방법을 추가했습니다.

N/A

[BZVBuzzAdFeed setDefaultTheme:]

Feed 지면의 디자인을 커스터마이징하는 방법을 추가했습니다.

BABFeedHandler

BZVBuzzAdFeed

클래스의 이름을 변경하고 빌더 블록을 이용해 생성하도록 변경했습니다.

[BABFeedHandler preloadWithOnSuccess:onFailure]

[BZVBuzzAdFeed loadOnSuccess:onFailure]

함수의 이름을 변경했습니다.

[BABFeedHandler populateViewController]

[BZVBuzzAdFeed viewController]

함수의 이름을 변경했습니다.

BABFeedHandler.availableRewards

BZVBuzzAdFeed.availableRewards

변수의 타입을 double에서 NSInteger로 변경했습니다.

BABFeedConfig

BZVFeedConfig

클래스의 이름을 변경하고 빌더 블록을 이용해 생성하도록 변경했습니다.

BABFeedHeaderView

BZVFeedHeaderViewHolder

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

BABAdViewHolder

BZVFeedAdViewHolder, BZVFeedCpsAdviewHolder

광고 디자인을 변경할 때 BZVFeedAdViewHolderBZVFeedCpsAdViewHolder를 사용하도록 변경했습니다.

BABErrorViewHolder

BZVErrorViewHolder

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

BABFeedConfig 변경 내역

2.x (변경 전)

3.0 (변경 후)

설명

2.x (변경 전)

3.0 (변경 후)

설명

unitId

BZVFeedConfig.unitId

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

title

BZVFeedConfig.title

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

headerViewClass

BZVFeedConfig.headerViewClass

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

adViewHolderClass

BZVFeedConfig.adViewHolderClass

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

cpsAdViewHolderClass

BZVFeedConfig.cpsAdViewHolderClass

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

articleViewHolderClass

BZVFeedConfig.articleViewHolderClass

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

errorViewHolderClass

BZVFeedConfig.errorViewHolderClass

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

shouldShowAppTrackingTransparencyDialog

BZVFeedConfig.shouldShowAppTrackingTransparencyDialog

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

shouldShowAppTrackingTransparencyGuideBanner

BZVFeedConfig.shouldShowAppTrackingTransparencyGuideBanner

BZVFeedConfig 클래스의 빌더 블록에서 설정하도록 변경했습니다.

separatorHeight

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경했습니다.

separatorColor

BZVBuzzAdFeedTheme.separatorColor

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경했습니다.

separatorHorizontalMargin

BZVBuzzAdFeedTheme.separatorHorizontalMargin

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경했습니다.

tabIndicatorColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

tabDefaultColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

tabSelectedColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

tabBackgroundColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

filterBackgroundDefaultColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

filterBackgroundSelectedColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

filterTextDefaultColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

filterTextSelectedColor

BZVBuzzAdFeedTheme.separatorHeight

BZVBuzzAdFeedTheme 클래스의 빌더 블록에서 설정하도록 변경헀습니다.

inquiryButtonIcon

N/A

API가 삭제되었습니다. 추후에 별도의 인터페이스를 통해 기능을 제공할 예정입니다.

closeButtonIcon

N/A

API가 삭제되었습니다. 추후에 별도의 인터페이스를 통해 기능을 제공할 예정입니다.