(ver 3.3.x) 4.1. 기본 설정
목차
- 1 개요
- 2 준비 사항
- 3 광고 레이아웃 구성하기
- 4 광고 할당 및 표시하기
개요
여기에서는 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);
}
});
할당된 광고가 없을 때에는 AdError
의 errorMessage
가 empty response로 전달되고, 광고가 노출되지 않습니다.