Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

개요

BuzzAdPush는 Local Push Notification을 통해 유저가 피드로 진입할 수 있도록 해줍니다.

기본 요건

  • Feed 지면 연동 완료

준비 사항

  • 유저에게 Push를 보낼 시간과 각 시간별 Push에 노출할 메세지를 버즈빌 담당 매니저에게 전달합니다.
    따로 설정하지 않을 시 디폴트 시간 옵션과 노티피케이션 메세지가 노출됩니다.

    • 디폴트 시간 옵션: 9시, 17시, 21시

    • 디폴트 메세지

      • 노티피케이션 제목: 리워드 광고 구독하기

      • 노티피케이션 내용: 오직 한 시간, 너무 쉬운 포인트 쌓기 참여하세요!

Step 1. 초기화

BuzzAdPush클래스를 통해 Push 구독/해제가 가능합니다.
BuzzAdPush 인스턴스를 생성하기 위해서는 CustomNotificationWorkerPushDialogConfig 가 필요합니다.
아래 가이드에 따라 CustomNotificationWorkerPushDialogConfig 를 구현하여 초기화합니다.

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>
  • No labels