/
(ver 2.31.x) 4.2. ๊ณ ๊ธ‰ ์„ค์ •

(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() { // ๋™์˜์ƒ ๊ด‘๊ณ  ๋žœ๋”ฉ์‹œ ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ } });