(Android v3.0.x) 2. Feed 마이그레이션 가이드
- 1 Feed 기본 설정
- 1.1 주요 변경 내역
- 1.2 Feed 지면 초기화하기
- 1.3 Feed 지면 표시하기
- 1.4 Feed 광고 할당 및 표시하기
- 2 Feed 고급 설정
- 2.1 프래그먼트로 Feed 연동하기
- 2.2 툴바의 높이 값 변경 방법
- 2.3 광고 디자인 자체 구현
- 2.4 기본 적립 포인트 알림 팝업 자체 구현하기
- 2.5 무한 스크롤 기능
- 2.6 광고 분류 기능
- 3 Feed 디자인 커스터마이징
- 3.1 CTA 버튼 커스터마이징
- 3.2 탭 디자인 변경하기
- 3.3 필터 디자인 변경하기
- 3.4 이 외 변경사항
- 4 Reference
Feed 기본 설정
주요 변경 내역
FeedConfig.Builder
의 Context 인자가 삭제되었습니다.Feed 지면을 초기화하는 메소드가
setFeedConfig()
에서setDefaultFeedConfig()
로 변경되었습니다.Feed 지면 클래스
FeedHandler
가BuzzAdFeed
로 변경되었습니다.
Feed 지면 초기화하기
BuzzAd Android용 SDK 3.0에서 Feed 지면을 초기화하려면 아래의 순서대로 기존 코드를 수정하세요.
FeedConfig.Builder
에 Context 인자를 삭제하고, Feed Unit ID 인자만 전달하여 객체를 생성하세요.BuzzAd Android용 SDK 3.0부터는 Feed에 헤더 영역에 총 적립 가능 금액을 보여주는
DefaultFeedHeaderViewAdapter
클래스를 기본으로 제공합니다.feedHeaderViewAdapterClass(DefaultFeedHeaderViewAdapter)
를 설정하고 있다면 기존 코드에서 삭제하세요.FeedConfig 등록은
setDefaultFeedConfig(feedConfig)
메소드로 변경하세요.
// 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
를 사용하여 아래와 같이 구현하세요.
기존에 작성한
FeedHandler
관련 코드를 삭제하세요.화면에 Feed를 표시하기 위해서
BuzzAdFeed
객체를 생성하고show(Context)
메소드를 호출하세요.
Feed 광고 할당 및 표시하기
BuzzAd Android용 SDK 3.0에서 Feed 광고를 미리 할당하려면 BuzzAdFeed
를 사용하여 아래와 같이 구현하세요.
기존에 작성한
FeedHandler
관련 코드를 삭제하세요.BuzzAdFeed
객체를 생성하고, 해당 객체의load()
를 호출하여 Feed 광고를 미리 할당하세요.광고 할당에 성공하면
onSuccess
콜백 이벤트, 없으면onError
콜백 이벤트가 호출됩니다.미리 할당된 광고의 갯수를 확인하는
getSize()
메소드는 더 이상 제공하지 않습니다. 대신, 할당 받은 광고가 있는지 확인하기 위해isAdAvailable()
메소드를 사용하세요.
onSuccess
콜백 이벤트에서buzzAdFeed.show(context)
를 호출하여 Feed 지면을 화면에 표시하세요.
Feed 고급 설정
프래그먼트로 Feed 연동하기
이전 버전에서 Feed 광고를 화면에 표시하기 위해 사용했던 FeedHandler
클래스는 더 이상 지원하지 않습니다.
BuzzAd Android용 SDK 3.0에서 프래그먼트로 Feed 지면을 화면에 표시하려면 BuzzAdFeed
를 사용하여 아래와 같이 구현하세요.
기존에 작성한
FeedHandler
관련 코드를 삭제하세요.프레그먼트의 액티비티
onCreate()
에서 프래그먼트를 초기하세요.
툴바의 높이 값 변경 방법
BuzzAd Android용 SDK 3.0에서 Feed 지면의 툴바 높이 값을 변경하려면 BuzzAdFeedTheme
을 사용하여 아래와 같은 순서대로 구현하세요.
Feed 지면 디자인을 커스터마이징할 수 있는
BuzzAdFeedTheme
객체를 생성하세요.BuzzAdFeedTheme
객체에toolbarHeight
속성으로 툴바 높이를 설정하세요.BuzzAdFeed
의setDefaultTheme
속성에BuzzAdFeedTheme
객체를 인자로 전달하세요.
4. 코드 중복을 피하기 위해, 기존에 AndroidManifest.xml
과 style.xml
에서 설정한 아래 코드를 삭제하세요.
광고 디자인 자체 구현
이전 버전에서는 직접 작성한 광고 레이아웃에 SDK로 부터 전달 받은 전달받은 광고 데이터를 레이아웃에 직접 설정했었습니다.
BuzzAd Android용 SDK 3.0부터는 SDK에서 자동으로 광고 데이터를 바인딩하는 방식으로 변경되었습니다. 아래 순서에 따라 기존 코드를 수정하세요.
AdsAdapter
서브클래스의onBindViewHolder
함수에서 데이터 바인딩하기 위해 기존에 구현한 코드를 모두 삭제하세요.onBindViewHolder
에서NativeAdViewBinder
를 이용하여 광고 데이터(NativeAd
)를 앞서 생성한NativeAdView
에 바인딩하세요.이때,
onBindViewHolder
첫번째 라인에super.onBindViewHolder(holder, nativeAd);
코드가 없다면 반드시 추가해야 합니다.
광고 콜백 이벤트를 수신하는
OnNativeAdEventListener
는 더 이상 지원하지 않으므로 BuzzAd Android용 SDK 3.0에서 이벤트 리스너를 수신하려면NativeAdEventListener
를 사용하여 아래와 같이 구현하세요.
기본 적립 포인트 알림 팝업 자체 구현하기
BuzzAd Android용 SDK 3.0부터는 상속이 아닌 인터페이스를 구현하여 Custom 클래스를 생성하는 방식으로 변경되었습니다. 다음의 절차를 따라 기본 적립 포인트 알림 팝업을 직접 구현하세요.
BaseRewardNotificationAdapter
인터페이스를 구현하는 Custom 클래스를 생성하세요.FeedConfig
의baseRewardNotificationAdapterClass
속성에 1번 단계에서 생성한 Custom 클래스를 설정하고, 이전 버전에서 사용했던feedFeedbackHandler()
구문을 삭제하세요.이전 버전에서 구현한
DefaultFeedFeedbackHandler
서브 클래스를 삭제하세요.
무한 스크롤 기능
BuzzAd Android용 SDK 3.0부터 무한 스크롤 기능이 기본적으로 활성화 되도록 변경되었습니다.
또한 앞으로 무한 스크롤의 활성화 여부는 앱에서 코드를 수정하거나 재배포를 하지 않고도 설정할 수 있습니다.
FeedConfig
의 autoLoadingEnabled()
구문을 삭제하세요.
Feed 지면에 무한 스크롤 기능을 활성화하려면, 버즈빌 담당자에게 연락하세요.
광고 분류 기능
BuzzAd Android용 SDK 3.0부터는 광고를 분류하기 위한 탭, 필터 기능이 기본적으로 활성화 되도록 변경되었습니다.
앞으로 탭, 필터의 활성화 여부는 앱에서 코드를 수정하거나 재배포를 하지 않고도 설정할 수 있습니다.
자세한 내용은 광고 분류 기능 을 참고하세요.
FeedConfig
의tabUiEnabled()
,filterUiEnabled()
구문을 삭제하세요.
Feed 지면의 탭, 필터를 비활성화하거나 초기 설정을 변경하려면 버즈빌 담당자에게 연락하세요.
Feed 디자인 커스터마이징
CTA 버튼 커스터마이징
이전 버전에서는 CTA 버튼 커스터마이징을 위해 CTA 버튼 처리 로직을 직접 구현해야 했지만, BuzzAd Android용 SDK 3.0부터 UI 처리 로직은 SDK에서 제어하도록 변경되었습니다. 그리고 CTA 버튼의 상태가 달라졌을 때의 이벤트를 CtaView
클래스의 일부 메소드를 상속받아 직접 구현할 수 있도록 구성했습니다.
CtaView
클래스를 상속하는 서브클래스인CustomCtaView
를 생성하세요.CtaView
클래스에서 사용하던 CTA View 레이아웃을inflate
하도록 구현하세요.사용자의 광고 참여 상태에 따라 호출되는 아래의 오버라이딩 메소드에서 CTA 버튼의 아이콘 이미지, 텍스트, 리워드 값을 구현하세요.
renderViewParticipatingState
: 사용자가 광고에 참여 중인 상태 (예: 액션형 광고의 랜딩 페이지에 진입한 상태)renderViewParticipatedState
: 사용자가 광고 참여를 완료한 상태renderViewRewardAvailableState
: 사용자가 아직 광고에 참여하지 않은 상태renderViewRewardNotAvailableState
: 사용자가 획득할 리워드가 없는 광고
새로 생성한
CustomCtaView
클래스의 경로를 Feed 광고 레이아웃에 설정하세요.
다음은 Feed 광고의 레이아웃 예시입니다.다음 순서에 따라 직접 구현한 CTA 버튼을 Feed 광고에 반영하세요.
Feed 광고 레이아웃에서
NativeAdView
와 커스텀 CTA 버튼인CustomCtaView
를 가져오세요.loadAd()
메소드를 호출한 후 Feed 광고가 성공적으로 할당되어onAdLoaded
콜백 메소드가 호출되면,NativeAdViewBinder
의ctaView
속성을customCtaView
로 설정하세요.bind()
를 호출하여 광고 레이아웃에 광고 데이터를 바인딩하세요.
코드 중복을 방지하기 위해, 기존에 구현했던 CTA View 관련 코드를 삭제하세요.
다음은 기존의 CTA View 관련 코드를 삭제하는 예시입니다.
탭 디자인 변경하기
BuzzAd Android용 SDK 3.0부터 Feed 지면의 탭 디자인을 변경하려면 BuzzAdFeedTheme
에서 여러 구성 요소를 설정할 수 있습니다.
탭 색상과 이름을 변경하는 방법은 아래를 참고하세요.
탭 색상 변경
Feed 지면의 디자인을 커스터마이징할 수 있는
BuzzAdFeedTheme
객체를 생성하세요.변경하고자 하는 색상 타입에 따라 적절한 메소드를 호출하세요.
tabTextColorSelector
: 탭의 텍스트 색상. state_selected 필수tabBackgroundColor
: 탭의 배경 색상tabIndicatorColor
: 탭이 선택되었을 때 탭 하단에 표시되는 줄의 색상
BuzzAdTheme.setDefaultTheme()
에 위에서 생성한BuzzAdFeedTheme
객체를 설정하세요.
4. 코드 중복을 피하기 위해, 기존에 styles.xml
에서 설정한 buzzvillColorPrimary
관련 코드를 삭제하세요.
탭 이름 변경
BuzzAd Android용 SDK 3.0부터 탭에 들어갈 텍스트는 앱에서 코드를 수정하거나 재배포를 하지 않고도 버즈빌 담당자를 통해 설정할 수 있습니다.
FeedConfig
의 tabTextArray()
구문을 삭제하세요.
현재 사용 중인 Feed 탭 이름을 유지하려면 버즈빌 담당자에게 연락하세요.
필터 디자인 변경하기
BuzzAd Android용 SDK 3.0부터 Feed 지면의 필터 디자인을 변경하려면 BuzzAdFeedTheme
에서 설정할 수 있습니다.
필터의 텍스트와 배경 색상을 변경하는 방법은 아래를 참고합니다.
Feed 지면의 디자인을 커스터마이징할 수 있는
BuzzAdFeedTheme
객체를 생성하세요.변경하고자 하는 색상 타입에 따라 적절한 메소드를 호출하세요.
filterTextColorSelector
: 필터의 텍스트 색상. state_selected 필수filterBackgroundColorSelector
: 필터의 배경 색상
BuzzAdTheme.setDefaultTheme()
에 위에서 생성한BuzzAdFeedTheme
객체를 설정하세요.
4. 코드 중복을 피하기 위해, 기존에 style.xml
에서 설정한 buzzvillColorPrimary
관련 코드를 삭제하세요.
이 외 변경사항
커스텀 런처를 구현해 설정한 경우, 액션형 광고를 클릭했을 때 뜨는 BottomSheet 페이지는 더 이상 사용되지 않습니다. 대신 설정된 커스텀 런처의 구현대로 클릭 후의 동작이 결정됩니다.
Reference
버전별 API 비교
설명 | 2.X | 3.0 |
---|---|---|
Feed 초기화 |
|
|
Feed 지면 표시 |
|
|
Feed 광고 로드 |
|
|
커스텀 툴바의 높이 값 변경 | - |
|
기본 포인트 지급 안내 UI 자체 구현 설정 |
|
|
탭 UI 색상 변경 | - |
|
탭 UI 이름 변경 |
| - |
필터 UI 색상 변경 | - |
|
FeedConfig.Builder 속성 API 비교
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가 삭제됨 |