(ver 3.3.x) 6.4.2. 고급 설정
목차
개요
여기에서는 BuzzAd Android용 SDK의 푸시 알림을 구현하는 기능과 각 기능을 변경하는 방법을 설명합니다.
리워드 광고 구독 다이얼로그 제거하기
BuzzAd Android용 SDK에서는 리워드 광고 구독 다이얼로그를 표시하지 않고 구독 시간을 설정하는 다이얼로그만 제공할 수 있습니다.
다음은 리워드 광고 구독 다이얼로그를 제공하지 않는 예시입니다.
BuzzAdPush.getInstance().registerWithDialog(MyActivity.this, false, new BuzzAdPush.OnRegisterListener() {
@Override
public void onSuccess() {
// 구독 성공 시 호출
}
@Override
public void onCanceled() {
// 구독 실패 시 호출
}
});
리워드 광고 구독 절차 자체 구현하기
BuzzAd Android용 SDK에서 제공하는 API를 활용하여 리워드 광고 구독 절차를 직접 구현할 수 있습니다. 다음의 절차를 따르세요.
getInstance()
에서fetchPushHoursOptionIfNeeded()
를 호출하여 버즈빌 서버로부터 구독 가능한 시간을 불러오고 저장하세요.저장된 구독 가능한 시간이 없다면
buzzAdPush.getPushHoursOption()
를 호출하여 SDK에서 기본으로 제공하는 값을 가져 오세요.// 버즈빌 서버로부터 구독 가능한 시간을 미리 불러와 저장합니다. BuzzAdPush.getInstance().fetchPushHoursOptionIfNeeded( MainActivity.this, new PushRepository.OnFetchResultListener() { @Override public void onFetchFail() { // 저장된 구독 가능한 시간이 없다면 SDK에서 기본으로 제공하는 값을 읽어옵니다. List<Integer> list = buzzAdPush.getPushHoursOption(MainActivity.this); } @Override public void onFetchSuccess() { List<Integer> list = buzzAdPush.getPushHoursOption(MainActivity.this); } });
setPushHours()
를 호출하여 사용자가 선택한 리워드 광고 구독 시간을 SDK에 등록하세요.
List<Integer> selectedHours = new ArrayList<>();
selectedHours.add(hour); // 0 <= hour < 24
BuzzAdPush.getInstance().setPushHours(activity, selectedHours); // 설정 가능한 시간 중 사용자가 선택한 시간을 Push SDK에 등록합니다.
BuzzAdPush.getInstance().register(activity); // 위 단계 설정이 끝나면 Push를 등록하여 활성화합니다.
리워드 광고 구독 취소 API 사용하기
SDK에서 제공하는 구독 다이얼로그 UI를 사용하지 않고 리워드 광고 구독을 취소합니다. 리워드 광고 구독을 유도하는 UI를 직접 구성하여 리워드 광고 구독을 취소하는데 사용합니다.
푸시 알림 수신 상태 확인하기
리워드 광고 구독 여부를 확인할 수 있습니다. 광고 구독 여부를 사용자에게 알리는데 사용합니다.
푸시 포그라운드 서비스 알림 자체 구현하기
푸시 알림 기능이 안정적으로 동작하기 위해 이를 지원하는 포그라운드 서비스 알림이 함께 실행됩니다.
버즈빌의 잠금화면 지면과 Pop 등 다른 지면을 지원하는 포그라운드 서비스 알림이 실행되면 푸시 알림의 포그라운드 서비스 알림은 표시되지 않습니다.
푸시 포그라운드 서비스 알림을 직접 구현하려면 다음의 절차를 따르세요.
CustomPushService
를 구현하세요.PushService
를 상속받는 클래스를 생성하세요.createYourNotificationChannel()
에서 Android 개발자 가이드의 알림 채널 만들기 및 관리 토픽을 참고하여 알림 채널을 만드세요. Android 8.0(API 레벨 26)부터는 모든 알림을 채널에 할당해야 합니다.getFeedPendingIntent()
에서 Feed로 진입할 수 있는PendingIntent
를 설정하세요.
Custom Service Class를 등록하세요.
AndroidManifest.xml 파일에
CustomPushService
를 등록하세요.
푸시 알림을 통한 Feed 동작 변경하기
사용자가 푸시 알림을 클릭하면 Feed 지면을 앱의 런처 액티비티에서 보여줄 수 있습니다. 초기 설정 값은 False
이며, False
의 경우 Feed 지면이 레이아웃 뷰의 최상단에 위치하게 되어 앱 위에 표시됩니다.
PushService
가 제공하는 API
| 설명 |
---|---|
| Feed 지면을 보여줄 수 있는 인텐트를 생성합니다.
|
다음은 Feed 지면을 앱의 런처 액티비티에서 보이게 하는 예시입니다.