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

Feed 기본 설정

주요 변경 내역

  • FeedConfig.Builder의 Context 인자가 삭제되었습니다.

  • Feed 지면을 초기화하는 메소드가 setFeedConfig()에서 setDefaultFeedConfig()로 변경되었습니다.

  • Feed 지면 클래스 FeedHandlerBuzzAdFeed로 변경되었습니다.

Feed 지면 초기화하기

BuzzAd Android용 SDK 3.0에서 Feed 지면을 초기화하려면 아래의 순서대로 기존 코드를 수정하세요.

  1. FeedConfig.Builder에 Context 인자를 삭제하고, Feed Unit ID 인자만 전달하여 객체를 생성하세요.

  2. BuzzAd Android용 SDK 3.0부터는 Feed에 헤더 영역에 총 적립 가능 금액을 보여주는 DefaultFeedHeaderViewAdapter클래스를 기본으로 제공합니다. feedHeaderViewAdapterClass(DefaultFeedHeaderViewAdapter)를 설정하고 있다면 기존 코드에서 삭제하세요.

  3. FeedConfig 등록은 setDefaultFeedConfig(feedConfig) 메소드로 변경하세요.

final FeedConfig feedConfig = new FeedConfig.Builder(context, "YOUR_FEED_UNIT_ID") // TODO: Context 인자를 삭제합니다. // .feedHeaderViewAdapterClass(DefaultFeedHeaderViewAdapter.class) TODO: 해당 코드를 삭제합니다. .build(); final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context) .setFeedConfig(feedConfig) .build(); BuzzAdBenefit.init(this, buzzAdBenefitConfig);
// TODO: Context 인자를 삭제하고 Feed Unit ID 인자로만 객체를 생성하세요. final FeedConfig feedConfig = new FeedConfig.Builder("YOUR_FEED_UNIT_ID") .build(); // TODO: FeedConfig 등록 메소드 setFeedConfig()를 setDefaultFeedConfig() 으로 변경하세요. final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(getApplicationContext()) .setDefaultFeedConfig(feedConfig) .build(); // BuzzAdBenefit SDK 초기화합니다. BuzzAdBenefit.init(this, buzzAdBenefitConfig);

 

Feed 지면 표시하기

이전 버전에서 Feed 광고를 화면에 표시하기 위해 사용했던 FeedHandler 클래스는 더 이상 지원하지 않습니다.

BuzzAd Android용 SDK 3.0에서 Feed 지면을 화면에 표시하려면 BuzzAdFeed를 사용하여 아래와 같이 구현하세요.

  1. 기존에 작성한 FeedHandler 관련 코드를 삭제하세요.

  2. 화면에 Feed를 표시하기 위해서 BuzzAdFeed 객체를 생성하고 show(Context) 메소드를 호출하세요.

// TODO: 아래 코드를 삭제하세요. final FeedHandler feedHandler = new FeedHandler(context, "YOUR_FEED_UNIT_ID"); feedHandler.startFeedActivity(this);

 

Feed 광고 할당 및 표시하기

BuzzAd Android용 SDK 3.0에서 Feed 광고를 미리 할당하려면 BuzzAdFeed를 사용하여 아래와 같이 구현하세요.

  1. 기존에 작성한 FeedHandler 관련 코드를 삭제하세요.

  2. BuzzAdFeed 객체를 생성하고, 해당 객체의 load()를 호출하여 Feed 광고를 미리 할당하세요.

  3. 광고 할당에 성공하면 onSuccess 콜백 이벤트, 없으면 onError 콜백 이벤트가 호출됩니다.

    • 미리 할당된 광고의 갯수를 확인하는 getSize() 메소드는 더 이상 제공하지 않습니다. 대신, 할당 받은 광고가 있는지 확인하기 위해 isAdAvailable() 메소드를 사용하세요.

  4. onSuccess 콜백 이벤트에서 buzzAdFeed.show(context) 를 호출하여 Feed 지면을 화면에 표시하세요.

 

 

Feed 고급 설정

프래그먼트로 Feed 연동하기

이전 버전에서 Feed 광고를 화면에 표시하기 위해 사용했던 FeedHandler 클래스는 더 이상 지원하지 않습니다.

BuzzAd Android용 SDK 3.0에서 프래그먼트로 Feed 지면을 화면에 표시하려면 BuzzAdFeed를 사용하여 아래와 같이 구현하세요.

  1. 기존에 작성한 FeedHandler 관련 코드를 삭제하세요.

     

  2. 프레그먼트의 액티비티 onCreate()에서 프래그먼트를 초기하세요.

툴바의 높이 값 변경 방법

BuzzAd Android용 SDK 3.0에서 Feed 지면의 툴바 높이 값을 변경하려면 BuzzAdFeedTheme을 사용하여 아래와 같은 순서대로 구현하세요.

  1. Feed 지면 디자인을 커스터마이징할 수 있는 BuzzAdFeedTheme 객체를 생성하세요.

  2. BuzzAdFeedTheme 객체에 toolbarHeight 속성으로 툴바 높이를 설정하세요.

  3. BuzzAdFeedsetDefaultTheme 속성에 BuzzAdFeedTheme 객체를 인자로 전달하세요.

4. 코드 중복을 피하기 위해, 기존에 AndroidManifest.xmlstyle.xml에서 설정한 아래 코드를 삭제하세요.

 

광고 디자인 자체 구현

이전 버전에서는 직접 작성한 광고 레이아웃에 SDK로 부터 전달 받은 전달받은 광고 데이터를 레이아웃에 직접 설정했었습니다.

 

BuzzAd Android용 SDK 3.0부터는 SDK에서 자동으로 광고 데이터를 바인딩하는 방식으로 변경되었습니다. 아래 순서에 따라 기존 코드를 수정하세요.

  1. AdsAdapter 서브클래스의 onBindViewHolder 함수에서 데이터 바인딩하기 위해 기존에 구현한 코드를 모두 삭제하세요.

  2. onBindViewHolder에서 NativeAdViewBinder를 이용하여 광고 데이터(NativeAd)를 앞서 생성한 NativeAdView에 바인딩하세요.

    • 이때, onBindViewHolder 첫번째 라인에 super.onBindViewHolder(holder, nativeAd); 코드가 없다면 반드시 추가해야 합니다.

  3. 광고 콜백 이벤트를 수신하는 OnNativeAdEventListener는 더 이상 지원하지 않으므로 BuzzAd Android용 SDK 3.0에서 이벤트 리스너를 수신하려면 NativeAdEventListener를 사용하여 아래와 같이 구현하세요.

 

기본 적립 포인트 알림 팝업 자체 구현하기

BuzzAd Android용 SDK 3.0부터는 상속이 아닌 인터페이스를 구현하여 Custom 클래스를 생성하는 방식으로 변경되었습니다. 다음의 절차를 따라 기본 적립 포인트 알림 팝업을 직접 구현하세요.

  1. BaseRewardNotificationAdapter 인터페이스를 구현하는 Custom 클래스를 생성하세요.

  2. FeedConfigbaseRewardNotificationAdapterClass 속성에 1번 단계에서 생성한 Custom 클래스를 설정하고, 이전 버전에서 사용했던 feedFeedbackHandler() 구문을 삭제하세요.

  3. 이전 버전에서 구현한 DefaultFeedFeedbackHandler 서브 클래스를 삭제하세요.

 

무한 스크롤 기능

BuzzAd Android용 SDK 3.0부터 무한 스크롤 기능이 기본적으로 활성화 되도록 변경되었습니다.

또한 앞으로 무한 스크롤의 활성화 여부는 앱에서 코드를 수정하거나 재배포를 하지 않고도 설정할 수 있습니다.

FeedConfigautoLoadingEnabled() 구문을 삭제하세요.

Feed 지면에 무한 스크롤 기능을 활성화하려면, 버즈빌 담당자에게 연락하세요.

광고 분류 기능

BuzzAd Android용 SDK 3.0부터는 광고를 분류하기 위한 탭, 필터 기능이 기본적으로 활성화 되도록 변경되었습니다.

앞으로 탭, 필터의 활성화 여부는 앱에서 코드를 수정하거나 재배포를 하지 않고도 설정할 수 있습니다.

자세한 내용은 광고 분류 기능 을 참고하세요.

  1. FeedConfigtabUiEnabled() , filterUiEnabled()구문을 삭제하세요.

Feed 지면의 탭, 필터를 비활성화하거나 초기 설정을 변경하려면 버즈빌 담당자에게 연락하세요.

 

Feed 디자인 커스터마이징

CTA 버튼 커스터마이징

이전 버전에서는 CTA 버튼 커스터마이징을 위해 CTA 버튼 처리 로직을 직접 구현해야 했지만, BuzzAd Android용 SDK 3.0부터 UI 처리 로직은 SDK에서 제어하도록 변경되었습니다. 그리고 CTA 버튼의 상태가 달라졌을 때의 이벤트를 CtaView 클래스의 일부 메소드를 상속받아 직접 구현할 수 있도록 구성했습니다.

  1. CtaView 클래스를 상속하는 서브클래스인 CustomCtaView를 생성하세요.

  2. CtaView 클래스에서 사용하던 CTA View 레이아웃을 inflate하도록 구현하세요.

  3. 사용자의 광고 참여 상태에 따라 호출되는 아래의 오버라이딩 메소드에서 CTA 버튼의 아이콘 이미지, 텍스트, 리워드 값을 구현하세요.

    • renderViewParticipatingState : 사용자가 광고에 참여 중인 상태 (예: 액션형 광고의 랜딩 페이지에 진입한 상태)

    • renderViewParticipatedState : 사용자가 광고 참여를 완료한 상태

    • renderViewRewardAvailableState : 사용자가 아직 광고에 참여하지 않은 상태

    • renderViewRewardNotAvailableState : 사용자가 획득할 리워드가 없는 광고

  4. 새로 생성한 CustomCtaView 클래스의 경로를 Feed 광고 레이아웃에 설정하세요.
    다음은 Feed 광고의 레이아웃 예시입니다.

  5. 다음 순서에 따라 직접 구현한 CTA 버튼을 Feed 광고에 반영하세요.

    1. Feed 광고 레이아웃에서 NativeAdView와 커스텀 CTA 버튼인 CustomCtaView를 가져오세요.

    2. loadAd()메소드를 호출한 후 Feed 광고가 성공적으로 할당되어 onAdLoaded 콜백 메소드가 호출되면, NativeAdViewBinderctaView 속성을 customCtaView로 설정하세요.

    3. bind()를 호출하여 광고 레이아웃에 광고 데이터를 바인딩하세요.

  6. 코드 중복을 방지하기 위해, 기존에 구현했던 CTA View 관련 코드를 삭제하세요.
    다음은 기존의 CTA View 관련 코드를 삭제하는 예시입니다.

     

탭 디자인 변경하기

BuzzAd Android용 SDK 3.0부터 Feed 지면의 탭 디자인을 변경하려면 BuzzAdFeedTheme에서 여러 구성 요소를 설정할 수 있습니다.

탭 색상과 이름을 변경하는 방법은 아래를 참고하세요.

탭 색상 변경

  1. Feed 지면의 디자인을 커스터마이징할 수 있는 BuzzAdFeedTheme 객체를 생성하세요.

  2. 변경하고자 하는 색상 타입에 따라 적절한 메소드를 호출하세요.

    • tabTextColorSelector : 탭의 텍스트 색상. state_selected 필수

    • tabBackgroundColor : 탭의 배경 색상

    • tabIndicatorColor : 탭이 선택되었을 때 탭 하단에 표시되는 줄의 색상

  3. BuzzAdTheme.setDefaultTheme()에 위에서 생성한 BuzzAdFeedTheme 객체를 설정하세요.

4. 코드 중복을 피하기 위해, 기존에 styles.xml에서 설정한 buzzvillColorPrimary 관련 코드를 삭제하세요.

 

탭 이름 변경

BuzzAd Android용 SDK 3.0부터 탭에 들어갈 텍스트는 앱에서 코드를 수정하거나 재배포를 하지 않고도 버즈빌 담당자를 통해 설정할 수 있습니다.

FeedConfigtabTextArray() 구문을 삭제하세요.

현재 사용 중인 Feed 탭 이름을 유지하려면 버즈빌 담당자에게 연락하세요.

필터 디자인 변경하기

BuzzAd Android용 SDK 3.0부터 Feed 지면의 필터 디자인을 변경하려면 BuzzAdFeedTheme에서 설정할 수 있습니다.

필터의 텍스트와 배경 색상을 변경하는 방법은 아래를 참고합니다.

  1. Feed 지면의 디자인을 커스터마이징할 수 있는 BuzzAdFeedTheme 객체를 생성하세요.

  2. 변경하고자 하는 색상 타입에 따라 적절한 메소드를 호출하세요.

    • filterTextColorSelector : 필터의 텍스트 색상. state_selected 필수

    • filterBackgroundColorSelector : 필터의 배경 색상

  3. BuzzAdTheme.setDefaultTheme()에 위에서 생성한 BuzzAdFeedTheme 객체를 설정하세요.

4. 코드 중복을 피하기 위해, 기존에 style.xml에서 설정한 buzzvillColorPrimary 관련 코드를 삭제하세요.



이 외 변경사항

  • 커스텀 런처를 구현해 설정한 경우, 액션형 광고를 클릭했을 때 뜨는 BottomSheet 페이지는 더 이상 사용되지 않습니다. 대신 설정된 커스텀 런처의 구현대로 클릭 후의 동작이 결정됩니다.

 

Reference

버전별 API 비교

설명

2.X

3.0

설명

2.X

3.0

Feed 초기화

BuzzAdBenefitConfig.Builder.setFeedConfig

BuzzAdBenefitConfig.Builder.setDefaultFeedConfig

Feed 지면 표시

FeedHandler.startFeedActivity

BuzzAdFeed.show

Feed 광고 로드

FeedHandler.preload

BuzzAdFeed.load

커스텀 툴바의 높이 값 변경

-

BuzzAdFeedTheme.toolbarHeight

기본 포인트 지급 안내 UI 자체 구현 설정

FeedConfig.feedFeedbackHandler

FeedConfig.baseRewardNotificationAdapterClass

탭 UI 색상 변경

-

  • BuzzAdFeedTheme.tabTextColorSelector

  • BuzzAdFeedTheme.tabBackgroundColor

  • BuzzAdFeedTheme.tabIndicatorColor

탭 UI 이름 변경

FeedConfig.tabTextArray

-

필터 UI 색상 변경

-

  • BuzzAdFeedTheme.filterTextColorSelector

  • BuzzAdFeedTheme.filterBackgroundColorSelector

 

FeedConfig.Builder 속성 API 비교

2.x

3.0

설명

2.x

3.0

설명

feedFeedbackHandlerClass

baseRewardNotificationAdapterClass

[기본 포인트 지급 안내 UI 자체 구현] 섹션 참고

tabTextArray

-

서버 사이드에서 유닛의 설정 변경 기능으로 대체됨

articlesEnabled

-

서버 사이드에서 유닛의 설정 변경 기능으로 대체됨

tabUiEnabled

-

서버 사이드에서 유닛의 설정 변경 기능으로 대체됨

filterUiEnabled

-

서버 사이드에서 유닛의 설정 변경 기능으로 대체됨

closeToastEnabled

-

Deprecated API가 삭제됨

separatorHeight

-

Deprecated API가 삭제됨

separatorColor

-

Deprecated API가 삭제됨

articleInAppLandingEnabled

-

Deprecated API가 삭제됨

tabBackgroundResId

-

Deprecated API가 삭제됨

tabSelectedColor

-

Deprecated API가 삭제됨

tabDefaultColor

-

Deprecated API가 삭제됨

filterTextSelectedColor

-

Deprecated API가 삭제됨

filterTextDefaultColor

-

Deprecated API가 삭제됨

filterBackgroundSelectedColor

-

Deprecated API가 삭제됨

filterBackgroundDefaultColor

-

Deprecated API가 삭제됨