개요
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를 노출하기 위해서 Push를 구독해야합니다. Push를 구독하기 위한 방법 3가지 있습니다.
Push 설명 다이얼로그를 보여준 후 구독 시간 설정
Push 설명 다이얼로그 없이 구독 시간 설정
UI 없이 구독하기
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를 사용하지 않고 Push를 구독할 수 있습니다. https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/2270135576/ver+2.25.x+6.5.2.#BuzzAd-Push-%ED%99%9C%EC%84%B1%ED%99%94-%EB%B0%A9%EB%B2%95-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95 를 참고하시기 바랍니다.
Push 구독 해지
Push 구독을 해지하면 Push 알림을 더 이상 받을 수 없습니다. Push를 구독하기 해지하는 위한 방법 2가지 있습니다.
Push 설명 다이얼로그를 보여준 후 구독 해지
UI 없이 구독해지
1) Push 설명 다이얼로그를 보여준 후 구독 해지
SDK에서 제공하는 Push 구독 해지 다이얼로그를 통해 구독을 해지합니다.
buzzAdPush.unregisterWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() { @Override public void onSuccess() { // 구독 해제 성공 시 호출 } @Override public void onCanceled() { // 구독 해제 실패 시 호출 } });
2) UI없이 구독 해지
SDK에서 제공하는 UI를 사용하지 않거나 별도의 UI 없이 구독을 해지할 수 있습니다.
buzzAdPush.unregister(MyActivity.this);
구독 상태 확인
isRegistered(Context context)
를 호출하여 Push 구독 여부를 확인할 수 있습니다. 구독 여부를 확인하여 UI에 반영할 수 있습니다.
buzzAdPush.isRegistered(context)
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>