본문으로 건너뛰기

베네핏허브(BenefitHub)

베네핏허브를 추가하고 설정하고 SDK 인터페이스를 사용해 부가 기능을 구현하는 방법을 알아보세요.

 중요
Buzzvil SDK v6에서는 베네핏허브 지면이 기존의 네이티브 방식에서 WebView 기반으로 전환되었습니다.
이에 따라 SDK 및 앱 업데이트 없이도 새로운 기능 및 콘텐츠를 실시간으로 제공할 수 있게 되었으며, 고객사 앱의 배포 부담을 줄이는 동시에 서비스 유연성과 확장성을 더욱 강화하였습니다.

✏️  참고
베네핏허브는 피드(Feed)의 새로운 이름입니다.

주요 특징

베네핏허브는 대량의 광고 게재가 가능한 오퍼월 형태의 광고 지면입니다. 이러한 장점을 기반으로 버즈빌은 다른 유형의 지면에서 베네핏허브로 유저를 유입해 더 많은 광고를 노출하는 경로 설계를 지원합니다.

연동

베네핏허브를 연동하는 방법을 확인해 보세요.

1 단계. 준비하기

2 단계. 베네핏허브 표시하기

베네핏허브는 전체화면 UI로 나타나며, 베네핏허브가 유저에게 표시되면 광고가 자동으로 할당됩니다.

import com.buzzvil.buzzbenefit.benefithub.BuzzBenefitHub

BuzzBenefitHub.show(context)

✏️  참고
유저에게 다른 형태로 베네핏허브를 제공하려면 프래그먼트로 베네핏허브 연동하기 토픽을 참고하세요.

기본 설정

베네핏허브에서 기본적으로 설정해야 하는 기능을 안내합니다. 앱에서 코드를 수정하거나 재배포하지 않고도 활성화하거나 설정을 변경할 수 있습니다.

베네핏허브를 구성하는 주요 기능들은 아래 그림을 참고하세요.

✏️  참고
공지사항과 버즈부스터 기능은 향후 업데이트를 통해 만나보실 수 있습니다.

럭키박스

럭키박스는 베네핏허브 리텐션을 증대하는 “데일리 리워드”의 업그레이드 기능으로, 연속 참여 달성을 독려하는 “부활” 시스템 탑재함과 동시에 네트워크 노출형 및 동영상 광고를 활용해 럭키박스 리워드 적립의 기본 플로우만으로도 매출을 발생시킵니다. 또한, 무한 스크롤과 오토로딩이 가능한 가로 스와이프 방식으로 버즈빌의 직영업 및 네트워크 광고를 유저에게 카테고리별로 제공합니다.

해당 기능은 별도의 개발 과정 없이도 SDK를 연동하기만 하면 활성화가 가능합니다. 또한 LuckyBox라는 별도의 지면으로 운영되며, 대시 어드민에서 럭키박스 지면의 DAU와 매출을 모니터링할 수도 있습니다.

베네핏허브의 광고 할당과 표시가 완료되면 버즈빌 담당자(help@buzzvil.com)에게 연락하여 럭키박스 지면을 활성화하세요.

✏️  참고

  • 럭키박스 디자인을 변경하려면 커스터마이징 토픽을 참고하세요.
  • 앱에서 바로 럭키박스로 이동하는 진입점을 구현해 럭키박스를 활용해 앱 DAU를 15% 까지 개선한 유저 경험을 설계하실 수 있습니다. 럭키박스를 진입점으로 구현하려면 럭키박스 페이지를 참고하세요.

미션팩

미션팩은 유저들이 광고를 참여해 받은 리워드의 일부분(%)을 미션을 모두 완수했을 때 특별 보상으로 지급하는 기능입니다. 매주 월요일에 자동으로 시작해 일요일 자정에 종료되는 주간 단위의 미션이며, 높은 매출 성과를 낼 수 있는 광고들을 게이미피케이션 요소를 통해 학습시키고 매출의 개선을 이뤄낼 수 있습니다. 미션팩 화면에서 유저가 "참여하기" 버튼을 클릭하면 미션에 맞는 광고를 곧바로 참여할 수 있는 화면 또한 제공합니다.

  • 원하는 광고와 미션의 갯수를 자유롭게 세팅
  • 깔끔하고 세련된 유저 중심의 UI와 UX
  • 코드 수정 없이 가능한 다양하고 폭 넓은 UI 커스텀 지원
  • 매출와 유저 인게이지먼트 성과에 맞게 조정 가능한 특별 보상 비율
  • 베네핏허브를 표시할 떄 가장 먼저 미션팩 화면을 열 수 있는 기능 지원

해당 기능은 별도의 개발 과정 없이도 SDK를 연동하기만 하면 활성화가 가능합니다. 베네핏허브의 광고 할당과 표시가 완료되면 버즈빌 담당자(help@buzzvil.com)에게 연락하여 미션팩을 활성화하세요.

✏️  참고

  • 미션팩 디자인을 변경하려면 커스터마이징 토픽을 참고하세요.
  • 미션팩을 진입점으로 구현하려면 미션팩 페이지를 참고하세요.

적립 내역

적립 내역 기능은 유저가 버즈빌 지면을 통해 획득한 포인트 정보를 확인할 수 있도록 제공되는 기본 기능입니다. 포인트 적립 시점과 금액 기준으로 내역을 조회할 수 있어, 포인트 적립 현황을 명확하게 파악할 수 있습니다.

✏️  참고
내역은 유저 단위로 제공되며, 최근 3개월 이내의 적립 정보만 확인 가능합니다. 내역 조회 기준은 버즈빌 정책에 따라 변경될 수 있습니다.
적립 내역 기능을 사용하지 않으려면 버즈빌 담당자(help@buzzvil.com)에게 문의하세요.

적립 내역 바로 열기

베네핏허브 외부에서 적립 내역 페이지를 바로 열 수 있습니다. 아래 코드를 참고하세요.

import com.buzzvil.buzzbenefit.benefithub.BuzzBenefitHub
import com.buzzvil.buzzbenefit.benefithub.BuzzBenefitHubConfig
import com.buzzvil.buzzbenefit.benefithub.BuzzBenefitHubRoutePath

// 적립내역 바로 열기
val benefitHubConfig = BuzzBenefitHubConfig.Builder()
.routePath(BuzzBenefitHubRoutePath.HISTORY)
.build()
BuzzBenefitHub.show(context = requireContext(), benefitHubConfig = benefitHubConfig)

광고 유형별 섹션

웹 베네핏허브에서는 기존 카드형 광고 외에도 다양한 형태의 광고 섹션을 제공합니다. 리스트, 썸네일, 캐러셀, 미니카드 등 각각의 UI는 콘텐츠 구성 방식에 따라 구분되며, 유저에게 보다 직관적이고 풍부한 경험을 제공합니다.

이러한 광고 섹션은 매출 증대를 원하는 광고를 전략적으로 배치하거나, 유저 선호도가 높은 상품을 강조하여 앱의 활성화 지표와 광고 성과를 동시에 개선할 수 있습니다.

섹션 유형설명
리스트 목록텍스트 기반 정보 중심의 광고 목록입니다. 광고명과 보상 정보를 간결하게 전달하며, 간단한 리워드형 광고에 적합합니다.
썸네일 목록이미지와 텍스트가 함께 구성된 수직형 광고 목록입니다. 광고 상품의 이미지를 시각적으로 강조하고 싶을 때 적합합니다.
썸네일 캐러셀썸네일 목록을 좌우로 넘길 수 있는 캐러셀 형태로 구성한 섹션입니다. 한정 수량, 미션 달성형 광고 등 진행 상태를 함께 표시할 수 있습니다.
기본카드 Carousel대표 이미지와 광고 정보를 포함한 단일 카드형 캐러셀입니다. 브랜드 강조형 광고나 고정 섹션 운영 시 활용됩니다.
미니카드 그리드한 섹션 내에 다수의 광고를 한눈에 보여주는 2열 또는 4열 카드형 구성입니다. 다양한 광고를 빠르게 탐색할 수 있도록 돕습니다.
미니카드 캐러셀미니카드를 좌우로 넘길 수 있는 캐러셀 형태로 구성한 섹션입니다. 시리즈성 콘텐츠나 유사 상품 묶음에 적합합니다.
쇼핑 캐러셀실제 상품 이미지와 가격 정보를 포함한 커머스형 광고 섹션입니다. 할인율, 적립 포인트 등의 정보를 시각적으로 강조할 수 있습니다.

광고 분류 필터

유저가 참여하고 싶은 유형의 광고만 볼 수 있는 필터 UI를 설정하여 유저의 광고 참여 경험과 광고 효율을 높일 수 있습니다. UI 스트링, 필터 종류 등의 설정을 변경하려면 버즈빌 담당자(help@buzzvil.com)에게 연락하세요.

무한 스크롤 기능

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

개인정보 제3자 제공 동의 모달

 중요
버즈빌과 개인정보 위수탁 관계이며 앱에서 자체적으로 제공하는 개인정보 처리방침 정책에 버즈빌을 수탁자로 포함하고 있다면, 여기에서 안내하는 개인정보 제3자 제공 동의 UI를 띄우지 않아도 됩니다.

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

팝 추가 유도 모달

베네핏허브 진입점인 팝(Pop) 기능을 연동한 경우 사용하게 제공되는 기능입니다. 유저가 베네핏허브에 진입한 후 광고를 클릭한 후 다시 돌아오면 지면 위에 모달이 나타납니다. 모달의 CTA를 탭하면 시스템 설정의 다른 앱 위에 표시 메뉴로 이동합니다.

✏️ 참고
이 기능을 사용하지 않으려면 버즈빌 담당자(help@buzzvil.com)에게 문의하세요.

오류 화면

베네핏허브에서 광고 할당에 실패하는 경우, 상황에 따라 적절한 오류 화면이 노출됩니다. 각 오류는 유저의 상태나 네트워크 환경 등을 기반으로 구분되며, 명확한 안내 메시지와 함께 전체 테마에서 설정한 주요 색상의 버튼으로 일관된 UI를 제공합니다.

오류 상황설명
제3자 정보 제공 동의유저가 개인정보 제3자 제공 동의를 하지 않은 경우 노출됩니다. 자세한 내용은 개인정보 제3자 제공 동의 모달 항목을 참고하세요.
14세 이하 유저 대상베네핏허브는 만 14세 이상 유저만 광고 참여가 가능하므로, 14세 미만 유저에게는 서비스 이용 불가 안내가 노출됩니다. 로그인 요청하기에서 설정한 나이 정보를 기준으로 판단됩니다.
네트워크 문제 발생네트워크 연결이 불안정하거나 오프라인 상태인 경우 노출됩니다.
알 수 없는 오류 (Unknown)시스템 내에서 특정 오류를 식별할 수 없는 예외 상황 발생 시 노출됩니다. 유저에게는 일시적인 문제로 인식되도록 안내하며, 잠시 후 다시 시도할 수 있도록 유도합니다.

앱 UI에 진입 경로 구현

앱 화면의 아이콘, 버튼, 배너 등 레이아웃 UI에 뷰를 직접 구현하여 베네핏허브로 진입하는 경로를 만들 수 있습니다.

진입 경로를 생성할 수 있는 UI 컴포넌트의 예시는 아래 다이어그램을 참고하세요. 또한 GitHub 샘플 코드에서 제공하는 다양한 커스텀 진입 경로들의 샘플 코드를 확인해 보세요.

추가 구현

베네핏허브에서 추가 기능을 구현하는 방법을 안내합니다.

프래그먼트로 베네핏허브 연동하기

베네핏허브의 내비게이션 바를 사용하지 않고 앱의 내비게이션 바를 사용하려면 프래그먼트로 베네핏허브를 연동해야 합니다.

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

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

import com.buzzvil.buzzbenefit.benefithub.BuzzBenefitHub

class YourBenefitHubActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_your_benefit_hub)

if (savedInstanceState == null) {
// SDK를 초기화 하지 않은 경우 null이 반환됩니다.
val buzzBenefitHubFragment: BuzzBenefitHubFragment? = BuzzBenefitHubFragment.newInstance()

if (buzzBenefitHubFragment != null) {
supportFragmentManager.beginTransaction().apply {
add(R.id.yourFragmentContainer, buzzBenefitHubFragment)
commit()
}
} else {
// 적절한 예외 처리를 추가하세요.
}
}
}
}
<!-- activity_your_benefit_hub.xml -->

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".YourBenefitHubActivity">

<!-- 내비게이션 바를 원하는 형태로 구현합니다. -->
<LinearLayout
android:id="@+id/yourToolbar"
android:layout_width="0dp"
android:layout_height="64dp"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title" />
</LinearLayout>

<androidx.fragment.app.FragmentContainerView
android:id="@+id/yourFragmentContainer"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/yourToolbar" />
</androidx.constraintlayout.widget.ConstraintLayout>

기본 내비게이션 바 제거하기

베네핏허브 상단에 기본적으로 제공하는 내비게이션 바를 숨김 처리 할 수 있습니다.

설정을 변경하려면 버즈빌 담당자(help@buzzvil.com)에게 연락하세요.

❗️ 주의
자체 구현한 내비게이션 바를 사용하는 경우, 뒤로가기 등의 동작이 정상적으로 작동하는지 확인이 필요합니다.