(ver 2.31.x) 4.2. ๊ณ ๊ธ ์ค์
๋ชฉ์ฐจ
๊ฐ์
๋ณธ ๊ฐ์ด๋๋ Native ์ง๋ฉด์์ ์ถ๊ฐ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๋ํ์ฌ ์ถ๊ฐ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค. ํ์์ ๋ฐ๋ผ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์์ด ๋์ฑ ๊ณ ๋ํํ ์ ์์ต๋๋ค.
ย
CtaView ๋ฒํผ ์ปค์คํฐ๋ง์ด์ง
BuzzAd Android SDK ์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ CtaView UI ๋ฐ ์ฒ๋ฆฌ ๋ก์ง์ ์ฌ์ฉํ์ง ์๊ณ ๊ตฌํ์ ์ํ๋ ๊ฒฝ์ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ ์ ์์ต๋๋ค.
public void populateAd(final NativeAd nativeAd) {
final NativeAdView view = findViewById(R.id.native_ad_view);
final Ad ad = nativeAd.getAd();
// create ad component
...์๋ต...
final YourCtaView ctaView = view.findViewById(R.id.your_cta_view);
updateCtaStatus(ctaView, nativeAd);
...์๋ต...
final List<View> clickableViews = new ArrayList<>();
clickableViews.add(customizedCtaView);
...์๋ต...
nativeAdView.addOnNativeAdEventListener(new NativeAdView.OnNativeAdEventListener() {
...(์๋ต)...
@Override
public void onClicked(@NonNull NativeAdView view, @NonNull NativeAd nativeAd) {
updateCtaStatus(ctaView, nativeAd);;
}
@Override
public void onParticipated(@NonNull NativeAdView view, @NonNull NativeAd nativeAd) {
updateCtaStatus(ctaView, nativeAd);
}
});
}
// ๊ธฐํ์ ๋ฐ๋ผ ์์ ๋ ์ ์๋ ์์ ์ฝ๋์
๋๋ค.
void updateCtaStatus(YourCtaView ctaView, NativeAd nativeAd) {
final String callToAction = nativeAd.getAd().getCallToAction();
final int reward = nativeAd.getAvailableReward();
final int totalReward = nativeAd.getAd().getReward();
final boolean participated = nativeAd.isParticipated();
final boolean isClicked = nativeAd.isClicked();
final boolean isActionType = nativeAd.getAd().isActionType();
if (isClicked && isActionType && !participated) {
ctaView.setCtaText("์ฐธ์ฌ ํ์ธ ์ค");
ctaView.setRewardIcon(null);
ctaView.setRewardText(null);
} else {
if (totalReward > 0 && participated) {
ctaView.setRewardIcon(R.drawable.your_reward_received_icon);
ctaView.setRewardText(null);
ctaView.setCtaText("์ฐธ์ฌ ์๋ฃ");
} else if (reward > 0) {
ctaView.showRewardImage(R.drawable.your_reward_icon);
ctaView.setRewardText(String.format(Locale.US, "+%,d", reward));
ctaView.setCtaText(callToAction);
} else {
ctaView.showRewardImage(null);
ctaView.setRewardText(null);
ctaView.setCtaText(callToAction);
}
}
}
ย
ํ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ๊ด๊ณ ๋ก๋
ํ ๋ฒ์ ๊ด๊ณ ์์ฒญ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๊ด๊ณ ๋ฅผ ํ ๋น๋ฐ์ ์ ์์ต๋๋ค. ์ต๋ 10๊ฐ๊น์ง ๊ฐ๋ฅํฉ๋๋ค.
๋ค์์ NATIVE_ADS_COUNT
๋ฅผ ์ง์ ํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๊ด๊ณ ๋ฅผ ํ ๋น๋ฐ๋ ์์์
๋๋ค.
final NativeAdLoader loader = new NativeAdLoader("YOUR_NATIVE_AD_UNIT_ID");
loader.loadAds(new NativeAdLoader.OnAdsLoadedListener() {
@Override
public void onLoadError(@NonNull AdError adError) {
...
}
@Override
public void onAdsLoaded(@NonNull Collection<NativeAd> collection) {
...
}
}, NATIVE_ADS_COUNT);
ย
๋น๋์ค ๊ด๊ณ ๋ฆฌ์ค๋ ๋ฑ๋ก
๋น๋์คํ ๊ด๊ณ ์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
๋ค์์ MediaView
์ ๋น๋์ค ๊ด๊ณ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋ฑ๋กํ๋ ์์์
๋๋ค.
mediaView.setVideoEventListener(new VideoEventListener() {
@Override
public void onVideoStarted() {
}
@Override
public void onError(@NonNull VideoErrorStatus videoErrorStatus, @Nullable String errorMessage) {
if (errorMessage != null) {
Toast.makeText(mediaView.getContext(), errorMessage, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onResume() {
}
@Override
public void onPause() {
}
@Override
public void onReplay() {
}
@Override
public void onVideoEnded() {
// ๋์์ ์ฌ์ ์๋ฃ์ ํ์ํ ์ฒ๋ฆฌ
}
@Override
public void onLanding() {
// ๋์์ ๊ด๊ณ ๋๋ฉ์ ํ์ํ ์ฒ๋ฆฌ
}
});