iOS 푸시 알림 원클릭 수신거부 구현 가이드 (category이용)

안녕하세요, 핑거푸시 기술지원팀입니다. 광고성 정보가 포함된 푸시 메시지 발송 시, 사용자 편의성을 높이고 규정을 준수하기 위해 알림 창에서 즉시 수신거부를 할 수 있는 '원클릭 수신거부' 기능 구현 방법을 안내해 드립니다.

1. 개요

기존 핑거푸시의 기본 category 값은 "fp"입니다. 앞으로 핑거푸시에서 메세지 발송 시 광고성 메세지 옵션을 On(광고 수신 동의자)으로 발송되는 메시지의 경우 payload의 항목 category 값이 “fp1”으로 설정되어 발송됩니다.

앱 내에서 fp1 카테고리에 대한 액션(수신거부 버튼)을 미리 등록하면, 사용자가 알림을 길게 누르거나 아래로 당겼을 때 수신거부 버튼이 노출할 수 있게 구현 가능합니다.

2. 주요 설정 내용

  • 대상 카테고리: fp1

  • 추가 액션: 수신거부 (Unsubscribe)

  • 작동 방식: 사용자가 수신거부 버튼 클릭 시 별도의 앱 실행이 실행 되면서 핑거푸시 SDK내의 광고수신 동의 설정 API requestSetAdPushEnable 호출

3. 단계별 구현 방법 예제

1) 알림 카테고리 및 액션 등록 AppDelegate 또는 알림 관리를 담당하는 클래스에서 UNNotificationCategory를 등록해야 합니다. fp1이라는 식별자를 가진 카테고리에 '수신거부' 액션을 추가합니다.

//Swift
import UserNotifications

func registerNotificationCategories() {
    // 1. 수신거부 버튼(액션) 정의
    let unsubscribeAction = UNNotificationAction(
        identifier: "UNSUBSCRIBE_ACTION",
        title: "원클릭 수신거부",
        options: [.authenticationRequired, .destructive] // 인증 필요 및 붉은색 표시(선택)
    )

    // 2. "fp1" 카테고리에 액션 등록
    let adCategory = UNNotificationCategory(
        identifier: "fp1",
        actions: [unsubscribeAction],
        intentIdentifiers: [],
        options: .customDismissAction
    )

    // 3. 시스템에 카테고리 등록
    UNUserNotificationCenter.current().setNotificationCategories([adCategory])
}

2) 액션 이벤트 처리 (수신거부 로직) 사용자가 '원클릭 수신거부' 버튼을 눌렀을 때 실행될 로직을 작성합니다. 이 시점에 핑거푸시 API 또는 귀사의 수신거부 처리 서버 API를 호출해야 합니다.

3) 예시 이미지

4. APNs 페이로드 예시

핑거푸시 서버에서 광고성 메시지 발송 시 전달되는 페이로드 구조는 다음과 같습니다.

5. 주의사항

  • 카테고리 매칭: 반드시 category 값이 fp1인 경우에만 해당 버튼이 노출됩니다. 기존 fp 값인 경우에는 일반 노티피케이션으로 동작합니다.

  • 버튼 노출: iOS 정책상 알림을 롱터치(3D Touch)하거나 하단으로 드래그해야 버튼이 노출될 수 있습니다.

  • API 연동: 수신거부 버튼 클릭 시 반드시 실제 수신거부 처리가 서버(핑거푸시 DB)에 반영되도록 광고수신거부API(requestSetAdPushEnable) 연동을 완료해 주세요.

도움이 필요하신가요? 구현 중 문의사항이 있으시면 핑거푸시 QnA 게시판으로 문의 주시면 빠르게 답변드리겠습니다.

Last updated