개요
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>