콘텐츠로 건너뛰기

자주 묻는 질문

이 문서에서는 인앱 메시지에 대해 자주 묻는 몇 가지 질문에 대한 답변을 제공합니다.

인브라우저 메시지란 무엇이며 인앱 메시지와 어떻게 다른가요?

인브라우저 메시지는 웹 브라우저로 발송되는 인앱 메시지입니다. 인브라우저 메시지를 만들려면 인앱 메시지 Campaign 또는 Canvas를 생성할 때 발송 대상 필드에서 웹 브라우저를 선택해야 합니다.

기기가 오프라인 상태일 때도 인앱 메시지가 표시되나요?

상황에 따라 다릅니다. 인앱 메시지는 세션 시작 시 전달되므로, 기기가 오프라인 상태가 되기 전에 페이로드를 다운로드했다면 오프라인 상태에서도 인앱 메시지를 표시할 수 있습니다. 페이로드를 다운로드하지 못했다면 인앱 메시지는 표시되지 않습니다.

사용자 기기에 이미 인앱 메시지 페이로드가 있는 상태에서 메시지 만료일이 변경되면, 기기의 만료일도 업데이트되나요?

사용자가 세션을 시작하면 Braze는 사용자가 수신 자격이 있는 인앱 메시지에 변경 사항이 있는지 확인하고 그에 맞게 업데이트합니다. 따라서 만료일이 변경된 후 사용자가 세션을 기록하면, 업데이트된 정보가 담긴 인앱 메시지가 기기로 전송됩니다.

인앱 메시지 Campaign에 방해금지 시간을 설정하려면 어떻게 해야 하나요?

방해금지 시간 기능은 인앱 메시지 Campaign에서 사용할 수 없습니다. 이 기능은 특정 시간대에 사용자에게 메시지가 발송되지 않도록 막는 데 사용됩니다. 인앱 메시지 Campaign의 경우, 사용자는 앱 내에서 활성 상태일 때만 인앱 메시지를 받습니다.

특정 시간대에만 인앱 메시지를 보내려면 다음 샘플 Liquid 코드를 해결 방법으로 사용하세요. 이 코드를 사용하면 지정한 시간대 기준으로 오후 7시 59분 이후 또는 오전 8시 이전에 인앱 메시지가 표시될 경우 메시지가 중단됩니다.

{% assign time = 'now' | time_zone: ${time_zone} %}{% assign hour = time | date: '%H' | plus: 0 %}
{% if hour > 19 or hour < 8 %}
{% abort_message("Outside allowed time window") %}
{% endif %}
MESSAGE HERE

사용자가 인앱 메시지를 닫은 후 다시 받을 수 있나요?

Campaigns

인앱 메시지 Campaign의 경우, 전달 제어에서 재자격을 켜면(사용자가 Campaign을 다시 받을 수 있는 자격을 갖도록 허용) 사용자가 Campaign을 다시 받을 수 있는 자격을 갖게 할 수 있습니다. 사용자가 메시지를 얼마나 빨리 다시 받을 수 있는지는 설정한 재자격 기간과 Braze가 이전 발송을 기록한 방식에 따라 달라집니다. 재자격이 메시지 수신과 어떤 관련이 있는지를 포함한 Campaign 동작에 대한 자세한 내용은 Campaign 및 Canvas의 재자격을 참조하세요.

재자격이 꺼져 있으면, 사용자는 일반적으로 해당 Campaign을 한 번 받은 후에는 자격 기준을 충족하더라도 같은 Campaign을 다시 받지 않습니다.

Canvases

Canvas에서 발송된 인앱 메시지의 경우, 사용자가 메시지를 다시 볼 수 있는지는 Campaign 전달 제어뿐만 아니라 Canvas 진입 제어(예: 사용자의 Canvas 재진입 허용)와 단계 구성에 따라 달라집니다.

인앱 메시지의 자격은 언제 계산되나요?

Campaigns

인앱 메시지 Campaign의 경우, Braze는 사용자의 기기가 인앱 메시지를 다운로드할 때 해당 사용자가 타겟 오디언스에 포함되는지 확인합니다. 이 과정은 보통 세션 시작 시 이루어집니다. 기기는 자격을 갖춘 메시지를 저장해 두었다가 각 메시지의 트리거가 발생하면 표시합니다. 트리거가 세션 후반에 발생하더라도 마찬가지입니다.

시작 시간이 미래로 설정된 Campaign의 경우, Braze는 시작 시간 최대 1시간 전에 세션을 시작한 기기에도 메시지를 보냅니다. 이렇게 하면 메시지를 제시간에 표시할 수 있습니다. 예를 들어 오전 6시 30분에 세션을 시작한 사용자는 오전 7시에 시작하는 Campaign을 수신합니다. Braze는 오전 6시 30분에 해당 사용자의 자격을 확인하고, 메시지는 오전 7시 이후 트리거가 발생할 때 표시됩니다.

세션 중 자격

세션 중에 자격을 갖추게 된 사용자는 다음 세션 시작 시 메시지를 받습니다.

메시지가 표시되기 직전에 자격을 다시 확인하려면 Re-evaluate campaign eligibility before displaying을 선택하세요. 사용자가 더 이상 자격을 충족하지 않으면 메시지가 표시되지 않습니다. 이 설정은 세션이 시작된 후에 자격을 갖춘 사용자에게는 메시지를 보내지 않습니다. 자세한 내용은 타겟팅할 사용자 선택을 참조하세요.

Canvases

Canvas의 인앱 메시지의 경우, Braze는 사용자가 단계에 도달할 때 해당 단계의 오디언스를 확인합니다. 그런 다음 사용자의 다음 세션 시작 시 메시지가 다운로드됩니다.

보관된 인앱 메시지 Campaign이 계속 인앱 메시지 노출 횟수를 기록하는 이유는 무엇인가요?

인앱 메시지 Campaign이 활성 상태일 때 Segment 기준을 충족했던 사용자에게 이런 현상이 발생할 수 있습니다.

이를 방지하려면 Campaign을 설정할 때 표시하기 전에 Campaign 자격 재평가를 선택하세요.

인앱 메시지의 열람이 표시되지 않는 이유는 무엇인가요?

인앱 메시지는 열람 측정기준을 사용하지 않습니다. Braze는 메시지가 화면에 표시될 때 노출 횟수를 기록하고, 사용자가 메시지 본문이나 버튼과 상호작용할 때 클릭을 기록합니다. 멀티채널 내보내기 또는 보고서에 인앱 메시지 행이 포함되어 있다면, 이메일 방식의 열람 대신 노출 횟수와 클릭을 비교하세요. 정의는 인앱 메시지 보고를 참조하세요.

같은 세션에서 여러 인앱 메시지가 표시될 수 있나요?

네. 다만 트리거 이벤트가 한 번 발생할 때마다 표시되는 인앱 메시지는 하나뿐입니다. 여러 인앱 메시지 Campaigns가 같은 트리거(예: 세션 시작)를 공유하면, 해당 트리거가 발생할 때마다 우선순위가 가장 높은 메시지만 표시됩니다. 세션 시작 트리거의 경우 세션당 메시지가 하나만 표시되며, 자격을 갖춘 다른 메시지는 다음 세션에서 표시될 수 있습니다.

여러 메시지의 우선순위 수준이 같으면 가장 최근에 생성된 메시지가 먼저 표시됩니다. 세션 시작 트리거의 경우 그다음으로 최근에 생성된 메시지는 이후 세션에서 표시됩니다. 다른 트리거 유형의 경우에는 해당 트리거 이벤트가 다음에 발생할 때 표시되며, 이는 같은 세션일 수도 있고 이후 세션일 수도 있습니다.

우선순위 버킷 내에서 표시 순서를 제어하려면 해당 Campaign 중 하나의 전달 설정으로 이동해 Set Exact Priority를 선택한 다음, 원하는 순서대로 Campaigns를 끌어다 놓으세요. 자세한 내용은 우선순위 선택을 참조하세요.

인앱 메시지 노출 횟수와 클릭은 어떻게 기록되나요?

사용자 동작에 따라 노출 횟수와 클릭이 기록되는 방식은 인앱 메시지 보고를 참조하세요. 기존 편집기로 만든 전체화면 메시지와 관련된 예시는 사용자 동작별 전체화면 메시지 측정기준을 참조하세요.

인앱 메시지 만료를 “1일 후”로 설정하면 Braze는 어떻게 계산하나요?

Braze는 1일 만료 시간을 사용자가 메시지를 받을 수 있게 된 시점부터 24시간 후로 계산합니다.

템플릿 인앱 메시지란 무엇인가요?

Re-evaluate campaign eligibility before displaying을 선택했거나 메시지에 다음 Liquid 태그가 하나라도 있으면 인앱 메시지는 템플릿 인앱 메시지로 전달됩니다:

  • canvas_entry_properties
  • connected_content
  • {sms.${*}}와 같은 단문 메시지 서비스 변수
  • catalog_items
  • catalog_selection_items
  • event_properties

Braze는 유휴 상태인 인앱 메시지 Campaigns(아직 활성 상태이지만 더 이상 발송되지 않거나 더 이상 필요하지 않은 Campaigns)에도 템플릿 전달 방식을 사용합니다. 이러한 Campaigns는 구성된 오디언스와 트리거 규칙을 계속 따릅니다.

Braze는 앱 성능을 보호하기 위해서도 템플릿 전달 방식을 사용할 수 있습니다. Liquid 콘텐츠를 준비하는 과정에서 세션 응답이 몇 초 이상 지연되면 Braze는 나머지 작업을 뒤로 미룹니다. 이러한 메시지는 트리거될 때 렌더링됩니다.

즉, 세션이 시작될 때 기기는 전체 메시지 대신 해당 인앱 메시지의 트리거를 받습니다. 사용자가 인앱 메시지를 트리거하면 사용자의 기기가 네트워크 요청을 보내 실제 메시지를 가져옵니다.

세션 시작 시 Braze가 처리하는 Liquid의 양을 줄이려면 인앱 메시지 성능 최적화를 참조하세요.

인앱 메시지의 중단 동작은 어떻게 작동하나요?

Braze에서 중단은 사용자가 메시지를 받을 자격을 갖추는 행동을 했지만, 메시지의 Liquid 로직이 해당 사용자를 부적격으로 표시해 메시지를 받지 못하는 경우를 말합니다. 예를 들면 다음과 같습니다.

  1. Sam이 이메일 Campaign(캠페인)을 트리거해야 하는 행동을 수행합니다.
  2. 이메일 본문에는 커스텀 속성 점수가 50 미만이면 이 이메일을 보내지 않는다는 Liquid 로직이 들어 있습니다.
  3. Sam의 커스텀 속성 점수는 20입니다.
  4. Braze는 Sam이 이 이메일을 받으면 안 된다는 것을 인식하고, 이메일이 중단됩니다.
  5. 중단 이벤트가 기록됩니다.

하지만 인앱 메시지는 풀(pull) 채널이기 때문에 중단 방식이 조금 다릅니다.

표준 인앱 메시지의 중단 동작

인앱 메시지는 세션 시작 시 기기가 가져와서 기기에 캐시하므로, 인터넷 연결 품질과 관계없이 사용자에게 즉시 전달될 수 있습니다. 예를 들어 사용자가 한 세션 내에서 인앱 메시지 5개를 받는다면, 세션 시작 시 5개를 모두 받습니다. 메시지는 로컬에 캐시되며, 정의된 트리거 이벤트(세션 시작, 사용자가 커스텀 이벤트를 기록하는 버튼을 클릭하는 경우 등)가 발생할 때 표시됩니다.

즉, 인앱 메시지를 중단할지 결정하는 로직은 트리거가 발생하기 전에 실행됩니다. 이를 설명하기 위해 이메일 예시의 Sam이 푸시 알림을 구독하고 있다고 가정해 보겠습니다.

  1. Sam이 휴대폰에서 Braze 기반 앱을 실행해 세션을 시작합니다.
  2. 워크스페이스에 있는 활성 Campaign의 오디언스 기준에 따르면 Sam은 서로 다른 Campaign 5개에 해당할 수 있습니다. 5개 모두 Sam의 휴대폰으로 전송되어 캐시됩니다.
  3. Sam은 이 메시지들을 트리거할 행동을 아직 수행하지 않았지만, 세션 중에 해당 메시지를 받을 수 있습니다.
  4. 인앱 메시지 중 2개의 Liquid에는 Sam이 메시지를 받지 못하도록 제외하는 규칙(예: 점수 커스텀 속성이 충분히 높지 않음)이 있습니다.
  5. Sam은 자신을 제외하는 인앱 메시지 2개는 받지 않고, 나머지 메시지 3개는 받습니다.
  6. 중단 이벤트는 기록되지 않습니다.

Sam의 경우 중단의 정의를 충족하지 않으므로 Braze는 중단 이벤트를 기록하지 않습니다. Sam은 메시지를 트리거할 행동을 수행하지 않았기 때문입니다. 인앱 메시지의 경우, Braze가 사용자에게 메시지를 표시하면 안 된다고 판단하기 전에 사용자가 실제로 트리거를 수행하는 일은 없습니다.

템플릿 인앱 메시지의 중단 동작

템플릿 인앱 메시지는 트리거 이벤트가 발생할 때 메시지를 표시해야 하는지 SDK가 다시 평가하도록 합니다. 그래서 중단 동작도 다릅니다. 다음 예시를 살펴보세요.

  1. Sam이 휴대폰에서 Braze 기반 앱을 실행해 Braze 세션을 시작합니다.
  2. 활성 Campaign의 오디언스 기준에 따르면 Sam은 템플릿 인앱 메시지를 받을 자격이 있을 수 있으므로, 메시지 페이로드 없이 트리거 정보만 Sam의 기기로 전송됩니다.
  3. Sam이 커스텀 이벤트를 기록하는 버튼을 선택해 템플릿 인앱 메시지를 트리거합니다.
  4. Sam의 기기가 인앱 메시지를 가져오기 위해 네트워크 요청을 보냅니다.
  5. 메시지의 Liquid 로직으로 인해 중단이 발생하므로 Braze는 이를 중단으로 기록합니다. Sam이 이 평가 이전에 트리거 동작을 수행했기 때문입니다.

인앱 메시지 중단 동작 비교

다음 표는 Sam이 경험한 인앱 메시지 흐름을 비교합니다.

인앱 메시지 중단 동작
표준 Sam이 메시지를 트리거할 행동을 수행하지 않았으므로 중단 이벤트가 기록되지 않았습니다.

중단의 정의는 “트리거 동작을 수행했음에도 메시지를 보지 못함”이므로 표준 인앱 메시지는 중단을 기록하지 않습니다. 인앱 메시지는 트리거 동작이 발생하기 전에 기기로 전달되므로, Liquid 로직 때문에 제외된 인앱 메시지를 중단으로 간주하는 것은 의미가 없습니다.
템플릿 Sam이 템플릿 인앱 메시지를 트리거하는 동작을 수행했지만 Liquid 템플릿에서 중단되었으므로 중단 이벤트가 기록되었습니다.

템플릿 인앱 메시지는 트리거 동작이 수행된 후에 Liquid 평가가 이루어지므로 중단을 기록합니다.

인앱 메시지에서 연결된 콘텐츠는 언제 실행되나요?

템플릿 인앱 메시지의 경우, 연결된 콘텐츠와 기타 Liquid 태그는 사용자가 메시지 안의 버튼을 클릭할 때가 아니라 트리거 이벤트가 발생하고 기기가 메시지 페이로드를 요청할 때 처리됩니다. 템플릿을 가져올 때마다 해당 표시에 대한 연결된 콘텐츠 호출이 포함될 수 있습니다.

HTML이 연결된 콘텐츠에서 반환된 REST 데이터를 참조하는 경우, 해당 데이터는 메시지가 템플릿으로 처리된 세션 동안 사용할 수 있습니다. 여러 버튼이 동일한 연결된 콘텐츠 응답을 참조해도 클릭 시 추가 호출이 발생하지 않습니다.

인앱 메시지 Campaign에서 트리거 후 최대 지연 시간은 얼마인가요?

인앱 메시지 Campaign은 트리거 이벤트 후 최대 2시간(7,200초)까지 전달을 지연할 수 있습니다. 지연 옵션은 즉시와 지연 후입니다. 더 오래 기다려야 한다면 Canvas에서 인앱 메시지 단계 앞에 지연 단계를 추가하세요. 지연 설정 방법은 실행 기반 전달을 참조하세요.

인앱 메시지가 표시되기 전에 지연이 생기는 이유는 무엇인가요?

표준 인앱 메시지는 트리거 이벤트 후 캐시된 페이로드가 준비되는 즉시 표시됩니다. Android와 iOS에서는 메시지에서 참조하는 대용량 이미지나 기타 CDN 호스팅 에셋의 다운로드가 끝날 때까지 인앱 메시지가 표시되기 전에 짧은 지연이 생길 수 있습니다.

템플릿 인앱 메시지와 표시 전에 캠페인 자격 재평가를 선택한 Campaign은 트리거 후 메시지가 표시되기 전에 추가 네트워크 요청이 필요합니다. 이로 인해 짧은 지연(안정적인 연결에서 일반적으로 100ms 미만)이 생길 수 있습니다. 자세한 내용은 타겟팅할 사용자 선택을 참조하세요.

인앱 메시지가 대시보드 미리보기와 다르게 보이는 이유는 무엇인가요?

전달된 인앱 메시지는 다음과 같은 경우 대시보드 미리보기와 다를 수 있습니다.

  • 통합에서 특정 플랫폼에 커스텀 스타일을 적용하거나 기본 인앱 메시지 UI를 재정의하는 경우
  • 미리보기에서 수신자와 다른 속성을 가진 테스트 사용자 프로필을 사용하는 경우
  • 템플릿 콘텐츠가 미리보기 모드와 발송 시점에 다르게 처리되는 경우

모양을 검증할 때는 타겟 오디언스와 프로필이 일치하는 테스트 사용자로 테스트 메시지 보내기를 사용하세요.

여러 페이지로 구성된 인앱 메시지가 모든 페이지에서 같은 배경을 사용하는 이유는 무엇인가요?

여러 페이지로 구성된 인앱 메시지의 한 페이지에서 배경 이미지를 활성화하면, 해당 배경이 메시지의 모든 페이지에 적용됩니다. 페이지마다 다른 배경을 사용하려면 JavaScript가 포함된 커스텀 HTML 블록을 사용해 페이지 간에 이미지를 전환하세요.

웹 인앱 메시지는 어떻게 테스트하나요?

웹 인앱 메시지 테스트 발송은 인앱 메시지가 표시되는 앱이나 사이트를 여는 푸시 알림을 통해 전달되므로, 테스트 기기에서 푸시가 활성화되어 있어야 합니다. 푸시가 Braze로 구성되지 않은 모든 플랫폼에도 동일한 푸시 기반 테스트 경로가 적용되지만, 많은 모바일 통합에는 이미 푸시가 활성화되어 있으므로 푸시 누락은 주로 웹에서 발생합니다. 대신 내부 테스트 세그먼트를 대상으로 실시간 Campaign을 사용하세요. 단계는 테스트 메시지 보내기를 참조하세요.

인앱 메시지에 푸시 통합이 필요한가요?

프로덕션 환경에서 인앱 메시지가 작동하는 데 푸시 알림은 필요하지 않습니다. 인앱 메시지는 Braze SDK를 통해 전달되며, 푸시 통합 없이도 활성 앱 세션 중에 표시됩니다.

하지만 인앱 메시지 테스트 발송에는 테스트 기기에서 푸시가 활성화되어 있어야 합니다. 테스트 인앱 메시지는 인앱 메시지 표시를 트리거하는 푸시 알림을 통해 전달되기 때문입니다. 테스트 사용자는 푸시를 활성화하고, 테스트 푸시 알림을 탭해야 인앱 메시지를 볼 수 있습니다.

프로덕션 Campaign에서는 푸시와 관계없이 Campaign 트리거(예: 세션 시작 또는 커스텀 이벤트)에 따라 사용자에게 인앱 메시지가 표시됩니다.

인앱 메시지에 불필요하거나 렌더링되지 않은 문자가 나타나는 이유는 무엇인가요?

다른 앱(예: 워드 프로세서나 웹페이지)에서 텍스트를 복사하면 메시지 본문에 보이지 않거나 인쇄되지 않는 문자가 삽입될 수 있습니다. 이러한 문자는 엉뚱한 기호로 표시되거나 커스텀 메시지의 Liquid와 HTML을 손상시킬 수 있습니다.

불필요하거나 렌더링되지 않은 문자를 수정하려면 Braze 편집기에서 해당 텍스트를 다시 입력하거나, 보이는 텍스트만 선택해 바꾸는 대신 원치 않는 문자를 직접 삭제하세요. 특수 문자가 포함된 커스텀 HTML 메시지의 경우 HTML <head> 안에 <meta charset="UTF-8">를 추가하세요. 자세한 내용은 문자 인코딩을 참조하세요.

Android에서 전체화면 HTML 인앱 메시지의 닫기 버튼이 숨겨지는 이유는 무엇인가요?

엣지 투 엣지 디스플레이를 사용하는 기기(Android 15 이상 포함)에서는 전체화면 HTML 인앱 메시지가 시스템 상태 표시줄 뒤에 그려져 레이아웃 상단의 닫기 컨트롤이 가려질 수 있습니다.

Braze Android SDK 버전 37.0.0 이상에서는 컨트롤이 안전 영역 안에 유지되도록 HTML 인앱 메시지에 기본적으로 창 인셋을 적용합니다. 그래도 사용자에게 겹침 현상이 나타난다면 최신 Braze Android SDK로 업그레이드하세요.

이전 SDK 버전에서는 이 동작이 기본값이 되기 전에 개발자가 BrazeConfig.setIsHtmlInAppMessageApplyWindowInsetsEnabled(true)를 활성화할 수 있었습니다.

드래그 앤 드롭 인앱 메시지를 커스텀할 때 알아두어야 할 사항은 무엇인가요?

드래그 앤 드롭 편집기는 Modal 및 전체화면 표시 유형을 지원합니다. 이러한 컨테이너 안에서 편집기 블록으로 콘텐츠를 구성합니다.

다음 사항을 기억하세요.

  • 링크 및 딥링크: 각 클릭 시 동작에는 기본적으로 URL 필드가 하나 있습니다. URL에 Liquid를 사용하면 기기, 앱 유형 또는 사용자 속성에 따라 링크를 다르게 설정할 수 있습니다. 메시지 컨테이너에서 플랫폼별 클릭 시 동작을 켜서 플랫폼마다 다른 링크를 설정할 수도 있습니다.
  • 불투명도 및 배경: 메시지 컨테이너의 불투명도는 메시지 배경 전체에 적용됩니다. 개별 블록에는 각각 배경색을 설정할 수 있습니다. 더 세밀하게 제어하려면 커스텀 코드 블록에 커스텀 CSS를 추가하세요.
  • 메시지 너비: 편집기에서는 메시지 컨테이너의 최대 너비를 325px 미만으로 설정할 수 없으며, 이를 통해 작은 화면에서도 콘텐츠를 읽기 쉽게 유지합니다. 더 좁은 레이아웃이 필요하면 커스텀 CSS를 사용하세요.
  • 플랫폼별 배경: 하나의 메시지는 웹과 모바일에서 동일한 배경 이미지와 색상을 사용합니다. 편집기에서는 플랫폼마다 다른 배경을 설정할 수 없습니다.
  • 여러 페이지로 구성된 메시지: 배경 이미지와 메시지 수준의 클릭 시 동작은 여러 페이지로 구성된 메시지의 모든 페이지에 적용됩니다. 페이지마다 다른 전체 이미지를 사용하려면 다음 페이지로 연결되는 버튼을 추가하세요.
  • 메시지 수준 스타일: 메시지 수준 스타일은 메시지 전체에 적용됩니다.
  • 배경 이미지: 배경 이미지는 Modal에 맞게 늘어납니다.

편집기 관련 고려 사항을 더 알아보려면 인앱 메시지 준비 가이드를 참조하세요.

Android SDK 로그의 “Event was published, but no subscribers were found”는 무슨 의미인가요?

이 로그는 대부분 오류가 아닙니다. Braze가 내부 이벤트(예: NoMatchingTriggerEvent)를 게시했지만, 그 시점에 이를 구독하는 인앱 메시지 또는 Content Cards 리스너가 없을 때 흔히 나타납니다.

커스텀 이벤트로 인앱 메시지가 트리거되어야 하는 상황에서 이 로그가 보인다면, 이벤트가 제대로 기록되는지, 사용자가 Campaign 또는 Canvas 오디언스에 포함되어 있는지 확인하세요. 메시지가 Content Cards에 의존한다면 Content Cards가 동기화되어 있는지도 확인하세요.

New Stuff!