Skip to content

푸시 알림 문제 해결

Braze SDK의 푸시 알림 문제를 해결하는 방법을 알아보세요.

Braze 푸시 워크플로 이해

Firebase 클라우드 메시징(FCM) 서비스는 Android 애플리케이션으로 전송되는 푸시 알림을 위한 Google의 인프라입니다. 다음은 사용자의 디바이스에서 푸시 알림을 활성화하는 방법과 Braze가 푸시 알림을 보내는 방법에 대한 간단한 구조입니다:

---
config:
  theme: mc
---
sequenceDiagram
  participant Device as User Device
  participant App as Android App
  participant BrazeSDK as Braze SDK
  participant BrazeAPI as Braze Server
  participant Firebase as Google Firebase
  Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
  App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
  BrazeSDK ->> App: Get push token from Firebase Manager
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
  Note over Device, Firebase: Register Option 2<br/>Manual registration.
  App ->> BrazeSDK: App sets `Braze.registeredPushToken`
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.  
  Note over Device, Firebase: Push permission
  BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
  BrazeSDK -> App: In-App Message is displayed
  App -> BrazeSDK: User requests permissions
  BrazeSDK -> App: Displays the Push Authorization prompt
  BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
  Note over Device, Firebase: Push Notification Is Sent
  BrazeAPI ->> Firebase: Sends push message 
  Firebase ->> Device: Push message sent
  Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
  App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
  BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.

1단계: Google Cloud API 키 구성

앱을 개발할 때 Braze Android SDK에 Firebase 발신자 ID를 제공해야 합니다. 또한 서버 애플리케이션용 API 키를 Braze 대시보드에 제공해야 합니다. Braze는 이 API 키를 사용하여 사용자 기기로 메시지를 전송합니다. 또한 Google 개발자 콘솔에서 FCM 서비스가 활성화되어 있는지 확인해야 합니다.

2단계: 디바이스가 FCM에 등록하고 Braze에 푸시 토큰을 제공합니다.

일반적인 통합에서는 Braze Android SDK가 FCM 기능을 위해 기기 등록을 처리합니다. 일반적으로 앱을 처음 열면 바로 이런 일이 발생합니다. 등록 후 Braze에 FCM 등록 ID가 제공되고 이 ID를 사용하여 해당 기기로만 메시지를 전송합니다. 해당 사용자의 등록 ID가 저장되며, 해당 사용자는 이전에 귀하의 앱에 푸시 토큰이 없었던 경우 ‘푸시 등록’ 상태가 됩니다.

3단계: Braze 푸시 캠페인 시작

푸시 캠페인이 시작되면 Braze는 FCM에 메시지 전달을 요청합니다. Braze는 대시보드에 복사된 API 키를 사용하여 인증하고 제공된 푸시 토큰으로 푸시 알림을 보낼 수 있는지 확인합니다.

4단계: 유효하지 않은 토큰 제거하기

FCM에서 메시지를 보내려고 했던 푸시 토큰이 유효하지 않음을 알려주면 해당 토큰이 연결된 사용자 프로필에서 해당 토큰을 제거합니다. 사용자에게 다른 푸시 토큰이 없는 경우, 더 이상 세그먼트 페이지 아래에 “푸시 등록됨”으로 표시되지 않습니다.

FCM에 대한 자세한 내용은 클라우드 메시징을 참조하세요.

푸시 오류 로그 활용하기

Braze는 메시지 활동 로그 내에서 푸시 알림 오류를 제공합니다. 이 오류 로그는 캠페인이 예상대로 작동하지 않는 이유를 파악하는 데 매우 유용한 다양한 경고를 제공합니다. 오류 메시지를 클릭하면 특정 인시던트 문제를 해결하는 데 도움이 되는 관련 설명서로 리디렉션됩니다.

문제 해결 시나리오

푸시가 전송되지 않습니다.

다음과 같은 상황으로 인해 푸시 메시지가 전송되지 않을 수 있습니다:

  • 자격 증명이 잘못된 Google Cloud Platform 프로젝트 ID(잘못된 발신자 ID)에 있습니다.
  • 자격 증명의 권한 범위가 잘못되었습니다.
  • 잘못된 Braze 워크스페이스에 잘못된 자격 증명을 업로드했습니다(발신자 ID가 잘못됨).

푸시 메시지를 보내지 못할 수 있는 다른 문제에 대해서는 사용자 가이드를 참조하세요: 푸시 알림 문제 해결.

Braze 대시보드에 ‘푸시 등록’ 사용자가 표시되지 않음(메시지 전송 전)

앱이 푸시 알림을 허용하도록 올바르게 구성되었는지 확인합니다. 확인해야 할 일반적인 실패 지점은 다음과 같습니다:

발신자 ID가 잘못되었습니다.

braze.xml 파일에 올바른 FCM 발신자 ID가 포함되어 있는지 확인합니다. 발신자 ID가 잘못되면 대시보드의 메시지 활동 로그에 MismatchSenderID 오류가 보고됩니다.

브레이즈 등록이 발생하지 않음

FCM 등록은 Braze 외부에서 처리되므로 등록 실패는 두 경우에서만 발생할 수 있습니다.

  1. FCM에 등록하는 동안
  2. FCM에서 생성된 푸시 토큰을 Braze에 전달할 때

중단점을 설정하거나 로깅을 통해 FCM에서 생성된 푸시 토큰이 Braze로 전송되는지 확인하는 것이 좋습니다. 토큰이 올바르게 생성되지 않거나 전혀 생성되지 않는 경우 FCM 설명서를 참조하시기 바랍니다.

Google Play 서비스 없음

FCM 푸시가 작동하려면 기기에 Google Play 서비스가 있어야 합니다. 기기에 Google Play 서비스가 설치되어 있지 않은 경우 푸시 등록이 이루어지지 않습니다.

참고: Google API가 설치되지 않은 Android 에뮬레이터에는 Google Play 서비스가 설치되지 않습니다.

장치가 인터넷에 연결되지 않음

디바이스의 인터넷 연결 상태가 양호하고 프록시를 통해 네트워크 트래픽을 전송하고 있지 않은지 확인하세요.

푸시 알림을 탭해도 앱이 열리지 않습니다.

com_braze_handle_push_deep_links_automaticallytrue 또는 false 로 설정되어 있는지 확인합니다. 푸시 알림을 탭할 때 Braze가 앱과 딥링크를 자동으로 열도록 설정하려면 braze.xml에서 com_braze_handle_push_deep_links_automaticallytrue로 설정합니다.

com_braze_handle_push_deep_links_automatically가 기본값인 false로 설정된 경우, Braze 푸시 콜백을 사용하여 푸시 수신 및 열람 의도를 수신 대기하고 처리해야 합니다.

푸시 알림 반송

푸시 알림이 전달되지 않으면 개발자 콘솔에서 푸시 알림이 반송되지 않았는지 확인합니다. 다음은 개발자 콘솔에 기록될 수 있는 일반적인 오류에 대한 설명입니다:

오류: MismatchSenderID

MismatchSenderID 는 인증 실패를 나타냅니다. Firebase 발신자 ID와 FCM API 키가 올바른지 확인합니다.

오류: InvalidRegistration

InvalidRegistration은 잘못된 푸시 토큰으로 인해 발생할 수 있습니다.

  1. Firebase 클라우드 메시징에서 유효한 푸시 토큰을 Braze에 전달해야 합니다.

오류: 등록되지 않음

  1. NotRegistered는 일반적으로 기기에서 앱이 삭제되었을 때 발생합니다. Braze는 내부적으로 NotRegistered를 사용하여 기기에서 앱이 제거되었음을 알립니다.

  2. NotRegistered는 여러 번의 등록이 발생하고 두 번째 등록이 첫 번째 토큰을 무효화할 때도 발생할 수 있습니다.

푸시 알림이 전송되었지만 사용자의 디바이스에 표시되지 않음

이러한 문제가 발생하는 데에는 몇 가지 이유가 있습니다:

애플리케이션이 강제 종료되었습니다.

시스템 설정을 통해 애플리케이션을 강제 종료하면 푸시 알림이 전송되지 않습니다. 앱을 다시 실행하면 기기에서 푸시 알림을 다시 받을 수 있습니다.

BrazeFirebaseMessagingService 등록되지 않음

푸시 알림이 표시되려면 BrazeFirebaseMessagingService가 AndroidManifest.xml 에 올바르게 등록되어 있어야 합니다:

1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
  android:exported="false">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter>
</service>

방화벽이 푸시를 차단하고 있습니다.

Wi-Fi를 통해 푸시를 테스트하는 경우 방화벽이 FCM이 메시지를 수신하는 데 필요한 포트를 차단할 수 있습니다. 5228, 5229, 5230 포트가 열려 있는지 확인합니다. 또한 FCM은 IP를 지정하지 않으므로 방화벽이 Google의 ASN(15169)에 나열된 IP 블록에 포함된 모든 IP 주소로 나가는 연결을 수락하도록 허용해야 합니다.

커스텀 알림 팩토리에서 null 반환

사용자 지정 알림 팩토리를 구현한 경우 null 을 반환하지 않는지 확인하세요. 이렇게 하면 알림이 표시되지 않습니다.

메시지 전송 후 ‘푸시 등록’ 사용자가 더 이상 활성화되지 않음

이런 일이 발생하는 데에는 몇 가지 이유가 있습니다:

애플리케이션이 제거되었습니다.

사용자가 애플리케이션을 제거했습니다. 이렇게 하면 FCM 푸시 토큰이 무효화됩니다.

잘못된 파이어베이스 클라우드 메시징 서버 키

Braze 대시보드에 제공된 Firebase 클라우드 메시징 서버 키가 유효하지 않습니다. 제공된 발신자 ID는 앱의 braze.xml 파일에 참조된 발신자 ID와 일치해야 합니다. 서버 키와 발신자 ID는 Firebase 콘솔에서 찾을 수 있습니다.

'설정'과 '클라우드 메시징' 아래의 Firebase 플랫폼에 서버 ID와 서버 키가 표시됩니다.

푸시 클릭이 기록되지 않음

Braze 로그는 클릭을 자동으로 푸시하므로 이 시나리오는 비교적 드물게 발생합니다.

푸시 클릭이 기록되지 않는다면 푸시 클릭 데이터가 아직 서버로 플러시되지 않았을 가능성이 있습니다. Braze는 네트워크 연결 강도에 따라 플러시 빈도를 조절합니다. 네트워크 연결 상태가 양호하면 대부분의 경우 푸시 클릭 데이터는 1분 이내에 서버에 도달합니다.

딥 링크가 작동하지 않음

딥링크 구성 확인

딥 링크는 ADB로 테스트할 수 있습니다. 다음 명령어로 딥링크를 테스트하는 것이 좋습니다:

adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME

딥링크가 작동하지 않으면 딥링크가 잘못 구성된 것일 수 있습니다. 잘못 구성된 딥링크는 Braze 푸시를 통해 전송할 때 작동하지 않습니다.

사용자 지정 처리 로직 확인

딥링크가 ADB에서는 올바르게 작동하지만 Braze 푸시에서는 작동하지 않는 경우, 사용자 지정 푸시 오픈 처리가 구현되어 있는지 확인하세요. 그렇다면 커스텀 처리 코드가 수신 딥링크를 올바르게 처리하는지 확인합니다.

백 스택 동작 비활성화

딥링크가 ADB에서는 올바르게 작동하지만 Braze 푸시에서는 작동하지 않는 경우 백 스택을 비활성화해 보세요. 이렇게 하려면 braze.xml 파일을 업데이트합니다:

1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>

Braze/APNs 워크플로 이해하기

Apple 푸시 알림 서비스(APN)는 Apple 플랫폼에서 실행되는 애플리케이션에 푸시 알림을 전송하기 위한 인프라입니다. 다음은 사용자의 디바이스에서 푸시 알림을 활성화하는 방법과 Braze가 푸시 알림을 보내는 방법에 대한 간단한 구조입니다:

  1. 푸시 인증서 및 프로비저닝 프로필을 구성합니다.
  2. 디바이스가 APN에 등록하고 Braze에 푸시 토큰을 제공합니다.
  3. Braze 푸시 캠페인을 시작합니다.
  4. Braze는 유효하지 않은 토큰을 제거합니다.

1단계: 푸시 인증서 및 프로비저닝 프로필 구성하기

앱을 개발할 때 푸시 알림을 활성화하려면 SSL 인증서를 생성해야 합니다. 이 인증서는 앱이 빌드된 프로비저닝 프로필에 포함되며, Braze 대시보드에도 업로드되어야 합니다. 이 인증서를 통해 Braze는 사용자를 대신하여 푸시 알림을 전송할 수 있음을 APN에 알릴 수 있습니다.

프로비저닝 프로필 및 인증서에는 개발 및 배포의 두 가지 유형이 있습니다. 혼동을 피하기 위해 배포 프로필과 인증서만 사용하는 것을 권장합니다. 개발 및 배포에 다른 프로필과 인증서를 사용하기로 선택한 경우 대시보드에 업로드한 인증서가 현재 사용 중인 프로비저닝 프로필과 일치하는지 확인하세요.

2단계: 디바이스가 APN에 등록하고 Braze에 푸시 토큰을 제공합니다.

사용자가 앱을 열면 푸시 알림을 수락할지 묻는 프롬프트가 표시됩니다. 이 프롬프트를 수락하면 APN이 해당 특정 기기에 대한 푸시 토큰을 생성합니다. Swift SDK는 기본 자동 플러시 정책을 사용하는 앱에 대해 푸시 토큰을 즉시 비동기식으로 전송합니다. 푸시 토큰이 사용자와 연결되면 사용자 프로필의 참여 탭에 있는 대시보드에 “푸시 등록됨”으로 표시되며, Braze 캠페인에서 푸시 알림을 받을 수 있게 됩니다.

푸시 토큰 생성 시 고려 사항

  • 사용자가 다른 디바이스에 앱을 설치하면 동일한 방식으로 다른 토큰이 생성되고 캡처됩니다.
  • 사용자가 앱을 재설치하면 새 토큰이 생성되어 Braze에 전달됩니다. 그러나 원본 토큰은 여전히 APN과 Braze에서 유효한 것으로 기록될 수 있습니다.
  • 사용자가 앱을 제거해도 Braze는 이 사실을 즉시 알리지 않으며, 토큰은 APN에 의해 폐기될 때까지 유효한 것으로 표시됩니다.
  • 어느 시점이 되면 APN은 오래된 토큰을 폐기할 것입니다. Braze는 이에 대한 통제권이나 가시성을 가지고 있지 않습니다.

3단계: Braze 푸시 캠페인 시작

푸시 캠페인이 시작되면 Braze는 APN에 메시지 전달을 요청합니다. 특히, 사용자의 가장 최근 디바이스로 보내기를 선택하지 않으면 현재 유효한 각 푸시 토큰에 대한 요청이 APN으로 전달됩니다. Braze가 APN으로부터 성공적인 응답을 받으면 사용자 프로필에 성공적인 전달로 기록되지만, 사용자가 실제 메시지를 받지 못했을 수도 있습니다:

  • 기기의 전원이 꺼져 있습니다.
  • 장치가 인터넷(Wi-Fi 또는 셀룰러)에 연결되어 있지 않습니다.
  • 최근에 앱을 삭제했습니다.

Braze는 대시보드에 업로드된 SSL 푸시 인증서를 사용하여 제공된 푸시 토큰으로 푸시 알림을 전송할 수 있는지 인증하고 확인합니다. 기기가 온라인 상태인 경우 캠페인이 전송된 직후에 알림이 수신되어야 합니다. Braze는 알림의 기본 APN 만료일을 30일로 설정합니다.

4단계: 유효하지 않은 토큰 제거하기

메시지를 보내려고 했던 푸시 토큰이 유효하지 않다고 APN이 알려주면 해당 토큰이 연결된 사용자 프로필에서 해당 토큰을 제거합니다.

푸시 오류 로그 사용

메시지 활동 로그에서는 푸시 알림 오류를 포함하여 캠페인 및 전송과 관련된 모든 메시지(특히 오류 메시지)를 확인할 수 있습니다. 이 오류 로그는 캠페인이 예상대로 작동하지 않는 이유를 파악하는 데 매우 유용한 다양한 경고를 제공합니다. 오류 메시지를 클릭하면 특정 인시던트 문제를 해결하는 데 도움이 되는 관련 설명서로 리디렉션됩니다.

오류 발생 시간, 앱 이름, 채널, 오류 유형 및 오류 메시지가 표시된 푸시 오류 로그

여기에서 볼 수 있는 일반적인 오류로는 “푸시 토큰에 등록되지 않은 전송 수신” 등의 사용자별 알림이 있습니다.

또한 Braze는 참여 탭의 사용자 프로필에서 푸시 변경 로그를 제공합니다. 이 체인지로그는 토큰 무효화, 푸시 등록 오류, 새 사용자에게 이동되는 토큰 등의 푸시 등록 동작에 대한 인사이트를 제공합니다.

메시지 활동 로그 오류

푸시 토큰에 등록되지 않은 전송 수신됨

  • AppDelegate.braze?.notifications.register(deviceToken:) 메서드에서 Braze로 전송되는 푸시 토큰이 유효한지 확인합니다. 메시지 활동 로그에서 푸시 토큰을 확인할 수 있습니다. 문자와 숫자 조합이 포함된 긴 문자열(예: 6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6)이어야 합니다. 푸시 토큰이 다르게 보인다면 Braze에 푸시 토큰을 전송하는 코드를 확인하세요.
  • 푸시 프로비저닝 프로필이 테스트 중인 환경과 일치하는지 확인합니다. 유니버설 인증서는 개발 또는 프로덕션 APN 환경으로 보내도록 Braze 대시보드에서 구성할 수 있습니다. 프로덕션 앱에 개발 인증서를 사용하거나 개발 앱에 프로덕션 인증서를 사용하는 경우 작동하지 않습니다.
  • Braze에 업로드한 푸시 토큰이 푸시 토큰을 보낸 앱을 빌드하는 데 사용한 프로비저닝 프로필과 일치하는지 확인합니다.

주제용이 아닌 디바이스 토큰

이 오류는 앱의 푸시 인증서와 번들 ID가 일치하지 않음을 나타냅니다. Braze에 업로드한 푸시 인증서가 푸시 토큰을 보낸 앱을 빌드하는 데 사용한 프로비저닝 프로필과 일치하는지 확인합니다.

푸시 토큰으로 전송하는 BadDeviceToken

BadDeviceToken은 APN 오류 코드이며, Braze에서 생성된 오류가 아닙니다. 이 응답이 반환되는 데에는 다음과 같은 여러 가지 이유가 있을 수 있습니다:

  • 앱이 대시보드에 업로드된 자격 증명에 대해 유효하지 않은 푸시 토큰을 수신했습니다.
  • 이 워크스페이스에 대해 푸시가 비활성화되었습니다.
  • 사용자가 푸시 수신을 거부했습니다.
  • 앱이 삭제되었습니다.
  • Apple이 푸시 토큰을 새로 고침하여 기존 토큰이 무효화되었습니다.
  • 앱은 프로덕션 환경용으로 빌드되었지만 Braze에 업로드된 푸시 자격 증명은 개발 환경용으로 설정되어 있습니다(또는 반대의 경우도 마찬가지).

푸시 등록 문제

푸시 등록 프롬프트 없음

애플리케이션에서 사용자에게 푸시 알림을 등록하라는 프롬프트를 표시하지 않으면 푸시 등록 통합에 문제가 있을 수 있습니다. 설명서를 준수하고 푸시 등록을 올바르게 통합했는지 확인하세요. 코드에 중단점을 설정하여 푸시 등록 코드가 실행 중인지 확인할 수도 있습니다.

대시보드에 ‘푸시 등록’ 사용자가 표시되지 않음(메시지 전송 전)

앱이 푸시 알림을 허용하도록 올바르게 구성되어 있는지 확인합니다. 확인해야 할 일반적인 실패 지점은 다음과 같습니다:

  • 앱에서 푸시 알림을 허용하라는 프롬프트를 표시하는지 확인합니다. 일반적으로 이 프롬프트는 앱을 처음 열 때 표시되지만 다른 경우에 표시하도록 프로그래밍할 수 있습니다. 표시해야 할 위치에 표시되지 않는다면 앱의 푸시 기능 기본 구성에 문제가 있는 것일 수 있습니다.
    • 푸시 통합을 위한 단계가 성공적으로 완료되었는지 확인합니다.
    • 앱이 빌드된 프로비저닝 프로필에 푸시 권한이 포함되어 있는지 확인합니다. Apple 개발자 계정에서 사용 가능한 모든 프로비저닝 프로필을 가져오고 있는지 확인합니다. 이를 확인하려면 다음 단계를 수행하세요:
      1. Xcode에서 환경설정 > 계정으로 이동합니다. 또는 키보드 단축키 Command+,를 사용합니다.
      2. 개발자 계정에 사용하는 Apple ID를 선택하고 세부 정보 보기를 클릭합니다.
      3. 다음 페이지에서 새로 고침을 클릭하고 사용 가능한 모든 프로비저닝 프로필을 가져오는지 확인합니다.
  • 앱에서 푸시 기능을 제대로 활성화했는지 확인하세요.
  • 푸시 프로비저닝 프로필이 테스트를 수행하는 환경과 일치하는지 확인합니다. 유니버설 인증서는 개발 또는 프로덕션 APN 환경으로 보내도록 Braze 대시보드에서 구성할 수 있습니다. 프로덕션 앱에 개발 인증서를 사용하거나 개발 앱에 프로덕션 인증서를 사용하는 경우 작동하지 않습니다.
  • 코드에 중단점을 설정하여 registerPushToken 메서드를 호출하고 있는지 확인하세요.
  • 기기를 사용하여 테스트하고 있고(시뮬레이터에서는 푸시가 작동하지 않음) 네트워크 연결 상태가 양호한지 확인하세요.

푸시 알림이 전송되었지만 사용자의 디바이스에 표시되지 않음

메시지 전송 후 ‘푸시 등록’ 사용자가 더 이상 활성화되지 않음

사용자에게 유효하지 않은 푸시 토큰이 있음을 나타낼 수 있습니다. 이는 여러 가지 이유로 발생할 수 있습니다:

대시보드와 앱 인증서 불일치

대시보드에 업로드한 푸시 인증서가 앱이 빌드된 프로비저닝 프로필의 푸시 인증서와 같지 않은 경우 APN은 토큰을 거부합니다. 다른 테스트 알림을 시도하기 전에 올바른 인증서를 업로드하고 앱에서 다른 세션을 완료했는지 확인합니다.

애플리케이션이 제거되었습니다.

사용자가 애플리케이션을 제거한 경우, 해당 푸시 토큰은 유효하지 않으며 다음 전송 시 제거됩니다.

프로비저닝 프로필 다시 생성

마지막 수단으로, 처음부터 완전히 새로운 프로비저닝 프로필을 만들면 여러 환경, 프로필 및 앱에서 동시에 작업할 때 발생하는 구성 오류를 해결할 수 있습니다. 푸시 알림을 설정할 때 ‘변동 부분’이 많으므로 때로는 처음부터 다시 시도하는 것이 가장 좋습니다. 또한 문제 해결을 계속해야 하는 경우 문제를 격리하는 데 도움이 됩니다.

‘푸시 등록’ 사용자에게 전달되지 않은 메시지

앱이 전경에 표시됨

UserNotifications 프레임워크를 통해 푸시를 통합하지 않는 iOS 버전에서는 푸시 메시지를 수신할 때 앱이 포그라운드에 있는 경우 푸시 메시지가 표시되지 않습니다. 테스트 메시지를 보내기 전에 테스트 기기에서 앱을 백그라운드로 실행해야 합니다.

잘못 예약된 테스트 알림

테스트 메시지에 대해 설정한 일정을 확인하세요. 현지 시간대 배달 또는 지능형 타이밍으로 설정되어 있는 경우 메시지를 아직 받지 못했거나 메시지를 받았을 때 앱이 포그라운드에 있었을 수 있습니다.

테스트 중인 앱에서 ‘푸시 등록’되지 않은 사용자

테스트 메시지를 보내려는 사용자의 사용자 프로필을 확인합니다. 인게이지먼트 탭 아래에 ‘푸시 가능한 앱’ 목록이 있습니다. 테스트 메시지를 보내려는 앱이 이 목록에 있는지 확인합니다. 사용자가 워크스페이스의 앱에 대한 푸시 토큰을 보유한 경우 ‘푸시 등록’으로 표시되므로 이는 오탐일 수 있습니다.

다음은 푸시 등록에 문제가 있거나 사용자의 토큰이 푸시된 후 APN에 의해 유효하지 않은 것으로 Braze에 반환되었음을 나타냅니다:

사용자의 연락처 설정을 표시하는 사용자 프로필입니다. 푸시 아래에 '앱 없음'이 표시됩니다.

푸시 클릭이 기록되지 않음

  • 푸시 연동 단계를 따랐는지 확인하세요.
  • Braze는 포그라운드에서 무음 수신된 푸시 알림을 처리하지 않습니다(UserNotifications 프레임워크 이전의 기본 포그라운드 푸시 동작). 즉, 링크가 열리지 않고 푸시 클릭이 기록되지 않습니다. 애플리케이션이 아직 UserNotifications 프레임워크를 통합하지 않은 경우, 애플리케이션 상태가 UIApplicationStateActive이면 Braze는 푸시 알림을 처리하지 않습니다. 앱에서 푸시 처리 메서드에 대한 호출이 지연되지 않도록 하세요. 그렇지 않으면 Swift SDK가 푸시 알림을 무음 포그라운드 푸시 이벤트로 처리하여 처리하지 않을 수 있습니다.

딥 링크가 작동하지 않음

푸시 클릭으로 인한 웹 링크가 열리지 않음

푸시 알림의 링크를 웹 보기에서 열려면 ATS를 준수해야 합니다. 웹 링크가 HTTPS를 사용하는지 확인합니다. 자세한 내용은 ATS 규정 준수를 참조하세요.

푸시 클릭으로 인한 딥링크가 열리지 않음

딥링크를 처리하는 대부분의 코드는 푸시 오픈도 처리합니다. 먼저 푸시 오픈이 로깅되고 있는지 확인합니다. 그렇지 않은 경우 해당 문제를 수정하세요(수정하면 링크 처리가 수정되는 경우가 많으므로).

열람이 기록되는 경우 일반적인 딥링크 문제인지 또는 딥링크 푸시 클릭 처리에 문제가 있는지 확인합니다. 이를 위해 인앱 메시지 클릭의 딥링크가 작동하는지 테스트합니다.

Troubleshooting

If you’re experiencing issues after setting up push notifications, consider the following:

  • Web push notifications require that your site be HTTPS.
  • Not all browsers can receive push messages. Ensure that braze.isPushSupported() returns true in the browser.
  • If a user has denied a site push access, they won’t be prompted for permission again unless they remove the denied status from their browser preferences.

Braze 푸시 워크플로 이해

Firebase 클라우드 메시징(FCM) 서비스는 Android 애플리케이션으로 전송되는 푸시 알림을 위한 Google의 인프라입니다. 다음은 사용자의 디바이스에서 푸시 알림을 활성화하는 방법과 Braze가 푸시 알림을 보내는 방법에 대한 간단한 구조입니다:

---
config:
  theme: mc
---
sequenceDiagram
  participant Device as User Device
  participant App as Android App
  participant BrazeSDK as Braze SDK
  participant BrazeAPI as Braze Server
  participant Firebase as Google Firebase
  Note over Device, Firebase: Register Option 1<br/>Register Automatically using `com_braze_firebase_cloud_messaging_registration_enabled` in braze.xml
  App ->> Braze: App intializes Braze with the first Braze call<br>This could be automatic session handling
  BrazeSDK ->> App: Get push token from Firebase Manager
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.
  Note over Device, Firebase: Register Option 2<br/>Manual registration.
  App ->> BrazeSDK: App sets `Braze.registeredPushToken`
  BrazeSDK ->> BrazeAPI: Send push token to Braze Server
  Note right of BrazeAPI: Braze will remove push token from any<br>other user who may have previously<br> been logged in on the same device.  
  Note over Device, Firebase: Push permission
  BrazeAPI ->> BrazeSDK: In-App Message containing push prompt
  BrazeSDK -> App: In-App Message is displayed
  App -> BrazeSDK: User requests permissions
  BrazeSDK -> App: Displays the Push Authorization prompt
  BrazeSDK -> BrazeAPI: If authorized and `com_braze_optin_when_push_authorized`, Opt-In value is sent.
  Note over Device, Firebase: Push Notification Is Sent
  BrazeAPI ->> Firebase: Sends push message 
  Firebase ->> Device: Push message sent
  Device ->> App: Android will send the push to the App.<br>This could be blocked to Do Not Disturb, Power Saving Mode, etc.
  App ->> BrazeSDK: Message is sent to BrazeFirebaseMessagingService
  BrazeSDK ->> Device: SDK will check if the push is from Braze.<br>If so, push data is transformed into a Push Notfication and displayed.

1단계: Google Cloud API 키 구성

앱을 개발할 때 Braze Android SDK에 Firebase 발신자 ID를 제공해야 합니다. 또한 서버 애플리케이션용 API 키를 Braze 대시보드에 제공해야 합니다. Braze는 이 API 키를 사용하여 사용자 기기로 메시지를 전송합니다. 또한 Google 개발자 콘솔에서 FCM 서비스가 활성화되어 있는지 확인해야 합니다.

2단계: 디바이스가 FCM에 등록하고 Braze에 푸시 토큰을 제공합니다.

일반적인 통합에서는 Braze Android SDK가 FCM 기능을 위해 기기 등록을 처리합니다. 일반적으로 앱을 처음 열면 바로 이런 일이 발생합니다. 등록 후 Braze에 FCM 등록 ID가 제공되고 이 ID를 사용하여 해당 기기로만 메시지를 전송합니다. 해당 사용자의 등록 ID가 저장되며, 해당 사용자는 이전에 귀하의 앱에 푸시 토큰이 없었던 경우 ‘푸시 등록’ 상태가 됩니다.

3단계: Braze 푸시 캠페인 시작

푸시 캠페인이 시작되면 Braze는 FCM에 메시지 전달을 요청합니다. Braze는 대시보드에 복사된 API 키를 사용하여 인증하고 제공된 푸시 토큰으로 푸시 알림을 보낼 수 있는지 확인합니다.

4단계: 유효하지 않은 토큰 제거하기

FCM에서 메시지를 보내려고 했던 푸시 토큰이 유효하지 않음을 알려주면 해당 토큰이 연결된 사용자 프로필에서 해당 토큰을 제거합니다. 사용자에게 다른 푸시 토큰이 없는 경우, 더 이상 세그먼트 페이지 아래에 “푸시 등록됨”으로 표시되지 않습니다.

FCM에 대한 자세한 내용은 클라우드 메시징을 참조하세요.

푸시 오류 로그 활용하기

Braze는 메시지 활동 로그 내에서 푸시 알림 오류를 제공합니다. 이 오류 로그는 캠페인이 예상대로 작동하지 않는 이유를 파악하는 데 매우 유용한 다양한 경고를 제공합니다. 오류 메시지를 클릭하면 특정 인시던트 문제를 해결하는 데 도움이 되는 관련 설명서로 리디렉션됩니다.

문제 해결 시나리오

푸시가 전송되지 않습니다.

다음과 같은 상황으로 인해 푸시 메시지가 전송되지 않을 수 있습니다:

  • 자격 증명이 잘못된 Google Cloud Platform 프로젝트 ID(잘못된 발신자 ID)에 있습니다.
  • 자격 증명의 권한 범위가 잘못되었습니다.
  • 잘못된 Braze 워크스페이스에 잘못된 자격 증명을 업로드했습니다(발신자 ID가 잘못됨).

푸시 메시지를 보내지 못할 수 있는 다른 문제에 대해서는 사용자 가이드를 참조하세요: 푸시 알림 문제 해결.

Braze 대시보드에 ‘푸시 등록’ 사용자가 표시되지 않음(메시지 전송 전)

앱이 푸시 알림을 허용하도록 올바르게 구성되었는지 확인합니다. 확인해야 할 일반적인 실패 지점은 다음과 같습니다:

발신자 ID가 잘못되었습니다.

braze.xml 파일에 올바른 FCM 발신자 ID가 포함되어 있는지 확인합니다. 발신자 ID가 잘못되면 대시보드의 메시지 활동 로그에 MismatchSenderID 오류가 보고됩니다.

브레이즈 등록이 발생하지 않음

FCM 등록은 Braze 외부에서 처리되므로 등록 실패는 두 경우에서만 발생할 수 있습니다.

  1. FCM에 등록하는 동안
  2. FCM에서 생성된 푸시 토큰을 Braze에 전달할 때

중단점을 설정하거나 로깅을 통해 FCM에서 생성된 푸시 토큰이 Braze로 전송되는지 확인하는 것이 좋습니다. 토큰이 올바르게 생성되지 않거나 전혀 생성되지 않는 경우 FCM 설명서를 참조하시기 바랍니다.

Google Play 서비스 없음

FCM 푸시가 작동하려면 기기에 Google Play 서비스가 있어야 합니다. 기기에 Google Play 서비스가 설치되어 있지 않은 경우 푸시 등록이 이루어지지 않습니다.

참고: Google API가 설치되지 않은 Android 에뮬레이터에는 Google Play 서비스가 설치되지 않습니다.

장치가 인터넷에 연결되지 않음

디바이스의 인터넷 연결 상태가 양호하고 프록시를 통해 네트워크 트래픽을 전송하고 있지 않은지 확인하세요.

푸시 알림을 탭해도 앱이 열리지 않습니다.

com_braze_handle_push_deep_links_automaticallytrue 또는 false 로 설정되어 있는지 확인합니다. 푸시 알림을 탭할 때 Braze가 앱과 딥링크를 자동으로 열도록 설정하려면 braze.xml에서 com_braze_handle_push_deep_links_automaticallytrue로 설정합니다.

com_braze_handle_push_deep_links_automatically가 기본값인 false로 설정된 경우, Braze 푸시 콜백을 사용하여 푸시 수신 및 열람 의도를 수신 대기하고 처리해야 합니다.

푸시 알림 반송

푸시 알림이 전달되지 않으면 개발자 콘솔에서 푸시 알림이 반송되지 않았는지 확인합니다. 다음은 개발자 콘솔에 기록될 수 있는 일반적인 오류에 대한 설명입니다:

오류: MismatchSenderID

MismatchSenderID 는 인증 실패를 나타냅니다. Firebase 발신자 ID와 FCM API 키가 올바른지 확인합니다.

오류: InvalidRegistration

InvalidRegistration은 잘못된 푸시 토큰으로 인해 발생할 수 있습니다.

  1. Firebase 클라우드 메시징에서 유효한 푸시 토큰을 Braze에 전달해야 합니다.

오류: 등록되지 않음

  1. NotRegistered는 일반적으로 기기에서 앱이 삭제되었을 때 발생합니다. Braze는 내부적으로 NotRegistered를 사용하여 기기에서 앱이 제거되었음을 알립니다.

  2. NotRegistered는 여러 번의 등록이 발생하고 두 번째 등록이 첫 번째 토큰을 무효화할 때도 발생할 수 있습니다.

푸시 알림이 전송되었지만 사용자의 디바이스에 표시되지 않음

이러한 문제가 발생하는 데에는 몇 가지 이유가 있습니다:

애플리케이션이 강제 종료되었습니다.

시스템 설정을 통해 애플리케이션을 강제 종료하면 푸시 알림이 전송되지 않습니다. 앱을 다시 실행하면 기기에서 푸시 알림을 다시 받을 수 있습니다.

BrazeFirebaseMessagingService 등록되지 않음

푸시 알림이 표시되려면 BrazeFirebaseMessagingService가 AndroidManifest.xml 에 올바르게 등록되어 있어야 합니다:

1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
  android:exported="false">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter>
</service>

방화벽이 푸시를 차단하고 있습니다.

Wi-Fi를 통해 푸시를 테스트하는 경우 방화벽이 FCM이 메시지를 수신하는 데 필요한 포트를 차단할 수 있습니다. 5228, 5229, 5230 포트가 열려 있는지 확인합니다. 또한 FCM은 IP를 지정하지 않으므로 방화벽이 Google의 ASN(15169)에 나열된 IP 블록에 포함된 모든 IP 주소로 나가는 연결을 수락하도록 허용해야 합니다.

커스텀 알림 팩토리에서 null 반환

사용자 지정 알림 팩토리를 구현한 경우 null 을 반환하지 않는지 확인하세요. 이렇게 하면 알림이 표시되지 않습니다.

메시지 전송 후 ‘푸시 등록’ 사용자가 더 이상 활성화되지 않음

이런 일이 발생하는 데에는 몇 가지 이유가 있습니다:

애플리케이션이 제거되었습니다.

사용자가 애플리케이션을 제거했습니다. 이렇게 하면 FCM 푸시 토큰이 무효화됩니다.

잘못된 파이어베이스 클라우드 메시징 서버 키

Braze 대시보드에 제공된 Firebase 클라우드 메시징 서버 키가 유효하지 않습니다. 제공된 발신자 ID는 앱의 braze.xml 파일에 참조된 발신자 ID와 일치해야 합니다. 서버 키와 발신자 ID는 Firebase 콘솔에서 찾을 수 있습니다.

'설정'과 '클라우드 메시징' 아래의 Firebase 플랫폼에 서버 ID와 서버 키가 표시됩니다.

푸시 클릭이 기록되지 않음

Braze 로그는 클릭을 자동으로 푸시하므로 이 시나리오는 비교적 드물게 발생합니다.

푸시 클릭이 기록되지 않는다면 푸시 클릭 데이터가 아직 서버로 플러시되지 않았을 가능성이 있습니다. Braze는 네트워크 연결 강도에 따라 플러시 빈도를 조절합니다. 네트워크 연결 상태가 양호하면 대부분의 경우 푸시 클릭 데이터는 1분 이내에 서버에 도달합니다.

딥 링크가 작동하지 않음

딥링크 구성 확인

딥 링크는 ADB로 테스트할 수 있습니다. 다음 명령어로 딥링크를 테스트하는 것이 좋습니다:

adb shell am start -W -a android.intent.action.VIEW -d "THE_DEEP_LINK" THE_PACKAGE_NAME

딥링크가 작동하지 않으면 딥링크가 잘못 구성된 것일 수 있습니다. 잘못 구성된 딥링크는 Braze 푸시를 통해 전송할 때 작동하지 않습니다.

사용자 지정 처리 로직 확인

딥링크가 ADB에서는 올바르게 작동하지만 Braze 푸시에서는 작동하지 않는 경우, 사용자 지정 푸시 오픈 처리가 구현되어 있는지 확인하세요. 그렇다면 커스텀 처리 코드가 수신 딥링크를 올바르게 처리하는지 확인합니다.

백 스택 동작 비활성화

딥링크가 ADB에서는 올바르게 작동하지만 Braze 푸시에서는 작동하지 않는 경우 백 스택을 비활성화해 보세요. 이렇게 하려면 braze.xml 파일을 업데이트합니다:

1
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">false</bool>

문제 해결

작업 전환기에서 앱을 닫은 후 푸시가 나타나지 않음

작업 전환기에서 앱을 닫은 후 푸시 알림이 더 이상 표시되지 않는다면 앱이 디버그 모드일 가능성이 높습니다. Xamarin은 디버그 모드에서 프로세스가 종료된 후 푸시를 수신하지 못하도록 하는 스캐폴딩을 추가합니다. 릴리스 모드에서 앱을 실행하는 경우 작업 전환기에서 앱을 닫은 후에도 푸시가 표시되어야 합니다.

사용자 지정 알림 팩토리가 올바르게 설정되지 않음

커스텀 알림 팩토리(및 모든 위임)는 C#과 Java 부분에서 제대로 작동하려면 Java.Lang.Object를 확장해야 합니다. 자세한 내용은 Java 인터페이스 구현의 Xamarin을 참조하세요.

이 페이지가 얼마나 도움이 되었나요?
New Stuff!