학습 내용
푸시 알림이 전달되는 방법과 실패할 수 있는 이유를 포함하여 푸시 알림 전달에 대해 알아보세요.
푸시 알림 전달푸시 알림 전달
푸시 알림 전달은 푸시 알림이 수신자의 디바이스에 성공적으로 전달된 경우를 말합니다.
여러 디바이스에 모바일 앱이 설치되어 있는 경우 프로필에 푸시 토큰이 두 개 이상 있을 수 있습니다. 프로필에 토큰이 저장된 모든 디바이스에 대해 푸시 알림이 시도됩니다.
푸시 알림에는 수신자의 디바이스가 알림을 성공적으로 수신하면 정렬이 수행되지 않으므로 이메일과 같은 전달 가능성 개념이 적용되지 않습니다.
캠페인 또는 플로우를 통해 푸시 알림을 보내면 클라비요는 푸시를 확인한 다음 iOS의 경우 Apple 푸시 알림 서비스(APN) 또는 Android의 푸시 알림 서비스인 Firebase 클라우드 메시징(FCM)으로 전송하여 수신자의 디바이스로 전달합니다. 배달에 문제가 있는 경우 일부 푸시 알림이 건너뛰는 경우가 있습니다.
APN과 FCM은 알림을 수락하고 수신자의 디바이스로 전달을 시도하거나 일련의 가능한 오류와 함께 알림을 거부합니다.
클라비요는 이러한 서비스가 알림을 수락하는지 또는 거부하는지에 대한 인사이트만 가지고 있습니다. 클라비요는 APN 또는 FCM이 푸시를 수락한 후 알림이 실패했는지 확인할 수 없습니다.
클라비요 푸시 알림 기능을 요청하고 싶으신가요? 이 Google 양식을 작성하여 알려주세요!
거부 이유
클라비요가 알림을 전송한 후 APN 또는 FCM으로부터 오류 응답을 받으면 배달 실패의 영향을 받은 각 토큰에 대해 반송된 푸시라는 이벤트가 생성됩니다. 알림이 전송된 각 흐름 또는 캠페인의 수신자 활동과 함께 수신 프로필의 활동 피드에 표시됩니다.
반송된 푸시 이벤트에는 APN 또는 Firebase에서 반환한 오류 코드 메시지(예: 만료된 토큰)를 표시하는 메타데이터가 포함됩니다. 전송 문제가 발생하는 경우 앱 개발자와 협력하여 이벤트의 설명에 따라 오류를 해결하세요.
이벤트의 메타데이터를 보려면 프로필의 활동 로그에서 이벤트에 대한 활동 세부정보를 클릭합니다.
iOS
APN을 통해 전송된 iOS 푸시 알림의 경우, APN의 알림 응답 처리에 대한 Apple의 참조에 나열된 이유 중 하나 이상으로 인해 거부가 발생할 수 있습니다.
상태 코드 |
APN 오류 문자열 |
APN 설명 |
400 |
BadDeviceToken |
지정한 디바이스 토큰이 잘못되었습니다. 요청에 유효한 토큰이 포함되어 있고 토큰이 환경과 일치하는지 확인합니다. |
400 |
BadTopic |
apns-topic 값이 유효하지 않습니다. |
400 |
장치 토큰이 주제에 맞지 않음 |
디바이스 토큰이 지정된 주제와 일치하지 않습니다. |
400 |
DuplicateHeaders |
하나 이상의 헤더가 반복되었습니다. |
400 |
유휴 시간 초과 |
유휴 시간 초과. |
400 |
InvalidPushType |
apns-push-type 값이 유효하지 않습니다. |
400 |
페이로드 비우기 |
메시지 페이로드가 비어 있습니다. |
403 |
BadCertificate |
인증서가 잘못되었습니다. |
403 |
나쁜 인증서 환경 |
클라이언트 인증서가 잘못된 환경용입니다. |
403 |
유효하지 않은 공급자 토큰 |
공급자 토큰이 유효하지 않거나 토큰 서명을 확인할 수 없습니다. |
404 |
BadPath |
요청에 잘못된 :경로 값이 포함되어 있습니다. |
405 |
메서드 허용되지 않음 |
지정한 :메서드가 POST가 아닙니다. |
410 |
만료된 토큰 |
디바이스 토큰이 만료되었습니다. |
410 |
등록되지 않음 |
지정된 주제에 대해 디바이스 토큰이 비활성 상태입니다. |
429 |
너무 많은 공급자 토큰 업데이트 |
공급자 토큰이 너무 자주 업데이트되고 있습니다. |
500 |
내부 서버 오류 |
내부 서버 오류가 발생했습니다. |
503 |
서비스 사용 불가 |
서비스를 사용할 수 없습니다. |
Android
FCM을 통해 전송된 Android 푸시 알림의 경우 Google의 FCM 오류 코드에대한 참조에 나열된 이유 중 하나 이상으로 인해 거부가 발생할 수 있습니다.
상태 코드 |
FCM 오류 문자열 |
FCM 설명 |
400 |
invalid_argument |
서버에 전달하는 등록 토큰의 형식을 확인합니다. 클라이언트 앱이 Firebase 알림에 등록할 때 받은 등록 토큰과 일치하는지 확인하세요. 문자를 자르거나 추가하지 마세요. |
400 |
invalid_argument |
메시지가 요청에 전달된 값과 패키지 이름이 일치하는 등록 토큰으로 전달되었는지 확인합니다. |
400 |
invalid_argument |
메시지에 포함된 페이로드 데이터의 총 크기가 FCM 한도를 초과하지 않는지 확인합니다: 대부분의 메시지의 경우 4096바이트, 토픽에 대한 메시지의 경우 2048바이트입니다. 여기에는 키와 값이 모두 포함됩니다. |
400 |
invalid_argument |
페이로드 데이터에 FCM에서 내부적으로 사용하는 키(예: from, gcm 또는 구글이 접두사로 붙인 값)가 포함되어 있지 않은지 확인합니다. 일부 단어(예: collapse_key)는 FCM에서도 사용되지만 페이로드에서 허용되며, 이 경우 페이로드 값은 FCM 값으로 재정의됩니다. |
400 |
invalid_argument |
ttl에 사용된 값이 0에서 2,419,200(4주) 사이의 기간을 초 단위로 나타내는 정수인지 확인합니다. |
400 |
invalid_argument |
제공된 매개변수의 이름과 유형이 올바른지 확인합니다. |
403 |
보낸 사람_ID_미스매치 |
인증된 발신자 ID가 등록 토큰의 발신자 ID와 다릅니다. |
404 |
등록되지 않음 |
앱 인스턴스가 FCM에서 등록 취소되었습니다. 이는 일반적으로 사용된 토큰이 더 이상 유효하지 않으며 새 토큰을 사용해야 함을 의미합니다. |
429 |
QUOTA_EXCEEDED |
메시지 대상에 대한 전송 한도를 초과했습니다. 초과된 할당량을 지정하기 위해 google.rpc.QuotaFailure 유형의 확장자가 반환됩니다. |
500 |
내부 |
알 수 없는 내부 오류가 발생했습니다. |
503 |
사용 불가 |
서버에 과부하가 걸렸습니다. |
수신자가 누락되었거나 푸시 토큰이 유효하지 않은 경우 반송된 푸시 이벤트도 표시됩니다.
모범 사례
사용자 동의 수집사용자 동의 수집
프로필에 푸시 알림을 보내려면 먼저 해당 프로필의 명시적인 동의를 받아야 합니다.
푸시 알림 동의를 수집하려면 고객이 모바일 앱과 처음 상호 작용할 때 권한 화면 프롬프트를 제공해야 합니다.
권한 화면 프롬프트에 다음 정보를 제공하고 사용자가 동의하거나 거부할 수 있는 동의 문구를 포함하는 것이 가장 좋습니다:
-
브랜드에서 보내는 알림 유형
브랜드에서 보내려는 다양한 푸시 알림에 대한 세부 정보(예: 계정 변경, 계정 변경, 알림, 특별 할인)를 포함하세요. -
사용자가 옵트인해야 하는 이유
고객이 권한을 제공해야 하는 이유(예: 중요한 업데이트 수신 또는 판매 조기 액세스)에 대한 정보를 포함하세요.
푸시 알림 동의 수집에 대해 자세히 알아보세요.
관련 알림 보내기
푸시 알림 캠페인을 보낼 때는 클라비요의 세분화 기능을 활용하여 구독자에게 맞춤화되고 관련성 있는 콘텐츠를 보내는 것이 중요합니다.
예를 들어, 단골 고객 세그먼트가 있다는 것을 알고 있다면 푸시 알림을 사용하여 새로운 거래나 프로모션에 대해 다른 사람보다 먼저 알릴 수 있습니다.
고객에게 보내는 콘텐츠가 고객의 관심사 및 선호도와 관련이 있는지 확인하면 고객이 수신 거부할 가능성을 줄이고 푸시 알림을 통해 고객에게 도달할 수 있는 기회를 극대화할 수 있습니다.
성능 모니터링 및 분석성능 모니터링 및 분석
클라비요로 푸시 알림 성능을 지속적으로 모니터링하여 배달 문제와 주요 푸시 지표의 하락을 빠르게 파악하는 것이 중요합니다.
가장 좋은 방법은 다음과 같은 푸시 알림 이벤트를 모니터링하는 것입니다:
- 푸시 수신
- 푸시 열기
- 반송된 푸시
클라비요에서 멀티 메트릭 보고서를 설정하여 이러한 이벤트의 성과가 시간에 따라 어떻게 변화하는지 모니터링할 수 있습니다.
추가 리소스