이 글은 안드로이드 공식 medium 블로그에 게시된 Top Tips for Adopting Android’s Notification Permission 원본 글을 나름대로 해석하면서 정리한 글입니다. 😎
세계적으로 과도한 알림은 digital-wellbeing (디지털-웰빙) 문제로 자리잡고 있습니다.
그래서 이번 Android 13 에서 runtime permission 을 도입해, 다시 사용자가 알림 환경을 컨트롤할 수 있도록 했습니다.
사용자들은 foreground service
를 포함하여 알림 센터에 알림을 포스트하기 전에 이 권한을 부여해야 합니다.
Android 13 에서는 앱이 첫 notification channel
을 생성할 때 사용자가 볼 수 있는 activity 가 디스플레이 된 경우에 알림 권한 요청화면이 표시됩니다.
즉, 앱을 시작할 때 또는 백그라운드에서 실행하는 동안 앱이 첫 번째 notification channel
을 만드는 경우 사용자는 앱을 실행한 후 바로 권한 요청 화면을 볼 수 있습니다.
하지만 이처럼 갑작스럽게 권한 요청 화면이 등장하면 앱의 사용자 이동에 방해가 될 수 있고, 또한 권한 거부율이 증가될 수도 있습니다. 이는 당연히 앱에 익숙치 않은 신규 사용자들은 개인 정보에 대한 접근을 허용하는 것에 대해 불편하게 여길 수 있기 때문입니다.
이러한 이유들로 인해, in-context 상태일 때 권한을 요청하기를 적극 권장합니다.
🤔 in-context?
- 해당 권한을 사용하는 적절한 기능으로 이동할 때를 의미합니다.
앱이 Android 13 (target SDK 가 33 이상) 을 대상으로 할 때 in-context
상태에서 권한을 요청하는 것은 쉽지만, 이전 Android 버전에서는 in-context
상태에서 권한 요청하는 방식을 첫 번째 notification channel
을 생성할 때로 변경하면 좀 더 수월할 것입니다.
Android 는 사용자가 in-context
상태일 때 첫 번째 notification channel
을 생성하는 것을 권장합니다.
또한 알림에 대한 접근 권한이 필요한 이유를 설명해주는 UI 도 작성할 수 있을 것입니다.
지금까지 특정 권한이 필요한 이유를 설명해주는 앱들이 더 높은 opt-in 비율을 얻는 경향이 있다는 리서치가 있었습니다.
🤔 opt-in?
- opt-in : 당사자가 개인 데이터 수집을 허용하기 전까지 당사자의 데이터 수집을 금지하는 제도
- opt-in 비율 : 사용자가 개인 데이터 수집을 허용한 비율입니다.
앱이 새로운 사용자에게 온보딩 플로우를 제공한다면, 첫 번째 notification channel
을 만들기 전에 이전에 언급했던 UI 를 표시할 수 있을 것입니다.
새로운 사용자의 관점에서 해당 권한 요청 타이밍이 적절한지 테스트 해봅시다.
알림 권한 기능을 앱에 통합하는 것에 대한 테스트 프로세스를 간소화하는 데 도움이 되는 몇 가지 새로운 adb 명령어가 있습니다!
알림을 보내기 전에 사용자가 알림에 대한 권한을 허용했는지 확인해야 합니다.
NotificationManager#areNotificationEnabled() API 를 통해 확인할 수 있습니다.
사용자가 Android 13 으로 기기를 업그레이드 한다면, 해당 API 는 설정 페이지의 알림 전환 외에 알림 권한에 대한 사용자의 응답 또한 반영하게 됩니다.
또한, 권한을 확인하는 것은 권한에 따라 기능이 달라지는 영향 (예를 들면, opt-out 비율) 을 평가하는 데에 도움이 됩니다.
🤔 opt-out? (아까는 opt-in 이었는데? 반대말이라고 생각하시면 됩니다.)
- opt-out : 당사자가 자신의 데이터 수집을 허용하지 않는다고 명시할 때 정보수집이 금지되는 제도
- opt-out 비율 : 사용자가 개인 데이터 수집을 거부한 비율입니다.
만약 앱에 알림이 필수적인데 사용자가 알림 권한을 거부하는 경우에는 위에서 언급했던 교육용 UI 를 보여주면서 사용자가 해당 권한을 거부하는 것에 대한 의미를 이해할 수 있도록 적극적으로 도와야 합니다.
사용자가 앱에서 수신할 알림 유형을 선택하고 (앱의 알림을 완전히 비활성화 하는 것 말고), 알림에 대한 시각적/청각적 행동을 제어할 수 있도록 알림을 채널로 계속해서 분류해야 합니다.
추가적으로, 사용자가 채널에 포함된 알림 유형을 이해하기 쉽도록 채널의 이름과 설명을 유의미하게 작성해야 합니다.