기본 설정
반드시 샘플 코드를 확인한 뒤 실제 퍼블리셔 앱의 코드에 연동 바랍니다. - Github Link
BuzzScreen SDK Workflow
Index
시작하기 전에
1) 안내사항
본 문서는 BuzzScreen SDK를 퍼블리셔의 안드로이드 어플리케이션에 연동하기 위한 가이드입니다. 아래의 안내사항을 숙지 후 연동을 진행해주세요.
연동 작업 전 버즈빌 BD 매니저와 사전 협의가 완료되어야 합니다.
잠금화면을 통한 수익 창출에 대한 구글 정책을 반드시 확인 후 연동을 진행합니다.
잠금화면 앱은 잠금화면 기능만을 수행해야 하므로 이 외의 목적을 가진 어플리케이션에는 잠금화면을 넣을 수 없습니다.
서비스 출시 이전에 연동이 완료된 앱의 apk 파일을 버즈빌 BD 매니저에게 전달 후 승인 과정을 거쳐야 합니다.
2) Requirements
항목 | 세부내용 | 비고 | |
---|---|---|---|
1 | 안드로이드 지원 버전 |
|
|
2 | BuzzScreen SDK의 대응: 2.0.2.0 버전 이상에서
| 정책 적용 시점
| |
3 |
|
|
|
Lockscreen Activity의 style에 windowTranslucent
, windowIsFloating
, windowSwipeToDismiss
중 1개 이상이 true
로 설정되어 있을 경우 Android OS 8.0 버전에서 크래시가 발생할 수 있으므로 확인이 필요합니다. 이에 해당된다면 아래 내용을 확인해주세요.
3) Prerequisites
항목 | 세부내용 | 비고 | |
---|---|---|---|
1 | 퍼블리셔 앱 로그인을 위한 API 서버 | BuzzScreen SDK에 유저 정보를 등록하기 위함 |
|
2 | 포인트 적립 요청 수신 API | 버즈빌 서버에서 퍼블리셔 서버로 포인트 적립 요청을 보낸 이후, 실제 포인트 지급을 처리할 퍼블리셔의 API 서버 | https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/1756004654 참고 |
3 | 연동을 위한 키값 | 버즈빌 BD 매니저로부터 발급받은 아래 값들
|
|
1. build.gradle
설정
모듈 내 build.gradle
에 아래 코드를 추가합니다.
기존 프로세스 분리형 buzzscreen-multiprocess SDK를 사용하시다 하기의 버전으로 별도의 작업 없이 SDK만 변경 시 이슈가 발생 할 수 있습니다. 해당 문서(link)를 참조하여 AndroidMafniest.xml
에 포함된android:process=":locker
속성을 제거 바랍니다.
dependencies {
implementation 'com.buzzvil:buzzscreen:2.0.6.3'
}
repositories {
maven { url "https://dl.buzzvil.com/public/maven" }
}
2. AdNetwork 연동 설정
BD Manager로부터 AdNetwork 추가 연동에 대해 안내 받을 시에는, 모듈 내 AndroidManifest.xml
에 연동문서를 참조하여 해당 AdNetwork의 관련 코드를 추가합니다.
3. 메소드 호출
연동 단계는 1) 초기화 → 2) 유저 정보 설정 → 3) 잠금화면 제어 설정 의 세 단계를 따라야 합니다.
1) 초기화: init()
및 launch()
호출
항목 | 코드 | 호출 위치 | 세부내용 |
---|---|---|---|
버즈스크린 초기화 |
|
|
|
버즈스크린 시작 |
| 앱 실행 시 처음 실행되는 액티비티에 추가 |
|
Sample Code
2) 유저 정보 설정
항목 | 코드 | 호출 위치 | 세부내용 |
---|---|---|---|
유저 정보 설정 위한 객체 |
|
| 유저 정보 설정할 수 있는 Class 인 |
유저 식별값 필수 |
|
| |
유저 연령 권장 |
| 유저의 출생년도를 4자리 숫자로 입력하여 나이 설정 | |
유저 성별 권장 |
| 미리 정의된 String 을 통해 형식에 맞추어 성별 설정
| |
유저 지역 선택 |
| "시/도 + 공백 + 시/군/구" 형식으로 설정
| |
이 외 선택 | https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/385417457 문서 참고 | 매체사에서 원하는 유저 정보로 타게팅 가능 |
3) 잠금화면 제어
항목 | 코드 | 호출 위치 | 세부내용 |
---|---|---|---|
버즈스크린 활성화 필수 |
| 버즈스크린 활성화 시점
| 이 함수가 호출된 이후부터 잠금화면에 버즈스크린이 나타남 |
버즈스크린 비활성화 필수 |
| 버즈스크린 비활성화 시점 | 이 함수가 호출되면 더 이상 잠금화면에 버즈스크린이 나타나지 않음 |
유저 로그아웃 필수 |
| 유저가 로그아웃하는 시점 | 이 함수는 |
버즈스크린이 화면에서 사라지는 시간 설정 권장 |
|
| 버즈스크린 액티비티가 화면에 뜬 뒤 일정 시간 동안 유저의 활동이 없을 경우 버즈스크린이 화면에서 사라짐
|
잠금화면을 활성화한 후 실제로 잠금화면이 처음 준비가 된 시점 확인 선택 |
|
| 활성화한 후 실제로 잠금화면이 처음 준비가 완료된 시점을 알고 싶을 때, 아래의 interface를 구현하여 |
Notification 커스텀 선택 | https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/385744942 문서 참고 |
| 버즈스크린을 활성화한 후 Notification area 에 생성된 Notification의 icon, text 등을 수정하고자 하는 경우 |
4. 기본 보안기능 화면 속성 수정
BuzzScreen.init()
된 직후 메소드를 호출하여 보안기능 화면 속성을 수정합니다.
backgroundResourceId(int resourceId)
: Swipe mode 보안화면에 나오는 배경화면을 지정backgroundImageScaleType(enum ImageView.ScaleType)
: Swipe mode 보안화면에 지정한 배경화면의 정렬값 설정 (기본값: FIT_XY, 참조 link)backgroundColor(int Color)
: Swipe mode 보안화면의 배경색 설정 (기본값: Color.WHITE, 참조 link)backgroundDimAlpha(float)
: Swipe mode 보안화면에는 시계와 액션 안내 텍스트의 가독성을 높이기 위하여 알파값이 적용된 검은색 화면의 알파값을 조절 (기본값: 0.7)showClock(boolean)
: 시계의 노출/미노출을 세팅 (기본값: true)showDescription(boolean)
: 유저 액션 안내 텍스트의 노출/미노출을 세팅 (기본값: true)
<구현 예시>
5. “다른 앱 위에 그리기” 권한 얻기
안드로이드 10부터 변경된 정책에 따라, 잠금화면을 띄우기 위해서는 “다른 앱 위에 그리기” 권한 획득이 필요합니다. 따라서 사용자에게 해당 권한 요청에 대한 메시지를 잠금화면과 In-App에서 노출해 권한 획득을 도울 수 기능을 제공합니다.
1) 잠금화면 안내 메시지
앱에서 추가 코드를 작성할 필요없이 자동으로 적용
Android 10 미만이거나 해당 권한이 이미 획득되어 있는 경우에는 팝업을 보여주지 않음
6시간 간격으로 노출
2) In-App 안내 메시지
boolean BuzzScreen#showOverlayPermissionGuideDialogIfNeeded(Activity)
:유저에게 “다른 앱 위에 그리기” 권한 획득을 요청하는 메시지의 팝업 다이얼로그를 띄우는 인터페이스
앱의 메인 화면이 생성될 때나(
MainActivity
의OnCreate()
), 사용자가 잠금화면을 활성화했을 때 해당 팝업을 보여주는 것을 권장리턴 값은 팝업 다이얼로그가 발생했는지 아닌지를 알려주는 boolean 값
팝업에서
확인
클릭 시 해당 권한을 획득할 수 있는 안드로이드 설정 화면으로 이동하고, 권한 획득시 자동으로 이전 화면으로 전환Android 10 미만이거나 해당 권한이 이미 획득되어 있는 경우에는 팝업을 보여주지 않음
6. 포인트 적립 포스트백 연동 - Server-to-Server 연동
버즈스크린은 포인트 적립이 발생했을 때 직접 유저들에게 포인트를 지급하는 것이 아닙니다. 버즈스크린 서버에서는 매체사 서버로 포인트 적립 요청을 보낼 뿐이며, 실제 지급은 매체사 서버에서 처리합니다.
프로세스
https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/1756004654 문서를 참고하여 포스트백 수신 서버 구축
Endpoint url을 버즈빌 BD 매니저에게 전달
포인트 적립 요청 흐름