푸시 권한 프롬프트를 사용하는 이유는 무엇인가요?
배너로 나타나고, 잠금 화면에 표시되고, 소리를 재생하는 등의 푸시 알림을 보내려면 먼저 사용자의 권한을 받아야 합니다. iOS, Android, Huawei, Amazon 및 Web에서는 시스템 수준 권한 프롬프트를 표시해야 합니다.
requestPermission() SDK 메서드를 사용하여 언제든지 프롬프트를 트리거할 수 있지만 적절한 컨텍스트 없이는 사용자가 거부할 가능성이 더 높습니다——iOS에서는 거부된 프롬프트를 다시 표시할 수 없습니다.
권장 방법은 “소프트 프롬프트”입니다——요청을 소개하는 사용자 지정 인앱 메시지입니다. 사용자가 수락하면 시스템 프롬프트가 나타납니다. 거부하면 아무 일도 일어나지 않으며 나중에 다시 요청할 수 있습니다.

인앱 푸시 권한 프롬프트 설정
자동 권한 프롬프트 제거
시작하기 전에 앱이 기본 푸시 프롬프트를 자동으로 트리거하지 않는지 확인하세요:
- 앱 시작 시 호출하는 경우
requestPermission()또는optIn()메서드를 제거하세요. requestAuthorizationWithOptions에 대한 기본 iOS 호출 및 푸시 토큰을 생성하는 모든 메서드를 제거하세요.requestPermissions에 대한 Android 호출 및 푸시 토큰을 생성하는 모든 메서드를 제거하세요.
인앱 메시지 생성 또는 편집
메시지 > 인앱으로 이동한 다음 다음 중 하나를 수행하세요:
오디언스를 모든 사용자에게 표시로 설정합니다. OneSignal은 Push Permission Prompt 클릭 액션에 따라 푸시를 구독하지 않은 사용자에게만 이 메시지를 자동으로 필터링합니다.
- 기본 Push Permission Prompt 템플릿을 편집하거나
- New Message를 클릭하여 직접 만드세요.


메시지 디자인 사용자 지정
앱에 맞게 모양, 느낌 및 문구를 개인화하세요. 사용자에게 받을 알림의 종류와 왜 가치가 있는지 알려주세요.자세한 내용은 드래그 앤 드롭으로 인앱 메시지 디자인 또는 HTML로 인앱 메시지 디자인을 참조하세요.

푸시 권한 프롬프트 클릭 액션 추가
메시지의 버튼 또는 이미지에 Push Permission Prompt 클릭 액션을 추가하세요. 탭하면 시스템 프롬프트가 표시됩니다.

사용자가 이미 권한을 거부한 경우 버튼은 대신 앱의 알림 설정으로 이동합니다.


“Push Permission Prompt” 액션이 있는 인앱 메시지는 이미 알림을 허용한 사용자에게 표시되지 않습니다.
트리거 선택
오디언스는 메시지를 볼 수 있는 사람을 제어합니다. 트리거는 표시되는 시기를 제어합니다.
다음과 같이 메시지를 트리거할 수 있습니다:

- 앱 열기 시
- 설정된 세션 시간 후
- 특정 사용자 이벤트 시
- 프로그래밍 방식으로, 인앱 메시지 SDK 메서드를 사용하여 타이밍과 컨텍스트를 완전히 제어

프로그래밍 방식으로 권한 프롬프트 표시
requestPermission() 또는 optIn() SDK 메서드를 사용하여 수동으로 푸시 권한 프롬프트를 트리거할 수 있습니다. 이는 다음과 같은 사용자 지정 흐름에 유용합니다:
- 기본 설정 센터
- 사용자 프로필 화면
- 특정 인앱 이벤트
푸시 권한 및 프롬프트 결과 추적
인앱 메시지를 사용하여 푸시를 요청할 때 인앱 메시지 클릭 리스너로 클릭 액션을 추적할 수 있습니다. 인앱 메시지가 표시되지만 사용자가 버튼을 클릭하지 않는 경우 인앱 메시지 수명 주기 이벤트를 사용하여 노출 및 닫기를 추적합니다. 시스템 수준 권한 프롬프트 자체의 결과를 추적하려면 푸시 권한 리스너를 사용하세요.이러한 SDK 이벤트를 선택한 백엔드 또는 분석 도구로 보낼 수 있습니다.
FAQ
사용자가 푸시 권한 프롬프트를 거부하면 어떻게 되나요?
iOS에서는 시스템 프롬프트를 거부하면 앱의 푸시 알림이 영구적으로 비활성화됩니다——프롬프트를 다시 표시할 수 없습니다. Android에서는 사용자가 한 번 더 기회를 얻습니다(총 두 번). 모든 기회를 사용한 후 사용자는 기기의 설정 > 알림에서 수동으로 알림을 다시 활성화해야 합니다. OneSignal SDK의requestPermission(fallbackToSettings: true) 메서드는 이전에 권한이 거부된 경우 사용자를 알림 설정으로 리디렉션할 수 있습니다.
네이티브 시스템 권한 프롬프트를 커스터마이징할 수 있나요?
아니요. 네이티브 iOS 및 Android 권한 대화 상자는 운영 체제에 의해 제어되며 커스터마이징할 수 없습니다. 커스터마이징할 수 있는 것은 소프트 프롬프트(시스템 프롬프트 전에 표시되는 인앱 메시지)뿐입니다. 소프트 프롬프트를 사용하여 알림의 가치를 설명하고, 기대치를 설정하고, 시스템 프롬프트에서 “허용”을 선택할 가능성을 높이세요.임시 알림으로 사용자에게 프롬프트를 표시할 수 있나요?
예. iOS 임시 푸시 알림을 사용하는 경우에도 소프트 프롬프트를 표시하여 해당 사용자를 전체 푸시 구독자로 전환할 수 있습니다. 사용자가 임시 알림에서 가치를 경험한 후 전략적으로 프롬프트 타이밍을 잡으세요.이전에 푸시를 거부한 사용자에게 다시 프롬프트하려면 어떻게 해야 하나요?
iOS에서 사용자가 거부한 후(또는 Android에서 두 번 거부한 후)에는 시스템 권한 프롬프트를 다시 표시할 수 없습니다. 대신requestPermission(fallbackToSettings: true) SDK 메서드를 사용하여 앱의 알림 설정 페이지를 열어 사용자가 수동으로 알림을 활성화할 수 있도록 합니다. 알림의 가치를 설명하는 인앱 메시지와 함께 사용하세요.
Android는 언제부터 권한 프롬프트가 필요하게 되었나요?
Android 13(API 레벨 33)에서 런타임 알림 권한이 도입되어 푸시 알림에 대한 명시적인 사용자 동의가 필요하게 되었습니다.- 출시: 2022년 8월(Pixel 장치)
- 대상 SDK에 필요: 2023년 8월 31일부터 Google Play의 모든 신규 앱 및 업데이트는 API 레벨 33 이상을 대상으로 해야 합니다.
- 출처: 알림 권한에 대한 Google의 개발자 가이드
iOS 임시 푸시 알림
iOS 12+에서 사전 권한 프롬프트 없이 알림 센터로 알림을 보냅니다.
