(ver 3.0.x) 3.2. 고급 설정

목차

개요

여기에서는 BuzzAd Android용 SDK의 Feed 지면에서 구현하는 기능을 설명하고 각 기능을 변경하는 방법을 설명합니다.

지면 상의 기능을 변경하거나 구현하려면 SDK에서 제공하는 기본 UI를 사용하거나 직접 클래스를 구현할 수 있습니다. 직접 클래스를 구현하려면 아래의 조건을 충족해야 하며, 아래 조건을 충족하지 않는 경우 자체 구현이 적용되지 않습니다.

  • 구현 클래스는 내부 클래스가 아니어야 합니다.

  • 내부 클래스로 생성해야 할 경우, public static 클래스로 구현해야 합니다.

 

프래그먼트로 Feed 연동하기

더 다양한 연동 방식을 제공하기 위해 BuzzAd Android용 SDK는 Feed 지면을 제공하는 기본 방식인 액티비티 외에도 프래그먼트를 통한 연동을 지원합니다.

프래그먼트로 Feed 지면을 연동하려면, 액티비티에 프래그먼트를 추가하고 해당 액티비티의 onCreate()에서 프래그먼트를 초기하세요.

다음은 FeedFragment를 연동하는 예시입니다.

class YourActivity extends Actvity { @Override public void onCreate() { super.onCreate(); // 광고를 새로 할당 받기 위해 필요한 부분입니다. final BuzzAdFeed buzzAdFeed = new BuzzAdFeed.Builder().build(); final FeedFragment feedFragment = buzzAdFeed.getFragment(); getSupportFragmentManager() .beginTransaction() .replace(android.R.id.content, feedFragment) .commitAllowingStateLoss(); } }

FeedFragment의 UI를 변경하려면 Feed 디자인 커스터마이징 토픽을 참고하세요.

 

개인 정보 수집 동의 UI

개인 정보 보호법과 구글 정책에 따라, 개인 정보 수집 및 사용에 대한 사용자의 동의가 필요합니다. BuzzAd Andorid용 SDK는 동의를 얻기 위한 UI를 제공하며, 사용자가 개인 정보 수집에 동의하지 않으면, Feed 지면에 광고가 할당되지 않습니다. Feed 지면에 처음 진입한 사용자에게는 아래와 같은 UI가 표시됩니다.

BuzzAd Andorid용 SDK의 개인 정보 수집 동의 UI를 사용하지 않거나 다시 표시하고 싶은 경우 아래 표를 참고하세요.

Class

API

설명

Class

API

설명

BuzzAdBenefit

getPrivacyPolicyManager()(정적 메소드)

PrivacyPolicyManager 인스턴스를 반환합니다.

PrivacyPolicyManager

showConsentUI(context, new PrivacyPolicyEventListener())

개인 정보 수집 동의 UI를 표시합니다.

grantConsent()

개인 정보 수집에 동의합니다.
사용자가 처음 Feed 지면에 진입하기 전에 호출하면 사용자에게 개인 정보 수집 동의 UI가 보이지 않습니다.

revokeConsent()

개인 정보 수집 동의를 철회합니다.
사용자가 동의를 철회하고 Feed 지면에 진입하는 경우, 개인 정보 수집 동의 UI가 다시 표시됩니다.

isConsentGranted()

개인 정보 수집 동의 여부를 확인합니다.

PrivacyPolicyEventListener

onUpdated(accepted: Boolean)

showConsentUI를 호출하면 보여지는 UI에서 사용자가 동의하면 accepted가 True 로 호출됩니다. 미동의 시에는 accepted가False로 호출됩니다.

 

광고 분류 기능

Feed 광고 분류 기능은 탭과 필터 UI를 사용하여 유형 별로 분류된 광고를 사용자에게 보여주는 기능입니다. 탭과 필터 기능을 사용하면 사용자가 참여하고 싶은 유형의 광고만 볼 수 있어 사용자의 광고 참여 경험과 광고 효율을 높일 수 있습니다.

광고 분류 기능에 대한 설정은 앱에서 코드를 수정하거나 재배포 하지 않고 변경할 수 있습니다. 설정을 변경하려면 버즈빌 담당자에게 연락하세요.

광고 분류 탭과 필터

탭의 갯수, 탭의 이름, 탭으로 모아서 게재할 광고 유형을 설정할 수 있습니다. 탭은 최대 3개까지 설정할 수 있으며, 초기에는 광고 적립, 쇼핑 적립 탭이 설정됩니다. 이 중에서 광고 적립 탭에는 쇼핑 광고를 제외한 나머지 유형의 광고가 노출되며, 쇼핑 적립 탭에는 쇼핑 광고가 노출됩니다.

탭으로 분류할 수 있는 광고의 유형은 노출형 광고, 참여형 광고, 비디오 광고, 소셜미디어 광고, 쇼핑 광고입니다. 각 탭은 한 개 이상의 광고 유형으로 구성할 수 있습니다. 단, 쇼핑 광고의 경우 다른 광고 유형과 함께 탭으로 구성할 수 없습니다. 탭이 여러 개의 광고 유형으로 구성되면 ‘클릭하기’, ‘참여하기’ 등 광고 유형을 세분화하는 필터 UI가 노출됩니다.

 

무한 스크롤 기능

Feed 무한 스크롤 기능은 사용자가 Feed에 진입해 할당된 광고 목록을 끝까지 스크롤 해 더 이상 볼 수 있는 광고가 없으면 자동으로 추가 광고를 할당해 기능입니다. 이 기능은 기본적으로 활성화 되어 있으며, 앱에서 코드를 수정하거나 재배포를 하지 않고 무한 스크롤 기능의 활성화 여부를 설정할 수 있습니다. 설정을 변경하려면 버즈빌 담당자에게 연락하세요.

 

툴바 자체 구현하기

Feed 툴바의 디자인을 변경할 수 있습니다. 툴바 영역의 UI를 변경하는 방법은 2가지입니다. 아래 2가지 방법 중 하나를 선택하여 연동하세요.

프래그먼트(FeedFragment)로 Feed 지면을 연동한 경우에는 툴바를 자체 구현할 수 없습니다.

SDK 기본 UI 사용하기

BuzzAd Android용 SDK에서 제공하는 기본 UI를 수정하여 타이틀 혹은 배경색을 변경할 수 있습니다.

다음은 기본 UI를 수정하여 툴바를 변경하는 예시입니다.이 예시에서는 DefaultFeedToolbarHolder를 상속받은 클래스를 구현하고, 기본 UI인 FeedToolbar를 사용하여 타이틀 혹은 배경색을 변경합니다. 그리고 FeedConfig에 구현한 클래스를 추가합니다.

public class YourFeedToolbarHolder extends DefaultFeedToolbarHolder { @Override public View getView(Activity activity, @NonNull final String unitId) { toolbar = new FeedToolbar(activity); // FeedToolbar 에서 제공하는 기본 템플릿을 사용합니다. toolbar.setTitle("YourFeedToolbarHolder"); toolbar.setIconResource(R.drawable.your_icon); toolbar.setBackgroundColor(Color.parseColor("#123456")); addInquiryMenuItemView(activity); // 문의하기 버튼은 이 함수를 통해 추가할 수 있습니다. addSettingsMenuItemView(activity); // 세팅 버튼은 이 함수를 통해 추가할 수 있습니다. addRightMenuItemView1(activity); // 커스터마이징한 버튼 추가할 수 있습니다. return toolbar; } // 커스터마이징한 버튼을 추가하려면 DefaultMenuLayout 를 사용하여 View 를 생성하고 // toolbar.addRightMenuButton 를 사용하여 toolbar 에 추가합니다. private void addRightMenuItemView1(@NonNull final Activity activity) { MenuLayout menuLayout = new DefaultMenuLayout(activity, R.mipmap.ic_launcher); menuLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showInquiry(); // showInquiry 를 호출하여 문의하기 페이지로 연결합니다. } }); toolbar.addRightMenuButton(menuLayout); } }
final FeedConfig feedConfig = new FeedConfig.Builder("YOUR_FEED_UNIT_ID") .feedToolbarHolderClass(YourFeedToolbarHolder.class) .build();

직접 구현한 Custom View 사용하기

BuzzAd Android용 SDK에서 제공하는 UI를 사용하지 않고 직접 Custom View를 구현하여 툴바를 변경할 수 있습니다.

Custom View를 직접 생성하여 툴바를 변경하려면 아래에 순서에 따라 구현하세요.

  1. DefaultFeedToolbarHolder의 서브클래스를 생성하세요.

  2. 툴바 Custsom View를 your_toolbar_header_layout.xml에 구현하세요.

  3. FeedConfig 객체를 생성하고, feedToolbarHolderClass()DefaultFeedToolbarHolder 서브클래스를 추가하세요.

직접 구현한 툴바 높이 값 수정하기

Custom View의 높이가 안드로이드 액티비티의 기본 액션바 높이와 다를 경우, 직접 구현한 View가 정상적으로 보이지 않을 수 있습니다. 이 경우에는 BuzzAdFeedTheme 객체의 toolbarHeight() 속성에 툴바의 높이 값을 수정하세요.

 

헤더 영역 자체 구현하기

Feed 헤더 영역을 자유롭게 활용할 수 있습니다. 예를 들어, Feed 영역을 설명하는 공간으로 활용하거나 적립 가능한 금액을 표시할 수도 있습니다.

다음은 헤더 영역을 변경하는 예시입니다.

FeedHeaderViewAdapter 인터페이스를 구현하는 클래스를 생성하고 Custom View(your_feed_header_layout)를 헤더 영역에 구현합니다. 그리고 FeedConfigfeedHeaderViewAdapterClass() 속성에 구현한 클래스를 추가합니다.

 

기본 적립 포인트 알림 팝업 자체 구현하기

사용자가 Feed 지면에 접근하면 일정 주기로 광고에 참여하지 않아도 기본 포인트를 지급합니다. 기본 적립 포인트 지급 알림 팝업을 직접 구현하고 디자인을 변경하여 사용자 경험을 개선할 수 있습니다.

다음은 기본 적립 포인트 지급 알림 팝업을 직접 구현하는 예시입니다.

  1. BaseRewardNotificationAdapter 인터페이스를 구현하는 클래스를 생성하세요.

  2. FeedConfig에서 이전 단계에서 생성한 CustomBaseRewardNotificationAdapter를 설정하세요.

 

광고 디자인 자체 구현하기

BuzzAd Android SDK에서 제공하는 광고는 일반 광고와 쇼핑 적립 광고가 있습니다. 쇼핑 적립형 광고는 사용자가 광고를 통해 물건 구매를 달성하는 경우 사용자에게 구매 금액의 일정 비율을 포인트로 돌려주는 광고입니다. 일반 광고는 쇼핑 적립형 광고를 제외한 나머지 유형의 광고입니다.

일반 광고와 쇼핑 적립 광고는 광고를 표현할 수 있는 다양한 정보로 구성됩니다. 일반 광고와 쇼핑 적립 광고를 구성하는 정보와 UI에 대해서는 아래의 표를 참고하세요.

광고 유형

항목

설명

광고 유형

항목

설명

공통(일반, 쇼핑 적립)

필수 광고 제목

광고의 제목입니다. 최대 10자까지 권장하며, 필요에 따라 글자 수에 상관 없이 일정 부분은 생략 부호도 대체할 수 있습니다.

필수 광고 소재

이미지, 동영상 등 광고 소재입니다. 광고 소재의 종횡비는 반드시 유지해야 합니다.

  • com.buzzvil.buzzad.benefit.presentation.media.MediaView를 사용해서 표시해야 합니다.

  • 사이즈: 1,200 x 627 (px)

  • 여백을 추가할 수 있습니다. 자세한 내용은 버즈빌 매니저에게 문의하세요.

필수 광고 설명

광고에 대한 상세 설명입니다. 최대 40자까지 권장하며, 필요에 따라 글자 수에 상관 없이 일정 부분은 생략 부호도 대체할 수 있습니다.

필수 광고주 아이콘

광고주 아이콘 이미지입니다. 아이콘의 종횡비는 반드시 유지해야 합니다.

  • 사이즈: 80 x 80 (px)

필수 CTA 버튼

광고의 참여를 유도하는 버튼입니다. 최대 7자까지 권장하며, 필요에 따라 글자 수에 상관 없이 일정 부분은 생략 부호도 대체할 수 있습니다.

  • com.buzzvil.buzzad.benefit.presentation.media.DefaultCtaView를 사용해서 표시해야 합니다.

CTA 버튼의 디자인을 변경하려면 CTA 버튼 커스터마이징 토픽을 참고하세요.

권장 광고 알림 문구

광고임을 명시하는 문구입니다. (예: 광고, ad, 스폰서, Sponsored)

쇼핑 적립

권장 OriginalPrice View

상품의 원가를 표시합니다.

권장 Price View

상품의 할인된 가격을 표시합니다.

권장 DiscountRate View

상품 가격의 할인율을 표시합니다. 할인율은 원가와 할인가로 비교하여 산출해서 표시해야 합니다.

 

일반 광고 디자인 자체 구현하기

일반 광고의 디자인을 변경하려면 다음의 절차를 따르세요.

  1. 일반 광고용 NativeAdView의 규격에 맞는 레이아웃(your_feed_ad.xml)을 구현하세요.

     

  2. AdsAdapter의 상속 클래스를 구현하세요.

    • onCreateViewHolder에서 your_feed_ad.xml을 사용하여 NativeAdView를 생성하세요.

    • onBindViewHolder에서 NativeAdViewBinder를 이용하여 광고 데이터(NativeAd)를 앞서 생성한 NativeAdView에 바인딩하세요.

    • NativeAdEventListener 를 통해 광고 콜백 이벤트 수신 기능을 부가적으로 추가할 수도 있습니다.

  3. FeedConfig에 위에서 작성한 CustomAdsAdapter를 광고 어댑터 클래스로 설정하세요.

 

쇼핑 적립 광고 디자인 자체 구현하기

쇼핑 적립 광고의 디자인을 변경하려면 다음의 절차를 따르세요.

  1. 쇼핑 적립 광고용 NativeAdView의 규격에 맞는 레이아웃(your_feed_ad_cps.xml)을 구현하세요.

    • 일반 광고용 레이아웃에서 priceText, originalPriceText, discountPercentageText를 추가해야 합니다.

       

  2. 일반 광고 디자인 자체 구현하기 토픽을 참고해 AdsAdapter의 상속 클래스를 구현하세요.
    다음의 예시 코드를 참고하세요.

     

  3. FeedConfig에 위에서 작성한 CustomCPSAdsAdapter를 쇼핑 적립형 광고 어댑터 클래스로 설정하세요.

 

CTA 버튼 자체 구현하기

BuzzAd Android용 SDK에서 기본으로 제공하는 UI를 사용하지 않고 직접 구현할 수 있습니다.

CTA 버튼을 직접 구현하려면 다음의 절차를 따르세요.

  1. 뷰 레이아웃(view_customized_cta.xml)을 구현하세요.
    다음은 레이아웃 리소스로 뷰 레이아웃을 구현한 예시입니다.

  2. CtaView 클래스를 상속하는 서브클래스인 CustomCtaView를 생성하세요.

  3. CtaView 클래스에서 사용하던 CTA View 레이아웃을 inflate하도록 구현하세요.

  4. 사용자의 광고 참여 상태에 따라 호출되는 아래의 오버라이딩 메소드에서 CTA 버튼의 아이콘 이미지, 텍스트, 리워드 값을 구현하세요.

    • renderViewParticipatingState : 사용자가 광고에 참여 중인 상태 (예: 액션형 광고의 랜딩 페이지에 진입한 상태)

    • renderViewParticipatedState : 사용자가 광고 참여를 완료한 상태

    • renderViewRewardAvailableState : 사용자가 아직 광고에 참여하지 않은 상태

    • renderViewRewardNotAvailableState : 사용자가 획득할 리워드가 없는 광고

  5. 새로 생성한 CustomCtaView 클래스의 경로를 Feed 광고 레이아웃에 설정하세요.
    다음은 Feed 광고의 레이아웃 예시입니다.

  6. 다음 순서에 따라 직접 구현한 CTA 버튼을 Feed 광고에 반영하세요.

    1. 광고 디자인 자체 구현하기를 참고하여 CustomAdsAdapter 를 구현하세요.

    2. CustomAdsAdapter.onBindViewHolder에서 CustomCtaView를 객체화하세요.

    3. NativeAdViewBinder.Builder에 새로 생성한 CustomCtaView를 바인딩하세요.

CTA 버튼 자체 구현하기(v3.0.0, v3.0.1)

  1. 뷰 레이아웃(view_customized_cta.xml)을 구현하세요.
    다음은 레이아웃 리소스로 뷰 레이아웃을 구현한 예시입니다.

  2. CtaView 를 상속하는 서브클래스를 생성하세요.
    다음은 CTA View 클래스를 생성한 예시입니다.

  3. Feed 광고 레이아웃에서 자체 구현한 CTA 뷰를 사용하세요.
    다음은 레이아웃 예시입니다.

  4. CustomCtaView 객체에 위에서 설정한 CTA View를 가져오고, NativeAdViewBinder에서 광고 데이터를 바인딩하세요.

 

광고 미할당 안내 디자인 자체 구현하기

Feed 지면에 진입한 시점에 노출할 광고가 없다면 광고 미할당 안내 UI가 표시됩니다. 미할당 안내 디자인은 자체 구현하여 변경할 수 있습니다.

광고 미할당 안내 디자인을 직접 구현하려면 다음의 절차를 따르세요.

  1. Feed 지면에 광고가 할당되지 않았을 때의 화면에 추가할 에러 이미지(feedErrorImageView), 타이틀(feedErrorTitle), 상세 설명(feedErrorDescription) 레이아웃을 작성하세요.

  2. FeedErrorViewHolder를 구현하는 커스텀 클래스 CustomErrorView를 새로 생성하고, 자동 완성되는 GetView() 메소드를 다음과 같이 구현하세요.

  3. FeedConfigfeedErrorViewHolderClass 속성에 이전 단계에서 생성한 CustomErrorView 클래스를 추가하세요.

     

사용자 프로필 입력 배너 노출 여부 설정하기

사용자가 출생연도 또는 성별 정보를 제공하지 않으면 헤더 영역에 프로필 정보를 입력하는 배너가 기본적으로 노출됩니다. FeedConfig를 수정하여 프로필 정보 입력 배너의 노출 여부를 설정할 수 있습니다. 다음은 프로필 입력 배너를 표시하지 않는 예시입니다.