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()
            .openFeedFromLaunchActivitynotificationId(...1234) 
           .iconResourceId(...)
            .notificationId(...)
            .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를 노출하기 위해서 Push를 구독해야합니다. Push를 구독하기 위한 방법 3가지 있습니다.

...

Push 설명 다이얼로그를 보여준 후 구독 시간 설정

...

Push 설명 다이얼로그 없이 구독 시간 설정

...

1) Push 설명 다이얼로그를 보여준 후 구독 시간 설정

...

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

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

2) Push 설명 다이얼로그 없이 구독 시간 설정

Code Block
languagejava
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가지 있습니다.

  1. Push 설명 다이얼로그를 보여준 후 구독 해지

  2. UI 없이 구독해지

1) Push 설명 다이얼로그를 보여준 후 구독 해지

SDK에서 제공하는 Push 구독 해지 다이얼로그를 통해 구독을 해지합니다.

...

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

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

2) UI없이 구독 해지

SDK에서 제공하는 UI를 사용하지 않거나 별도의 UI 없이 구독을 해지할 수 있습니다.

Code Block
languagejava
buzzAdPush.unregister(MyActivity.this);

구독 상태 확인

isRegistered(Context context) 를 호출하여 Push 구독 여부를 확인할 수 있습니다. 구독 여부를 확인하여 UI에 반영할 수 있습니다.

Code Block
languagejava
buzzAdPush.isRegistered(context)

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를 변경할 수 있습니다.
자세한 내용은 고급 설정디자인 커스터마이징을 참고하시기 바랍니다.