Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 19

목차

Table of Contents
minLevel1
maxLevel1
exclude목차

개요

...

Local Push Notification을 통해 지정된 시간에 유저가 Feed 지면으로 진입하도록 유도합니다. Push 지면이 표시되어 있는 동안에는 Push Notification 과 Push Service Notification 이 표시됩니다. 각각의 Notification은 변경하는 방법이 상이하므로 주의하시기 바랍니다.

...

준비 사항

  • (ver 2.25.x) 3. 광고 지면 - Feed Feed 지면 연동 기본 설정 완료

  • Push를 보낼 시간과 각 시간별 Push에 노출할 메세지

    • 버즈빌 매니저에게 전달하시기 바랍니다전달해야합니다.

    • 따로 설정하지 않을 시에는 기본 시간 옵션과 메세지가 노출됩니다.

      • 기본 시간 옵션: 9시, 17시, 21시

      • 기본 메세지

        • Notification 제목: 리워드 광고 구독하기

        • Notification 내용: 오직 한 시간, 너무 쉬운 포인트 쌓기 참여하세요!

초기화

...

Push 초기화

Push 기능을 설정하기 위해서는 아래 2가지를 모두 진행해야 합니다.

Table of Contents
minLevel1
maxLevel7
include(Config 설정)|(Restart receiver 등록)

Config 설정

NotificationConfigPushDialogConfig를 통해 Push 기능 및 UI를 설정할 수 있습니다. 자세한 내용은 고급 설정디자인 커스터마이징을 참고하시기 바랍니다.

Code Block
languagejava
public class CustomNotificationWorker extends NotificationWorker {
    @Override
    @NonNull
    public NotificationConfig getNotificationConfig() {
        return new NotificationConfig.Builder()
            .openFeedFromLaunchActivity(...)
            .iconResourceId(...)
            .notificationId(...)
notificationId(1234) 
            .build();
    }
}
Code Block
languagejava
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를 수신할 시간을 설정해서 구독할 수 있습니다.

Code Block
languagejava
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 구독 해지

...

Code Block
languagejava
buzzAdPush.unregisterWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() {
    @Override
    public void onSuccess() {
        // 구독 해지 성공 시 호출
    }

    @Override
    public void onCanceled() {
        // 구독 해지 실패 시 호출
    }
});

Restart receiver 등록

디바이스를 재부팅하거나 앱 업데이트 후에도 Push가 정상적으로 동작할 수 있도록 하는 BroadcastReciever입니다.
BroadcastReciever를 동작하도록 등록해야합니다. Restart receiver를 등록하지 않으면 Push가 제대로 동작하지 않을 수 있습니다.

다음은 Restart receiver 는 BroadcastReceiver를 상속하여 구현할 수 있습니다를 구현하는 방법입니다.PushDialogConfig상기의 초기설정과 동일해야합니다. 그리고, 구현한 BroadcastReceiver는 Manifest에 등록해야합니다.

Code Block
languagejava
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);
        }
    }
}
Code Block
languagexml

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

Push 알림 구독 다이얼로그 표시

...

유저가 Push 알림을 수신할 시간을 설정할 수 있는 다이얼로그를 보여줍니다. Push 시간설정 다이얼로그에서 유저가 “완료“를 누르면 구독이 시작됩니다.

수신 가능한 시간은 버즈빌 매니저를 통해 설정할 수 있습니다. 설정하지 않을 경우, 기본값이 적용됩니다.

  • Push 알림 기본 설정

    • 기본 시간

      • 9시, 17시, 21시

    • 기본 문구

      • Notification 제목: 지금 바로 적립 가능한 포인트가 있어요!

      • Notification 내용: 앞으로 한 시간 적립의 기획! 포인트 챙겨가세요~

다음은 BuzzAd Android SDK에서 제공하는 구독 UI를 사용하여 사용자에게 Push 알림 구독을 유도하는 예시입니다.

Code Block
languagejava
buzzAdPush.registerWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() {
    @Override
    public void onSuccess() {
        // 구독 성공 시 호출
    }

    @Override
    public void onCanceled() {
        // 구독 실패 시 호출
    }
});

제공되는 구독 UI는 구독 다이얼로그 UI 변경을 참조하여 수정할 수 있으며, 별도의 구독 UI를 구현하기 위해서는 구독 UI 자체 구현을 참고하여 구현할 수 있습니다.

Push 구독 취소 다이얼로그 표시

...

사용자가 Push 알림을 받으려 하지 않을 경우, Push 알림 구독 취소 다이얼로그를 통해 설정할 수 있습니다. 구독을 취소하면 Push 알림을 더 이상 받을 수 없습니다.

다음은 BuzzAd Android SDK에서 제공하는 Push 구독 해지 UI를 통해 구독을 해지하는 예시입니다.

Code Block
languagejava
buzzAdPush.unregisterWithDialog(MyActivity.this, new BuzzAdPush.OnRegisterListener() {
    @Override
    public void onSuccess() {
        // 구독 취소 성공 시 호출
    }

    @Override
    public void onCanceled() {
        // 구독 취소 실패 시 호출
    }
});

제공되는 구독 취소 UI는 구독 다이얼로그 UI 변경을 참조하여 수정할 수 있으며, 별도의 구독 UI를 구현하기 위해서는 구독 취소 UI 자체 구현을 참고하여 구현할 수 있습니다.

Push 기능 및 디자인 변경

...

Push Service Notification 혹은 Push Notificaiton 의 기능 혹은 UI를 변경할 수 있습니다.
자세한 내용은 고급 설정디자인 커스터마이징을 참고하시기 바랍니다.