(Android v3.0.x) 3. Native 마이그레이션 가이드
- 1 Native 기본 설정
- 1.1 주요 변경 내역
- 1.2 광고 할당 및 표시하기
- 1.3 광고 이벤트 리스너 등록하기
- 2 Native 고급 설정
- 2.1 CTA 버튼 커스터마이징
- 2.2 한 번에 여러 개의 광고 로드하기
Native 기본 설정
주요 변경 내역
Native 광고 할당 클래스
NativeAdLoad
가BuzzAdNative
로 변경되었습니다.한 번의 광고 요청으로 여러 개의 광고를 할당 받으려면,
NativeAdsRequest
를 사용하도록 변경되었습니다.
광고 할당 및 표시하기
이전 버전에서 광고를 할당 받기 위해 사용했던 NativeAdLoader
클래스는 더 이상 지원하지 않습니다.
BuzzAd Android용 SDK 3.0에서 Native 광고 할당을 요청하려면 BuzzAdNative
를 사용하여 아래의 순서대로 구현하세요.
기존에 생성했던
NativeAdLoader
관련 코드를 삭제하세요.// TODO: 아래 코드를 삭제합니다. final NativeAdLoader loader = new NativeAdLoader("YOUR_NATIVE_UNIT_ID"); loader.loadAd(new NativeAdLoader.OnAdLoadedListener() { @Override public void onAdLoaded(@NonNull NativeAd nativeAd) { populateAd(nativeAd); } @Override public void onLoadError(@NonNull AdError adError) { // 할당된 광고가 없으면 호출됩니다. Log.e(TAG, "Failed to load a native ad.", adError); } });
Native 광고를 요청하는
NativeAdRequest
객체를 생성하세요.기존에 사용하던 Native 지면의 Unit ID로
BuzzAdNative
객체를 생성하세요.BuzzAdNative
객체의loadAd()
메소드를 통해 광고 할당을 요청하세요.할당된 광고가 있다면
onAdLoaded
콜백 이벤트가 호출되며, 할당된 광고가 없으면onLoadFailed
콜백 이벤트가 호출됩니다.
성공적으로 광고가 할당되면,
onAdLoaded
콜백 이벤트에서NativeAdViewBinder
객체를 생성하고 Native 광고 컴포넌트를 등록하세요.광고 할당에서 수집한 광고 정보를
NativeAdVeiwBinder
객체의bind()
로 주입하여 화면에 Native 광고를 표시합니다.
// Native 광고를 요청하는 NativeAdRequest 객체를 생성합니다.
final NativeAdRequest nativeAdRequest = new NativeAdRequest.Builder().build();
// Native 지면의 UNIT ID로 BuzzAdNative 객체를 생성합니다.
final BuzzAdNative buzzAdNative = new BuzzAdNative("YOUR_NATIVE_UNIT_ID");
buzzAdNative.loadAd(nativeAdRequest, new BuzzAdNative.AdLoadListener() {
@Override
public void onAdLoaded(@NonNull NativeAd nativeAd) {
// 할당된 광고가 있으면 호출됩니다.
// NativeAdViewBinder에 Native 광고 컴포넌트를 등록합니다.
final NativeAdViewBinder viewBinder = new NativeAdViewBinder.Builder(nativeAdView, mediaView)
.titleTextView(titleTextView)
.descriptionTextView(descriptionTextView)
.iconImageView(iconImageView)
.ctaView(ctaView)
.build();
viewBinder.bind(nativeAd); // 광고 데이터를 바인딩합니다.
// Optional: Native 광고의 리스너 등록하고 각 이벤트에 따라 필요한 기능을 구현합니다.
// 자세한 내용은 아래 광고 이벤트 등록 단락을 참고하세요.
// 주의: 반드시 NativeAdViewBinder.bind() 함수를 호출한 이후에 리스너 등록을 해야합니다.
// handleNativeCallbackEvent(nativeAd);
}
@Override
public void onLoadFailed(@NonNull AdError adError) {
// 할당된 광고가 없으면 호출됩니다.
Log.e(TAG, "Failed to load a native ad.", adError);
}
});
광고 이벤트 리스너 등록하기
이전 버전의 이벤트 리스너인 OnNativeAdEventListener
는 더 이상 지원하지 않습니다.
BuzzAd Android용 SDK 3.0에서 이벤트 리스너를 수신하려면 NativeAdEventListener
를 사용하여 아래의 순서대로 구현하세요.
이전에 CTA View를 갱신할 목적으로만 이벤트 리스너를 사용했다면, 더 이상 사용할 필요 없습니다.
BuzzAd Android용 SDK 3.0부터는 CTA View상태를 bind()
하는 방식으로 변경했기 때문에, CTA View 상태 변경 외에 각 이벤트별 구현이 필요할 경우에만 아래 가이드를 적용하세요.
이벤트 리스너를 구현할
handleNativeCallbackEvent(nativeAd)
메소드를 생성하세요.NativeAd의
addNativeAdEventListener
를 구현하여 Native 광고의 이벤트 리스너를 수신합니다.기존의
OnNativeAdEventListener
에서 추가 구현한 코드를 마이그레이션하세요.handleNativeCallbackEvent
메소드는NativeAdViewBinder.bind()
이후에 호출해야 합니다. 호출 위치는 광고 할당 및 표시하기 단락의 샘플 코드를 참고하세요.
Native 고급 설정
CTA 버튼 커스터마이징
이전 버전에서는 CTA 버튼 커스터마이징을 위해 CTA 버튼 처리 로직을 직접 구현해야 했지만, BuzzAd Android용 SDK 3.0 부터 UI 처리 로직은 SDK에서 제어하도록 변경되었습니다. 그리고 CTA 버튼의 상태가 달라졌을 때의 이벤트를 CtaView
클래스의 일부 메소드를 상속받아 직접 구현할 수 있도록 구성했습니다.
CtaView
클래스를 상속하는 서브클래스인CustomCtaView
를 생성하세요.CtaView
클래스에서 사용하던 CTA View 레이아웃을inflate
하도록 구현하세요.사용자의 광고 참여 상태에 따라 호출되는 아래의 오버라이딩 메소드에서 CTA 버튼의 아이콘 이미지, 텍스트, 리워드 값을 구현하세요.
renderViewParticipatingState
: 사용자가 광고에 참여 중인 상태 (예: 액션형 광고의 랜딩 페이지에 진입한 상태)renderViewParticipatedState
: 사용자가 광고 참여를 완료한 상태renderViewRewardAvailableState
: 사용자가 아직 광고에 참여하지 않은 상태renderViewRewardNotAvailableState
: 사용자가 획득할 리워드가 없는 광고
새로 생성한
CustomCtaView
클래스의 경로를 Native 광고 레이아웃에 설정하세요.
다음은 Native 광고의 레이아웃 예시입니다.다음 순서에 따라 직접 구현한 CTA 버튼을 Native 광고에 반영하세요.
Native 광고 레이아웃에서
NativeAdView
와 커스텀 CTA 버튼인CustomCtaView
를 가져오세요.loadAd()
메소드를 호출한 후 Native 광고가 성공적으로 할당되어onAdLoaded
콜백 메소드가 호출되면,NativeAdViewBinder
의ctaView
속성을customCtaView
로 설정하세요.bind()
를 호출하여 광고 레이아웃에 광고 데이터를 바인딩하세요.
코드 중복을 방지하기 위해, 기존에 구현했던 CTA View 관련 코드를 삭제하세요.
다음은 기존의 CTA View 관련 코드를 삭제하는 예시입니다.
한 번에 여러 개의 광고 로드하기
이전 버전에서 한 번에 로드하는 광고 개수를 설정하는 NativeAdLoader
클래스는 더 이상 지원하지 않습니다.
BuzzAd Android용 SDK 3.0 에서 한 번의 광고 요청으로 여러 개의 광고를 할당 받으려면, NativeAdsRequest
를 사용하여 아래의 순서대로 구현합니다.
NativeAdsRequest
객체를 생성하고,adCount(int count)
메소드로 한 번에 요청할 광고 갯수를 설정하세요.
최대 10개까지 추가 가능합니다. 추가로 광고를 할당받으려면 버즈빌 담당자에게 문의하세요.기존에 사용하던 Native 지면의 Unit ID로
BuzzAdNative
객체를 생성하세요.객체의
loadAds()
메소드를 통해 한 번에 여러 개의 광고 할당을 요청하세요.할당된 광고가 있다면
onAdsLoaded
콜백 이벤트, 없으면onLoadFailed
콜백 이벤트가 호출됩니다.onAdsLoaded()
콜백 이벤트에서 Native 광고를 화면에 표시하는 방법은 광고 할당 및 표시하기 단락을 참고하여 구현하세요.