Android 푸시 알림 원클릭 수신거부 구현 가이드

안녕하세요, 핑거푸시 기술지원팀입니다.

광고성 정보가 포함된 푸시 메시지 발송 시, 사용자가 노티피케이션 센터에서 앱을 열지 않고도 즉시 수신거부를 할 수 있는 '원클릭 수신거부' 기능 구현 가이드를 안내해 드립니다.

핑거푸시에서 광고성 메시지 옵션을 On으로 설정하여 발송할 경우, Payload에 추가되는 data.fpCategory 값을 활용하여 다음과 같이 구현하실 수 있습니다.

1. 데이터 구조 및 구분 값 (payload)

메시지 수신 시 전달되는 data.fpCategory 항목을 통해 광고성 여부를 판단합니다.

구분

비고

data.fpCategory 값

광고성 메시지

노티피케이션 내 '수신거부' 버튼 노출 대상

"fp1"

일반 메시지

일반 알림으로 표시

"fp0"

2. Android 구현 단계

단계 1: 데이터 수신 및 광고 여부 확인

FirebaseMessagingService의 onMessageReceived에서 전달받은 데이터 중 fpCategory가 "fp1"인지 확인합니다.

//java
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    if (remoteMessage.getData().size() > 0) {
        String fpCategory = remoteMessage.getData().get(“data.fpCategory");
        String title = remoteMessage.getData().get(“data.title");
        String message = remoteMessage.getData().get(“data.message");

        // fpCategory가 "fp1"인 경우 수신거부 버튼이 포함된 알림 생성
        sendNotification(title, message, "fp1".equals(data.fpCategory));
    }
}

단계 2: 알림 내 '수신거부' 버튼 추가 (addAction)

NotificationCompat.Builder를 사용하여 알림을 생성할 때, 광고성 메시지라면 수신거부 액션을 추가합니다.

단계 3: 핑거푸시 SDK API를 통한 수신거부 처리

사용자가 알림의 버튼을 클릭하면 BroadcastReceiver에서 핑거푸시 SDK의 setAdvertisePushEnable API를 호출하여 광고 수신 동의를 거부(false) 처리합니다.

3. 수신거부 버튼 노출 예시 이미지

※ 핑거푸시 SDK에서 제공하는 FingerNotification 클래스는 표준화된 알림 생성 기능을 제공하므로, '수신거부'와 같은 커스텀 액션 버튼을 추가하는 기능을 지원하지 않습니다. (추후 지원예정)

FingerNotification 호출을 생략하고, NotificationCompat.Builder를 사용하여 알림을 직접 구성합니다.

Last updated