6.5.1. 기본 설정
개요
BuzzAdPush는 Local Push Notification을 통해 유저가 피드로 진입할 수 있도록 해줍니다.
기본 요건
Feed 지면 연동 완료
준비 사항
유저에게 Push를 보낼 시간과 각 시간별 Push에 노출할 메세지를 버즈빌 담당 매니저에게 전달합니다.
따로 설정하지 않을 시 디폴트 시간 옵션과 노티피케이션 메세지가 노출됩니다.디폴트 시간 옵션: 9시, 17시, 21시
디폴트 메세지
노티피케이션 제목:
리워드 광고 구독하기
노티피케이션 내용:
오직 한 시간, 너무 쉬운 포인트 쌓기 참여하세요!
Step 1. 초기화
BuzzAdPush
클래스를 통해 Push 구독/해제가 가능합니다. BuzzAdPush
인스턴스를 생성하기 위해서는 CustomNotificationWorker
와 PushDialogConfig
가 필요합니다.
아래 가이드에 따라 CustomNotificationWorker
와 PushDialogConfig
를 구현하여 초기화합니다.
public class CustomNotificationWorker extends NotificationWorker {
@Override
@NonNull
public NotificationConfig getNotificationConfig() {
return new NotificationConfig.Builder()
.openFeedFromLaunchActivity(...)
.iconResourceId(...)
.notificationId(...)
.build();
}
}
final PushDialogConfig pushDialogConfig = new PushDialogConfig.Builder()
.build();
final BuzzAdPush buzzAdPush = new BuzzAdPush(
CustomNotificationWorker.class,
pushDialogConfig);
NotificationConfig
설정
openFeedFromLaunchActivity
: 노티피케이션을 클릭하면 Feed 로 이동하는데 이때의 동작을 제어합니다.true: 노티피케이션 클릭시 Launcher Activity를 실행 후 Feed 지면을 보여줍니다.
false: 노티피케이션 클릭시 Feed 지면을 보여줍니다.
iconResourceId
: 노티피케이션에 보이는 아이콘의 리소스 아이디입니다.notificationId
: 노티피케이션의 ID를 지정합니다.
SDK에서 제공하는 구독 Dialog UI는 디자인 커스터마이징을 참조하여 변경할 수 있습니다.
Step 2. Push 구독
buzzAdPush.registerWithDialog()
를 호출하여 Push를 구독합니다. 한번 활성화 하면 설정된 시간에 노티피케이션을 보여주게 됩니다. Push를 구독하기 위한 방법 3가지 있습니다.
1) Push 설명 다이얼로그를 보여준 후 구독 시간 설정
buzzAdPush.registerWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() {
@Override
public void onSuccess() {
// 구독 성공 시 호출
}
@Override
public void onCanceled() {
// 구독 실패 시 호출
}
});
2) Push 설명 다이얼로그 없이 구독 시간 설정
buzzAdPush.registerWithDialog(MyActivity.this, false, new BuzzAdPush.OnRegisterListener() {
@Override
public void onSuccess() {
// 구독 성공 시 호출
}
@Override
public void onCanceled() {
// 구독 실패 시 호출
}
});
3) UI 없이 구독하기
SDK에서 제공하는 UI를 사용하지 않고 별도의 UI를 직접 구현할 경우 Push 구독을 직접 호출할 수 있습니다.
단, 유저는 구독 시간을 선택할 수 없습니다.
buzzAdPush.register(MyActivity.this);
Step 3. Push 구독 해제
Push 를 비활성화 하기 위해서buzzAdPush.unregisterWithDialog()
를 호출합니다.
1) 구독 해제 UI 사용
Push unregister 다이얼로그가 보이고 구독 취소를 누르면 unregister 합니다.
buzzAdPush.unregisterWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() {
@Override
public void onSuccess() {
// 구독 해제 성공 시 호출
}
@Override
public void onCanceled() {
// 구독 해제 실패 시 호출
}
});
2) UI없이 구독 해제
buzzAdPush.unregister(MyActivity.this);
구독 상태 확인
Push 가 활성화 상태인지 확인하기 위해 boolean isRegistered(Context context)
를 호출합니다.
buzzAdPush.isRegistered(context)
Step4. Restart receiver 등록
디바이스을 재부팅하거나 앱 업데이트 시, Push가 동작 할 수 있도록하는 BroadcastReciever 입니다.
등록하지 않으면 Push가 제대로 동작하지 않을 수 있습니다.
MyRestartReceiver
생성
이때PushDialogConfig
는 Step1에서 생성한 값과 같은 값을 사용해야합니다.
public class MyRestartReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())
|| Intent.ACTION_MY_PACKAGE_REPLACED.equals(intent.getAction())) {
final PushDialogConfig pushDialogConfig = new PushDialogConfig.Builder()
.build();
final BuzzAdPush buzzAdPush = new BuzzAdPush(
CustomNotificationWorker.class,
pushDialogConfig
);
buzzAdPush.registerWorkerIfNeeded(context);
}
}
}
Manifest 등록
<manifest ... >
...
<application ... >
...
<receiver
android:name=".MyRestartReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
</application>
</manifest>