Learn how to migrate an existing Native (NativeAdView) integration to Native 2.0 (NativeAd2View).
✏️ Note The “Load multiple ads at once” and “Reuse ad objects” guidance for carousels will be updated later.
Basic settings#
Key changes#
Use NativeAd2View instead of NativeAdView in the ad layout.
Native 2.0 automatically allocates and refreshes ads within the SDK, so the allocation classes BuzzAdNative and NativeAdRequest are no longer needed.
Replacement methods#
Original Native example#
<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) {
}
});
Native 2.0 example#
<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();
Advanced settings#
Key changes#
Retrieve ad information through NativeAd2 instead of NativeAd.
Use NativeAd2EventListener instead of NativeAdEventListener to register ad event listeners.
Replacement methods#
Original Native example#
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) {
}
});
Native 2.0 example#
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();