목차
개요
여기에서는 BuzzAd Android용 SDK의 Native 지면을 연동하는 방법은 안내합니다. Native 지면은 광고 지면 레이아웃을 직접 구성한 후 버즈빌 서버로부터 광고 데이터를 할당받아 광고 지면에 표시합니다.
준비 사항
2. 시작하기 적용 완료
Native 지면에 사용할 Unit ID (이하
YOUR_NATIVE_UNIT_ID
)
광고 레이아웃 구성하기
Native 광고 레이아웃을 구성하는 정보와 UI에 대해서는 아래의 표를 참고하세요.
항목 | 설명 |
---|---|
필수 광고 제목 | 광고의 제목입니다. 최대 10자까지 권장하며, 필요에 따라 글자 수에 상관 없이 일정 부분은 생략 부호도 대체할 수 있습니다. |
필수 광고 소재 | 이미지, 동영상 등 광고 소재입니다. 광고 소재의 종횡비는 반드시 유지해야 합니다.
|
필수 광고 설명 | 광고에 대한 상세 설명입니다. 최대 40자까지 권장하며, 필요에 따라 글자 수에 상관 없이 일정 부분은 생략 부호도 대체할 수 있습니다. |
필수 광고주 아이콘 | 광고주 아이콘 이미지입니다. 아이콘의 종횡비는 반드시 유지해야 합니다.
|
필수 CTA 버튼 | 광고의 참여를 유도하는 버튼입니다. 최대 7자까지 권장하며, 필요에 따라 글자 수에 상관 없이 일정 부분은 생략 부호도 대체할 수 있습니다.
CTA 버튼의 디자인을 변경하려면 CTA 버튼 커스터마이징 토픽을 참고하세요. |
권장 광고 알림 문구 | 광고임을 명시하는 문구입니다. (예: 광고, ad, 스폰서, Sponsored) |
Native 광고 레이아웃은 액티비티 또는 프래그먼트 레이아웃에 아래 구조에 맞게 구성해야 합니다. Native 광고 지면을 구현하려면 NativeAdView
의 규격에 맞는 레이아웃(your_native_ad.xml
)을 구현하세요.
다음은 NativeAdView
의 레이아웃 예시입니다.
<com.buzzvil.buzzad.benefit.presentation.nativead.NativeAdView android:id="@+id/native_ad_view"> <!-- MediaView와 CtaView는 NativeAdView의 하위 컴포넌트로 구현해야합니다.--> <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.CtaView android:id="@+id/ctaView" ...생략... /> </com.buzzvil.buzzad.benefit.presentation.nativead.NativeAdView>
액티비티 또는 프래그먼트 이외의 다른 방식으로 Native 지면을 구현하려면 버즈빌 담당자에게 문의하세요.
광고 할당 및 표시하기
Native 지면에 광고를 할당받고 표시하려면 예시 코드를 참고하여 다음의 절차를 따르세요.
loadAd()
를 호출하여 광고를 할당받으세요.NativeAdViewBinder
에nativeAdView
,MediaView
, 그리고 광고를 보여주기 위해 필요한 뷰를 모두 설정하세요.bind()
를 호출하여 광고 레이아웃에 광고 데이터를 바인딩하세요.
loadAd()
와 bind()
를 호출하는 시점을 원하는 대로 구현할 수 있습니다. 단, 버즈빌은 원활한 광고 할당을 위해 호출 시점을 최대한 가깝게 구현하는 것을 권장합니다. 그렇지 않으면 광고 할당 로직에 의해 광고 게재율에 영향이 있을 수 있습니다.
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 ImageView iconImageView = nativeAdView.findViewById(R.id.imageIcon); final TextView descriptionTextView = nativeAdView.findViewById(R.id.textDescription); 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) { // 할당된 광고가 없으면 호출됩니다. Log.e(TAG, "Failed to load a native ad.", adError); } });