엔트리포인트(EntryPoint)
엔트리포인트를 추가하고 SDK 인터페이스를 사용해 부가 기능을 구현하는 방법을 알아보세요.
주요 특징
엔트리포인트는 앱 내 다양한 위치에 자연스럽게 배치할 수 있는 진입 컴포넌트로, 유저가 콘텐츠에 쉽게 접근할 수 있도록 도와줍니다. 플로팅 버튼(FAB), 배너(Banner), 바텀 시트(BottomSheet), 팝업(Popup), 커스텀(Custom) 등 다양한 UI 유형을 지원하며, 기획 목적에 따라 자유롭게 선택하고 배치할 수 있습니다. 버즈빌 대시 어드민을 통해 설정할 수 있으며, 클릭 시 베네핏허브, 럭키박스, 미션팩 등으로 이동하거나 앱 내 특정 화면으로 연결되는 딥링크를 설정할 수 있습니다.
연동
엔트리포인트를 연동하는 방법을 확인해 보세요.
1 단계. 준비하기
- 시작하기 적용 완료
2 단계. 설정하기
✏️ 참고
네이티브 오버레이의 경우 네이티브 오버레이 사용하기를 참고하세요.
엔트리포인트를 설정하려면 버즈빌 담당자(help@buzzvil.com)에게 연락하세요.
엔트리 포인트 유형
유형 | 설명 |
---|---|
FAB | 플로팅 액션 버튼으로, 화면의 오른쪽 하단에 위치합니다. |
Banner | 화면 내 원하는 위치에 고정된 배너 형태로, 여러 개의 배너 엔트리 목록을 슬라이드 형식으로 표시하며 3초마다 자동 전환됩니다. |
Popup | 팝업 형태로, 화면 중앙에 표시됩니다. |
BottomSheet | 바텀 시트 형태로, 화면 하단에서 위로 슬라이드 하여 표시됩니다. |
Custom | 커스텀 UI를 사용하여 엔트리포인트를 구현할 수 있습니다. |
엔트리 포인트 이미지
유형 | 이미지 |
---|---|
FAB | ![]() |
Banner | ![]() |
Popup | ![]() |
BottomSheet | ![]() |
엔트리 포인트 UI 지원 규격
유형 | 규격 |
---|---|
FAB |
|
Banner |
|
Popup |
|
BottomSheet |
|
3 단계. 요청하기
아래 코드를 참고하여 엔트리포인트를 요청하세요.
✏️ 참고
load
를 호출하면 대시 어드민에 활성화된 모든 엔트리포인트 정보를 한 번에 가져옵니다.
BuzzEntryPoint.load(
onSuccess = { availableTypes ->
// 요청에 성공하면 표시 가능한 엔트리포인트 타입 배열과 함께 호출됩니다.
}, onError = { buzzAdError ->
// 요청에 실패하면 에러와 함께 호출됩니다.
}
)
엔트리 포인트 타입 BuzzEntryPointType
종류
유형 | BuzzEntryPointType |
---|---|
FAB | BuzzEntryPointType.FAB |
Banner | BuzzEntryPointType.BANNER |
Popup | BuzzEntryPointType.POPUP |
BottomSheet | BuzzEntryPointType.BOTTOM_SHEET |
Custom | BuzzEntryPointType.CUSTOM |
4 단계. 표시하기 (FAB)
아래 코드를 참고하여 엔트리포인트 FAB를 표시하세요.
✏️ 참고
showFab 메소드는BuzzEntryPoint.load
메소드를 호출하여 성공적으로 onSuccess 응답을 받은 후에 호출할 수 있습니다.
canShow 메소드를 사용하여 FAB를 표시할 수 있는지 확인한 후에 호출할 수 있습니다.
import com.buzzvil.entrypoint.BuzzEntryPoint
if (BuzzEntryPoint.canShow(BuzzEntryPointType.FAB)) {
BuzzEntryPoint.showFab(binding.root)
}
4 단계. 표시하기 (Banner)
아래 코드를 참고하여 엔트리포인트 Banner를 표시하세요.
✏️ 참고
showBanner 메소드는BuzzEntryPoint.load
메소드를 호출하여 성공적으로 onSuccess 응답을 받은 후에 호출할 수 있습니다.
canShow 메소드를 사용하여 Banner를 표시할 수 있는지 확인한 후에 호출할 수 있습니다.
<com.buzzvil.entrypoint.presentation.BuzzEntryPointBanner
android:id="@+id/entryPointBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<!-- width, height는 연동 가이드 비율(351 x 112)에 맞추는 것을 권장합니다.
비율이 맞지 않을 경우 이미지가 잘리거나, 여백이 생길 수 있습니다. -->
import com.buzzvil.entrypoint.BuzzEntryPoint
if (BuzzEntryPoint.canShow(BuzzEntryPointType.BANNER)) {
BuzzEntryPoint.showBanner(entryPointBanner)
}
4 단계. 표시하기 (Popup)
아래 코드를 참고하여 엔트리포인트 Popup을 표시하세요.
✏️ 참고
showPopup 메소드는BuzzEntryPoint.load
메소드를 호출하여 성공적으로 onSuccess 응답을 받은 후에 호출할 수 있습니다.
canShow 메소드를 사용하여 Popup을 표시할 수 있는지 확인한 후에 호출할 수 있습니다.
import com.buzzvil.entrypoint.BuzzEntryPoint
if (BuzzEntryPoint.canShow(BuzzEntryPointType.POPUP)) {
BuzzEntryPoint.showPopup(requireContext())
}
4 단계. 표시하기 (BottomSheet)
아래 코드를 참고하여 엔트리포인트 BottomSheet을 표시하세요.
✏️ 참고
showBottomSheet 메소드는BuzzEntryPoint.load
메소드를 호출하여 성공적으로 onSuccess 응답을 받은 후에 호출할 수 있습니다.
canShow 메소드를 사용하여 BottomSheet을 표시할 수 있는지 확인한 후에 호출할 수 있습니다.
import com.buzzvil.entrypoint.BuzzEntryPoint
if (BuzzEntryPoint.canShow(BuzzEntryPointType.BOTTOM_SHEET)) {
BuzzEntryPoint.showBottomSheet(requireContext())
}
4 단계. 표시하기 (Custom)
아래 예시 코드를 참고하여 엔트리포인트 Custom을 표시하세요.
UI를 자유롭게 구성하고, customEntryPointClicked
메소드를 호출하여 클릭 이벤트를 처리할 수 있습니다.
✏️ 참고
customEntryPointClicked
메소드에서 식별되지 않는identifier
를 인자로 받게 되면, 기본 동작인 베네핏허브 열기로 동작합니다.
val identifier = "YOUR_IDENTIFIER"
BuzzEntryPoint.customEntryPointClicked(requireContext(), identifier)