이 페이지에서는 기존 네이티브(NativeAdView)를 연동한 상태에서 네이티브 2.0(NativeAd2View)으로 마이그레이션 하는 방법을 안내합니다.
✏️ 참고 캐러셀을 구현하기 위해 제공되던 '한 번에 여러 개의 광고 로드하기', '광고 객체 재사용하기'에 대한 내용은 추후 업데이트 될 예정입니다.
기본 설정#
주요 변경사항#
광고 레이아웃에서 NativeAdView 대신 NativeAd2View를 사용합니다.
네이티브 2.0에서는 광고 할당 및 갱신을 SDK 내부에서 자동으로 수행합니다. 따라서 광고 할당을 위한 클래스인 BuzzAdNative, NativeAdRequest를 사용할 필요가 없습니다.
대체 메서드#
기존 네이티브 구현 예시#
<com.buzzvil.buzzad.benefit.presentation.nativead.NativeAdView
android:id ="@+id/native_ad_2_view" >
<com.buzzvil.buzzad.benefit.presentation.media.MediaView
android:id ="@+id/mediaView"
...생략... />
<TextView
android:id ="@+id/textTitle"
...생략... />
<TextView
android:id ="@+id/textDescription"
...생략... />
<ImageView
android:id ="@+id/imageIcon"
...생략... />
<com.buzzvil.buzzad.benefit.presentation.media.DefaultCtaView
android:id ="@+id/ctaView"
...생략... />
</com.buzzvil.buzzad.benefit.presentation.nativead.NativeAdView >
final NativeAdView nativeAdView = findViewById(R.id.your_native_ad_view);
final MediaView mediaView = nativeAdView.findViewById(R.id.mediaView);
final TextView titleTextView = nativeAdView.findViewById(R.id.textTitle);
final TextView descriptionTextView = nativeAdView.findViewById(R.id.textDescription);
final ImageView iconImageView = nativeAdView.findViewById(R.id.imageIcon);
final DefaultCtaView ctaView = nativeAdView.findViewById(R.id.ctaView);
final NativeAdRequest nativeAdRequest = new NativeAdRequest .Builder().build();
final BuzzAdNative buzzAdNative = new BuzzAdNative ("YOUR_NATIVE_UNIT_ID" );
buzzAdNative.loadAd(nativeAdRequest, new BuzzAdNative .AdLoadListener() {
@Override
public void onAdLoaded (@NotNull NativeAd nativeAd) {
final NativeAdViewBinder viewBinder = new NativeAdViewBinder .Builder(nativeAdView, mediaView)
.titleTextView(titleTextView)
.descriptionTextView(descriptionTextView)
.iconImageView(iconImageView)
.ctaView(ctaView)
.build();
viewBinder.bind(nativeAd);
}
@Override
public void onLoadFailed (@NotNull AdError adError) {
}
});
네이티브 2.0 구현 예시#
<com.buzzvil.buzzad.benefit.nativead2.api.NativeAd2View
android:id ="@+id/native_ad_2_view" >
<com.buzzvil.buzzad.benefit.presentation.media.MediaView
android:id ="@+id/mediaView"
...생략... />
<TextView
android:id ="@+id/textTitle"
...생략... />
<TextView
android:id ="@+id/textDescription"
...생략... />
<ImageView
android:id ="@+id/imageIcon"
...생략... />
<com.buzzvil.buzzad.benefit.presentation.media.DefaultCtaView
android:id ="@+id/ctaView"
...생략... />
</com.buzzvil.buzzad.benefit.nativead2.api.NativeAd2View >
final NativeAd2View nativeAd2View = findViewById(R.id.nativeAd2View);
final MediaView mediaView = findViewById(R.id.mediaView);
final TextView titleTextView = findViewById(R.id.textTitle);
final TextView descriptionTextView = findViewById(R.id.textDescription);
final ImageView iconImageView = findViewById(R.id.imageIcon);
final DefaultCtaView ctaView = findViewById(R.id.ctaView);
NativeAd2ViewBinder binder = new NativeAd2ViewBinder .Builder()
.nativeAd2View(nativeAd2View)
.mediaView(mediaView)
.titleTextView(titleTextView)
.descriptionTextView(descriptionTextView)
.iconImageView(iconImageView)
.ctaView(ctaView)
.build("YOUR_NATIVE_UNIT_ID" );
binder.addNativeAd2StateChangedListener(new NativeAd2StateChangedListener () {
@Override
public void onRequested () {
}
@Override
public void onNext (NativeAd2 nativeAd2) {
}
@Override
public void onComplete () {
}
@Override
public void onError (@NonNull AdError adError) {
}
});
binder.bind();
고급 설정#
주요 변경사항#
NativeAd 대신 NativeAd2를 통해 광고 정보를 가져옵니다.
NativeAdEventListener 대신 NativeAd2EventListener를 광고 이벤트 리스너 등록에 사용합니다.
대체 메서드#
기존 네이티브 구현 예시#
final NativeAdViewBinder viewBinder = new NativeAdViewBinder .Builder(nativeAdView, mediaView)
.titleTextView(titleTextView)
.descriptionTextView(descriptionTextView)
.iconImageView(iconImageView)
.ctaView(ctaView)
.build();
viewBinder.bind(nativeAd);
nativeAd.addNativeAdEventListener(new NativeAdEventListener () {
@Override
public void onImpressed (@NonNull NativeAd nativeAd) {
}
@Override
public void onClicked (@NonNull NativeAd nativeAd) {
}
@Override
public void onRewardRequested (@NonNull NativeAd nativeAd) {
}
@Override
public void onRewarded (@NonNull NativeAd nativeAd, @Nullable RewardResult rewardResult) {
}
@Override
public void onParticipated (@NonNull NativeAd nativeAd) {
}
});
네이티브 2.0 구현 예시#
NativeAd2ViewBinder binder = new NativeAd2ViewBinder .Builder()
.nativeAd2View(nativeAd2View)
.mediaView(mediaView)
.titleTextView(titleTextView)
.descriptionTextView(descriptionTextView)
.iconImageView(iconImageView)
.ctaView(ctaView)
.build("YOUR_NATIVE_UNIT_ID" );
binder.addNativeAd2StateChangedListener(new NativeAd2StateChangedListener () {
@Override
public void onRequested () {
}
});
binder.addNativeAd2EventListener(new NativeAd2EventListener () {
@Override
public void onImpressed (@NonNull NativeAd2 nativeAd2) {
}
@Override
public void onClicked (@NonNull NativeAd2 nativeAd2) {
}
@Override
public void onRewardRequested (@NonNull NativeAd2 nativeAd2) {
}
@Override
public void onRewarded (@NonNull NativeAd2 nativeAd2, @NonNull RewardResult rewardResult) {
}
@Override
public void onParticipated (@NonNull NativeAd2 nativeAd2) {
}
});
binder.bind();