통합 가이드
Buzzvil SDK 연동 가이드
# 소개
이 문서는 모바일 앱에 Buzzvil SDK를 연동해 리워드형 광고 인벤토리를 노출하려는 클라이언트 개발자를 위한 가이드입니다. 의존성 추가부터 초기화, 광고 배치, 콜백 검증까지 한 번에 따라갈 수 있도록 구성했습니다.
SDK는 최소 의존성으로 설계되어 있어 기존 빌드에 미치는 영향이 적습니다. 전체 연동은 보통 30분 이내에 끝납니다.
- 최소 지원 버전: Android 8.0(API 26), iOS 14 이상
- 네트워크 권한과 인터넷 접근이 필요합니다
BuzzvilSdk.init()
SDK는 첫 초기화 이후 설정을 캐시합니다. 앱 키를 변경하면 앱을 재시작해야 반영됩니다.
# 설치 및 설정
패키지 매니저로 SDK를 추가한 뒤, 앱 시작 시점에 한 번만 초기화하면 됩니다. 초기화에는 콘솔의 프로젝트 설정에서 발급받은 앱 키가 필요하며, 환경별로 분리해 관리하는 것을 권장합니다.
-
SDK 의존성 추가
패키지 매니저에 Buzzvil SDK를 추가하고 의존성을 동기화하세요. 버전은 릴리스 노트에 고정된 최신 안정 버전을 사용하는 것을 권장합니다.
-
앱 키로 초기화
BuzzvilSdk.init() -
광고 유닛 배치
화면에 광고 뷰를 추가하고 발급받은 유닛 ID를 연결하세요. 레이아웃에 맞는 광고 포맷을 선택하면 됩니다.
-
콜백으로 검증
로드 성공·실패 콜백과 리워드 콜백을 연결해 동작을 확인하세요. 테스트 모드에서 더미 광고로 흐름을 먼저 검증하는 것을 권장합니다.
앱 키는 빌드 환경 변수로 주입하고, 디버그/릴리스 빌드를 분리해 관리하세요.
앱 시작 시점에 SDK를 초기화하는 예시입니다.
import com.buzzvil.sdk.BuzzvilSdk
class App : Application() {
override fun onCreate() {
super.onCreate()
// app key is injected from build config, never hardcoded
BuzzvilSdk.init(this, BuildConfig.BUZZVIL_APP_KEY) { result ->
if (result.isSuccess) Log.d("Buzzvil", "init ok")
else Log.e("Buzzvil", "init failed: ${result.error}")
}
}
}
앱 키를 소스 코드에 하드코딩하지 마세요. 빌드 설정이나 보안 저장소를 통해 주입하는 것이 안전합니다.
# 기본 사용법
초기화가 끝나면 광고 유닛을 화면에 배치하고 콜백을 연결합니다. 리워드 콜백에서 적립 금액을 받아 앱의 포인트 시스템에 반영하면 기본 연동이 완성됩니다.
유닛 ID로 광고를 로드하고 리워드를 처리하는 예시입니다.
val ad = BuzzvilSdk.loadAd(
unitId = BuildConfig.BUZZVIL_UNIT_ID,
userId = session.userId, // empty allowed for anonymous
format = AdFormat.NATIVE,
testMode = BuildConfig.DEBUG, // dummy ads off in release
)
ad.onReward { amount -> points.credit(amount) }
ad.onAdFailedToLoad { error -> showFallback(error.code) }
초기화를 메인 스레드 밖에서 호출하면 광고 로딩이 실패할 수 있습니다. 또한 testMode는 릴리스 빌드에서 반드시 false로 두세요.
초기화는 앱 생명주기당 한 번, 광고 로드는 화면 진입마다. 이 두 가지만 지키면 안정적으로 동작합니다.
파라미터와 콜백의 전체 목록은 레퍼런스 탭을 참고하세요.
체크리스트
출시 전 점검
릴리스 빌드를 올리기 전 아래 항목을 확인하세요.
- 앱 키가 빌드 환경 변수에서 주입되는지 (하드코딩 금지)
- testMode가 릴리스 빌드에서 false인지
- onAdFailedToLoad에 폴백 UI가 연결되어 있는지
- 리워드 적립이 앱 포인트 시스템과 일치하는지
API 레퍼런스
loadAd 파라미터
BuzzvilSdk.loadAd()
| 파라미터 | 타입 | 설명 |
|---|---|---|
unitId |
string | 광고를 배치할 유닛의 식별자. 콘솔에서 발급받습니다. (필수) |
userId |
string | 리워드 정산을 매칭할 앱 사용자 식별자. 익명 사용자는 빈 값을 허용합니다. |
format |
"native" | "banner" | 렌더링할 광고 포맷. 레이아웃에 맞는 값을 지정합니다. 기본값은 native. |
testMode |
boolean | true이면 더미 광고를 반환합니다. 연동 검증용이며 릴리스 빌드에서는 false로 두세요. |
onReward |
function | 사용자가 리워드 조건을 충족했을 때 호출되는 콜백. 적립 금액을 인자로 전달합니다. |
onAdFailedToLoad |
function | 광고 로드가 실패했을 때 호출되는 콜백. 에러 코드로 폴백 처리를 분기하세요. |