메인 콘텐츠로 건너뛰기

푸시 권한 프롬프트를 사용하는 이유는 무엇인가요?

배너로 나타나고, 잠금 화면에 표시되고, 소리를 재생하는 등의 푸시 알림을 보내려면 먼저 사용자의 권한을 받아야 합니다. iOS, Android, Huawei, Amazon 및 Web에서는 시스템 수준 권한 프롬프트를 표시해야 합니다.
iOS and Android system-level push permission prompts side by side
이 가이드는 모바일 앱 푸시 구독자를 위한 것입니다. Web Push의 경우 웹 푸시 권한 프롬프트를 참조하세요. 사전 요구 사항: OneSignal 계정, OneSignal SDK가 설치된 모바일 앱, 그리고 인앱 메시지가 활성화된 상태.
iOS는 시스템 권한 프롬프트를 한 번만 허용합니다. Android는 두 번 허용합니다. 사용자가 거부하면 시스템 설정에서 수동으로 알림을 활성화해야 합니다. 타이밍이 잘못된 프롬프트는 영구적으로 구독자를 잃게 만들 수 있습니다.
iOS에서는 사용자에게 프롬프트를 표시하지 않고 알림 센터로 조용히 전달하는 임시 알림을 사용할 수도 있습니다. 테스트 또는 낮은 마찰의 온보딩에 이상적입니다.
시스템 프롬프트는 횟수가 제한되어 있으므로 AppleGoogle 모두 표시 전에 알림의 가치를 설명할 것을 강력히 권장합니다. requestPermission() SDK 메서드를 사용하여 언제든지 프롬프트를 트리거할 수 있지만 적절한 컨텍스트 없이는 사용자가 거부할 가능성이 더 높습니다——iOS에서는 거부된 프롬프트를 다시 표시할 수 없습니다. 권장 방법은 “소프트 프롬프트”입니다——요청을 소개하는 사용자 지정 인앱 메시지입니다. 사용자가 수락하면 시스템 프롬프트가 나타납니다. 거부하면 아무 일도 일어나지 않으며 나중에 다시 요청할 수 있습니다.
In-app message leading to system push permission prompt

인앱 푸시 권한 프롬프트 설정

1

자동 권한 프롬프트 제거

시작하기 전에 앱이 기본 푸시 프롬프트를 자동으로 트리거하지 않는지 확인하세요:
  • 앱 시작 시 호출하는 경우 requestPermission() 또는 optIn() 메서드를 제거하세요.
  • requestAuthorizationWithOptions에 대한 기본 iOS 호출 및 푸시 토큰을 생성하는 모든 메서드를 제거하세요.
  • requestPermissions에 대한 Android 호출 및 푸시 토큰을 생성하는 모든 메서드를 제거하세요.
또한 앱에서 최신 버전의 OneSignal SDK를 사용하고 있는지 확인하세요.
2

인앱 메시지 생성 또는 편집

메시지 > 인앱으로 이동한 다음 다음 중 하나를 수행하세요:
  • 기본 Push Permission Prompt 템플릿을 편집하거나
  • New Message를 클릭하여 직접 만드세요.
OneSignal in-app messages list showing the Push Permission Prompt template
오디언스를 모든 사용자에게 표시로 설정합니다. OneSignal은 Push Permission Prompt 클릭 액션에 따라 푸시를 구독하지 않은 사용자에게만 이 메시지를 자동으로 필터링합니다.
Audience setting configured to show to all users
3

메시지 디자인 사용자 지정

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

푸시 권한 프롬프트 클릭 액션 추가

메시지의 버튼 또는 이미지에 Push Permission Prompt 클릭 액션을 추가하세요. 탭하면 시스템 프롬프트가 표시됩니다.
Click action dropdown with Push Permission Prompt selected
iOS native push notification permission prompt
사용자가 이미 권한을 거부한 경우 버튼은 대신 앱의 알림 설정으로 이동합니다.
“Push Permission Prompt” 액션이 있는 인앱 메시지는 이미 알림을 허용한 사용자에게 표시되지 않습니다.
5

트리거 선택

오디언스는 메시지를 볼 수 있는 사람을 제어합니다. 트리거는 표시되는 시기를 제어합니다.
In-app message trigger configuration panel
다음과 같이 메시지를 트리거할 수 있습니다:
  • 앱 열기 시
  • 설정된 세션 시간 후
  • 특정 사용자 이벤트 시
  • 프로그래밍 방식으로, 인앱 메시지 SDK 메서드를 사용하여 타이밍과 컨텍스트를 완전히 제어
예를 들어 사용자가 앱에서 최소 5분을 보낼 때까지 기다리려면:
Session duration trigger set to 5 minutes
6

일정 및 빈도

메시지가 나타나는 빈도를 제어합니다:
  • 한 번만 — 처음에 준비되지 않은 사용자를 전환할 가능성이 낮음.
  • 조건이 충족될 때마다 — 너무 공격적이며 사용자를 불쾌하게 할 수 있음.
  • 여러 번 (권장) — 높은 최대값(예: 9999)과 표시 간격(예: 2주)을 설정합니다. 이렇게 하면 미구독 사용자에게 너무 거슬리지 않으면서 주기적으로 다시 프롬프트를 표시합니다. 사용 사례에 따라 간격을 조정하세요.
Schedule configuration showing max displays and gap between views
메시지를 업데이트하고 라이브로 설정하세요. 통계를 모니터링하고 필요에 따라 표시 간격을 조정하세요.

프로그래밍 방식으로 권한 프롬프트 표시

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)에서 런타임 알림 권한이 도입되어 푸시 알림에 대한 명시적인 사용자 동의가 필요하게 되었습니다.

iOS 임시 푸시 알림

iOS 12+에서 사전 권한 프롬프트 없이 알림 센터로 알림을 보냅니다.