개요
Local Push Notification을 통해 지정된 시간에 유저가 Feed 지면으로 진입하도록 유도합니다.
준비 사항
(ver 2.25.x) 3. 광고 지면 - Feed Feed 지면 연동 완료
Push를 보낼 시간과 각 시간별 Push에 노출할 메세지
버즈빌 매니저에게 전달하시기 바랍니다.
따로 설정하지 않을 시에는 기본 시간 옵션과 메세지가 노출됩니다.
기본 시간 옵션: 9시, 17시, 21시
기본 메세지
Notification 제목:
리워드 광고 구독하기
Notification 내용:
오직 한 시간, 너무 쉬운 포인트 쌓기 참여하세요!
초기화
BuzzAdPush
초기화를 생성하기 위해서는 CustomNotificationWorker
와 PushDialogConfig
가 필요합니다.
아래 가이드에 따라 CustomNotificationWorker
와 PushDialogConfig
를 구현하여 초기화합니다.
public class CustomNotificationWorker extends NotificationWorker { @Override @NonNull public NotificationConfig getNotificationConfig() { return new NotificationConfig.Builder() .openFeedFromLaunchActivity(...) .iconResourceId(...) .notificationId(...) .build(); } }
final BuzzAdPush buzzAdPush = new BuzzAdPush( CustomNotificationWorker.class, new PushDialogConfig.Builder().build());
NotificationConfig
설정
openFeedFromLaunchActivity
: 노티피케이션을 클릭하면 Feed 로 이동하는데 이때의 동작을 제어합니다.true: 노티피케이션 클릭시 Launcher Activity를 실행 후 Feed 지면을 보여줍니다.
false: 노티피케이션 클릭시 Feed 지면을 보여줍니다.
iconResourceId
: 노티피케이션에 보이는 아이콘의 리소스 아이디입니다.notificationId
: 노티피케이션의 ID를 지정합니다.
SDK에서 제공하는 구독 Dialog UI는 디자인 커스터마이징을 참조하여 변경할 수 있습니다.
Push 구독
사용자는 Push를 수신할 시간을 설정해서 구독할 수 있습니다.
buzzAdPush.registerWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() { @Override public void onSuccess() { // 구독 성공 시 호출 } @Override public void onCanceled() { // 구독 실패 시 호출 } });
고도화된 구독 절차는 https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/2270135576/ver+2.25.x+6.5.2.#BuzzAd-Push-%EA%B5%AC%EB%8F%85-%EA%B3%A0%EB%8F%84%ED%99%94을 참고하여 구현할 수 있습니다.
Push 구독 해지
Push 구독을 해지하면 Push 알림을 더 이상 받을 수 없습니다. SDK에서 제공하는 Push 구독 해지 다이얼로그를 통해 구독을 해지합니다.
buzzAdPush.unregisterWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() { @Override public void onSuccess() { // 구독 해지 성공 시 호출 } @Override public void onCanceled() { // 구독 해지 실패 시 호출 } });
Restart receiver 등록
디바이스를 재부팅하거나 앱 업데이트 후에도 Push가 정상적으로 동작할 수 있도록 하는 BroadcastReciever입니다.
BroadcastReciever를 등록하지 않으면 Push가 제대로 동작하지 않을 수 있습니다.
Restart receiver 는 BroadcastReceiver를 상속하여 구현할 수 있습니다. PushDialogConfig
는 초기설정과 동일해야합니다. 그리고, 구현한 BroadcastReceiver는 Manifest에 등록해야합니다.
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 ... > ... <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>