인앱 메시지
인앱 메시지와 Braze SDK에서의 설정 방법에 대해 알아보세요.
필수 조건
이 기능을 사용하려면 먼저 Braze Web SDK를 통합해야 합니다. 그러나 추가 설정은 필요하지 않습니다.
메시지 유형
모든 인앱 메시지는 InAppMessage에서 프로토타입을 상속하며, 이 클래스는 모든 인앱 메시지의 기본 동작과 특성을 정의합니다. 프로토타입 서브클래스에는 SlideUpMessage, ModalMessage, FullScreenMessage, HtmlMessage가 있습니다.
각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 액션, 분석, 표시, 전달 전반에 걸쳐 커스텀할 수 있습니다.
SlideUp 인앱 메시지는 모바일 플랫폼에서 화면 상단이나 하단에서 “위로 슬라이드” 또는 “아래로 슬라이드”되는 방식에서 이름이 유래되었습니다. Braze 웹 SDK에서는 웹의 주요 패러다임에 맞춰 Growl 또는 Toast 스타일 알림으로 표시됩니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 적은 메시징 기능을 제공합니다.

Modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 클릭 액션 및 분석 지원 버튼을 포함할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 영향력을 극대화하는 데 유용합니다. 좁은 브라우저 창(예: 모바일 웹)에서 full 인앱 메시지는 전체 브라우저 창을 차지합니다. 더 큰 브라우저 창에서는 full 인앱 메시지가 modal 인앱 메시지와 유사하게 표시됩니다. full 인앱 메시지의 상단에는 이미지가 포함되고, 하단에는 최대 8줄의 텍스트와 최대 두 개의 클릭 액션 및 분석 지원 버튼을 포함할 수 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML이 iFrame에 표시되며 이미지, 폰트, 비디오, 인터랙티브 요소 등 풍부한 콘텐츠를 포함할 수 있어 메시지의 외관과 기능을 완전히 제어할 수 있습니다. 이 기능은 JavaScript brazeBridge 인터페이스를 지원하여 HTML 내에서 Braze 웹 SDK의 메서드를 호출할 수 있습니다. 자세한 내용은 모범 사례를 참조하세요.

웹 SDK를 통해 HTML 인앱 메시지를 활성화하려면 Braze에 allowUserSuppliedJavascript 초기화 옵션을 반드시 제공해야 합니다. 예를 들어 braze.initialize('YOUR-API_KEY', {allowUserSuppliedJavascript: true})와 같이 설정합니다. 이는 보안상의 이유입니다. HTML 인앱 메시지는 JavaScript를 실행할 수 있으므로 사이트 관리자가 이를 활성화해야 합니다.
다음 예시는 페이지네이션된 HTML 인앱 메시지를 보여줍니다:

필수 조건
이 기능을 사용하려면 먼저 Android Braze SDK를 통합해야 합니다. 인앱 메시지를 활성화해야 합니다.
메시지 유형
Braze는 여러 가지 기본 인앱 메시지 유형을 제공하며, 메시지, 이미지, Font Awesome 아이콘, 클릭 액션, 분석, 색상 구성표 등으로 각각 커스터마이즈할 수 있습니다.
기본 동작과 특성은 IInAppMessage 인터페이스에 의해 정의되며, InAppMessageBase라는 하위 클래스에 있습니다. IInAppMessage에는 닫기, 클릭 액션 및 분석 버튼을 앱에 추가할 수 있는 하위 인터페이스 IInAppMessageImmersive도 포함되어 있습니다.

버튼이 포함된 인앱 메시지는 버튼 텍스트를 추가하기 전에 클릭 액션이 추가된 경우 최종 페이로드에 clickAction 메시지를 포함한다는 점을 유의하세요.
slideup 인앱 메시지는 화면 상단 또는 하단에서 ‘슬라이드 업’ 또는 ‘슬라이드 다운’되기 때문에 이러한 이름이 붙었습니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 되지 않는 메시징 기능을 제공합니다.
slideup 인앱 메시지 오브젝트는 InAppMessageBase를 확장합니다.

modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 두 개의 클릭 액션 및 분석 지원 버튼을 제공할 수 있습니다.
이 메시지 유형은 InAppMessageImmersiveBase의 하위 클래스이며, IInAppMessageImmersive를 구현하는 추상 클래스입니다. 이를 통해 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 2개의 클릭 액션 및 분석 지원 버튼이 표시됩니다.
이 메시지 유형은 InAppMessageImmersiveBase를 확장하여 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

HTML 인앱 메시지는 완전히 커스터마이즈된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 인앱 메시지 콘텐츠는 WebView에 표시되며, 이미지 및 글꼴과 같은 리치 콘텐츠를 선택적으로 포함할 수 있어 메시지의 외관과 기능을 완벽하게 제어할 수 있습니다.
이 메시지 유형은 IInAppMessageHtml을 구현하며, 이는 IInAppMessage의 하위 클래스입니다.

Android에서는 커스텀 HTML 인앱 메시지에서 target="_blank"로 구성된 링크가 기기의 기본 웹 브라우저에서 열립니다.
Android 인앱 메시지는 HTML 내에서 Braze Android SDK의 메서드를 호출하기 위한 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 JavaScript bridge 페이지를 참조하세요.


현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.

인앱 메시지 활성화
1단계: BrazeInAppMessageManager 등록하기
인앱 메시지 표시는 BrazeInAppMessageManager 클래스에 의해 관리됩니다. 앱의 모든 활동을 BrazeInAppMessageManager에 등록해야 인앱 메시지 보기를 보기 계층 구조에 추가할 수 있습니다. 이를 달성하는 방법에는 두 가지가 있습니다:
활동 수명 주기 콜백 통합은 인앱 메시지 등록을 자동으로 처리하므로 추가 통합이 필요하지 않습니다. 이것은 인앱 메시지 등록을 처리하는 권장 방법입니다.

자동 등록을 위한 활동 생명주기 콜백을 사용하는 경우, 이 단계를 완료하지 마십시오.
당신의 Application.onCreate()에서 ensureSubscribedToInAppMessageEvents()을 호출하십시오:
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context);
BrazeInAppMessageManager.getInstance().ensureSubscribedToInAppMessageEvents(context)
인앱 메시지를 표시할 수 있는 모든 활동에서 해당 활동의 onResume()에서 registerInAppMessageManager()을 호출하십시오:
@Override
public void onResume() {
super.onResume();
// Registers the BrazeInAppMessageManager for the current Activity. This Activity will now listen for
// in-app messages from Braze.
BrazeInAppMessageManager.getInstance().registerInAppMessageManager(activity);
}
public override fun onResume() {
super.onResume()
// Registers the BrazeInAppMessageManager for the current Activity. This Activity will now listen for
// in-app messages from Braze.
BrazeInAppMessageManager.getInstance().registerInAppMessageManager(this)
}
registerInAppMessageManager()이 호출된 모든 활동에서 해당 활동의 onPause()에서 unregisterInAppMessageManager()을 호출하십시오:
@Override
public void onPause() {
super.onPause();
// Unregisters the BrazeInAppMessageManager for the current Activity.
BrazeInAppMessageManager.getInstance().unregisterInAppMessageManager(activity);
}
public override fun onPause() {
super.onPause()
// Unregisters the BrazeInAppMessageManager.
BrazeInAppMessageManager.getInstance().unregisterInAppMessageManager(this)
}
2단계: 매니저의 블록리스트를 업데이트하십시오 (선택 사항)
통합 시 앱의 특정 활동이 인앱 메시지를 표시하지 않도록 요구할 수 있습니다. 활동 수명 주기 콜백 통합은 이를 쉽게 수행할 수 있는 방법을 제공합니다.
다음 샘플 코드에서는 인앱 메시지 등록 차단 목록에 두 가지 활동(SplashActivity 및 SettingsActivity)을 추가합니다.
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Set<Class> inAppMessageBlocklist = new HashSet<>();
inAppMessageBlocklist.add(SplashActivity.class);
inAppMessageBlocklist.add(SettingsActivity.class);
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist));
}
}
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val inAppMessageBlocklist = HashSet<Class<*>>()
inAppMessageBlocklist.add(SplashActivity::class.java)
inAppMessageBlocklist.add(SettingsActivity::class.java)
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener(inAppMessageBlocklist))
}
}
필수 조건
이 기능을 사용하려면 먼저 Swift Braze SDK를 통합해야 합니다. 또한 인앱 메시지를 인에이블먼트해야 합니다.
메시지 유형
각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 동작, 분석, 표시 및 전달 전반에 걸쳐 고도로 커스텀할 수 있습니다. 이들은 모든 인앱 메시지의 기본 동작과 특성을 정의하는 Braze.InAppMessage의 열거형 유형입니다. 인앱 메시지 속성 및 사용법의 전체 목록은 InAppMessage 클래스를 참조하세요.
다음은 Braze에서 사용할 수 있는 인앱 메시지 유형과 최종 사용자에게 표시되는 방식입니다.
Modal 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Modal Image 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 이 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Modal 유형과 유사합니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 두 개의 분석 지원 버튼이 표시됩니다.

Full Image 인앱 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Full 인앱 메시지와 유사합니다. 이 메시지 유형은 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full Image 인앱 메시지에는 전체 화면에 걸친 이미지와 함께 최대 두 개의 분석 지원 버튼을 표시하는 옵션이 포함되어 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 전체 인앱 메시지 콘텐츠는 WKWebView에 표시되며, 선택적으로 이미지 및 글꼴과 같은 다양한 리치 콘텐츠를 포함할 수 있으므로 메시지 모양과 기능을 완벽하게 제어할 수 있습니다.
iOS 인앱 메시지는 HTML 내에서 Braze 웹 SDK의 메서드를 호출하기 위해 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 모범 사례를 참조하세요.
다음 예시는 페이지가 지정된 HTML 전체 인앱 메시지를 보여줍니다:

현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.
Control 인앱 메시지에는 UI 구성 요소가 포함되어 있지 않으며 주로 분석 목적으로 사용됩니다. 이 유형은 대조군에 전송된 인앱 메시지의 수신을 확인하는 데 사용됩니다.
자동 배리언트 최적화 및 대조군에 대한 자세한 내용은 BrazeAITM로 최적화하기를 참조하세요.
인앱 메시지 활성화
1단계: 의 구현을 만듭니다. BrazeInAppMessagePresenter
Braze가 인앱 메시지를 표시하도록 하려면 BrazeInAppMessagePresenter 프로토콜의 구현을 생성하고 이를 Braze 인스턴스의 선택적 inAppMessagePresenter 에 할당하세요. BrazeInAppMessageUI 오브젝트를 인스턴스화하여 기본 Braze UI 프리젠터를 사용할 수도 있습니다.
BrazeInAppMessageUI 클래스에 액세스하려면 BrazeUI 라이브러리를 가져와야 합니다.
AppDelegate.braze?.inAppMessagePresenter = BrazeInAppMessageUI()
AppDelegate.braze.inAppMessagePresenter = [[BrazeInAppMessageUI alloc] init];
2단계: 일치하는 트리거 처리 안 함
구현 BrazeDelegate.(_:noMatchingTriggerForEvent) 를 관련 BrazeDelegate 클래스 내에서 구현합니다. 특정 이벤트에 대해 일치하는 트리거를 찾지 못하면 Braze는 이 메서드를 자동으로 호출합니다.
필수 조건
이 기능을 사용하려면 먼저 Android Braze SDK를 통합해야 합니다.
TV 및 OTT 지원 정보
Android Braze 소프트웨어 개발 키트는 기본적으로 Android TV 또는 Fire Stick과 같은 OTT 기기에서 인앱 메시지 표시를 지원합니다. 그러나 네이티브 Android와 OTT 인앱 메시지에는 몇 가지 주요 차이점이 있습니다. OTT 디바이스용:
- 슬라이드업과 같이 터치 모드가 필요한 인앱 메시지는 OTT에서 비활성화됩니다.
- 버튼이나 닫기 버튼과 같이 현재 선택되어 있거나 초점이 맞춰진 항목이 강조 표시됩니다.
- 버튼이 아닌 인앱 메시지 자체에서 본문 클릭은 지원되지 않습니다.
필수 조건
이 기능을 사용하려면 먼저 Cordova Braze SDK를 통합해야 합니다.
메시지 유형
Braze는 여러 가지 기본 인앱 메시지 유형을 제공하며, 메시지, 이미지, Font Awesome 아이콘, 클릭 액션, 분석, 색상 구성표 등으로 각각 커스터마이즈할 수 있습니다.
기본 동작과 특성은 IInAppMessage 인터페이스에 의해 정의되며, InAppMessageBase라는 하위 클래스에 있습니다. IInAppMessage에는 닫기, 클릭 액션 및 분석 버튼을 앱에 추가할 수 있는 하위 인터페이스 IInAppMessageImmersive도 포함되어 있습니다.

버튼이 포함된 인앱 메시지는 버튼 텍스트를 추가하기 전에 클릭 액션이 추가된 경우 최종 페이로드에 clickAction 메시지를 포함한다는 점을 유의하세요.
slideup 인앱 메시지는 화면 상단 또는 하단에서 ‘슬라이드 업’ 또는 ‘슬라이드 다운’되기 때문에 이러한 이름이 붙었습니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 되지 않는 메시징 기능을 제공합니다.
slideup 인앱 메시지 오브젝트는 InAppMessageBase를 확장합니다.

modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 두 개의 클릭 액션 및 분석 지원 버튼을 제공할 수 있습니다.
이 메시지 유형은 InAppMessageImmersiveBase의 하위 클래스이며, IInAppMessageImmersive를 구현하는 추상 클래스입니다. 이를 통해 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 2개의 클릭 액션 및 분석 지원 버튼이 표시됩니다.
이 메시지 유형은 InAppMessageImmersiveBase를 확장하여 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

HTML 인앱 메시지는 완전히 커스터마이즈된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 인앱 메시지 콘텐츠는 WebView에 표시되며, 이미지 및 글꼴과 같은 리치 콘텐츠를 선택적으로 포함할 수 있어 메시지의 외관과 기능을 완벽하게 제어할 수 있습니다.
이 메시지 유형은 IInAppMessageHtml을 구현하며, 이는 IInAppMessage의 하위 클래스입니다.

Android에서는 커스텀 HTML 인앱 메시지에서 target="_blank"로 구성된 링크가 기기의 기본 웹 브라우저에서 열립니다.
Android 인앱 메시지는 HTML 내에서 Braze Android SDK의 메서드를 호출하기 위한 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 JavaScript bridge 페이지를 참조하세요.


현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.

각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 동작, 분석, 표시 및 전달 전반에 걸쳐 고도로 커스텀할 수 있습니다. 이들은 모든 인앱 메시지의 기본 동작과 특성을 정의하는 Braze.InAppMessage의 열거형 유형입니다. 인앱 메시지 속성 및 사용법의 전체 목록은 InAppMessage 클래스를 참조하세요.
다음은 Braze에서 사용할 수 있는 인앱 메시지 유형과 최종 사용자에게 표시되는 방식입니다.
Modal 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Modal Image 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 이 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Modal 유형과 유사합니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 두 개의 분석 지원 버튼이 표시됩니다.

Full Image 인앱 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Full 인앱 메시지와 유사합니다. 이 메시지 유형은 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full Image 인앱 메시지에는 전체 화면에 걸친 이미지와 함께 최대 두 개의 분석 지원 버튼을 표시하는 옵션이 포함되어 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 전체 인앱 메시지 콘텐츠는 WKWebView에 표시되며, 선택적으로 이미지 및 글꼴과 같은 다양한 리치 콘텐츠를 포함할 수 있으므로 메시지 모양과 기능을 완벽하게 제어할 수 있습니다.
iOS 인앱 메시지는 HTML 내에서 Braze 웹 SDK의 메서드를 호출하기 위해 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 모범 사례를 참조하세요.
다음 예시는 페이지가 지정된 HTML 전체 인앱 메시지를 보여줍니다:

현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.
Control 인앱 메시지에는 UI 구성 요소가 포함되어 있지 않으며 주로 분석 목적으로 사용됩니다. 이 유형은 대조군에 전송된 인앱 메시지의 수신을 확인하는 데 사용됩니다.
자동 배리언트 최적화 및 대조군에 대한 자세한 내용은 BrazeAITM로 최적화하기를 참조하세요.
사전 준비 사항
이 기능을 사용하려면 먼저 Flutter Braze SDK를 통합해야 합니다.
메시지 유형
Braze는 여러 가지 기본 인앱 메시지 유형을 제공하며, 메시지, 이미지, Font Awesome 아이콘, 클릭 액션, 분석, 색상 구성표 등으로 각각 커스터마이즈할 수 있습니다.
기본 동작과 특성은 IInAppMessage 인터페이스에 의해 정의되며, InAppMessageBase라는 하위 클래스에 있습니다. IInAppMessage에는 닫기, 클릭 액션 및 분석 버튼을 앱에 추가할 수 있는 하위 인터페이스 IInAppMessageImmersive도 포함되어 있습니다.

버튼이 포함된 인앱 메시지는 버튼 텍스트를 추가하기 전에 클릭 액션이 추가된 경우 최종 페이로드에 clickAction 메시지를 포함한다는 점을 유의하세요.
slideup 인앱 메시지는 화면 상단 또는 하단에서 ‘슬라이드 업’ 또는 ‘슬라이드 다운’되기 때문에 이러한 이름이 붙었습니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 되지 않는 메시징 기능을 제공합니다.
slideup 인앱 메시지 오브젝트는 InAppMessageBase를 확장합니다.

modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 두 개의 클릭 액션 및 분석 지원 버튼을 제공할 수 있습니다.
이 메시지 유형은 InAppMessageImmersiveBase의 하위 클래스이며, IInAppMessageImmersive를 구현하는 추상 클래스입니다. 이를 통해 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 2개의 클릭 액션 및 분석 지원 버튼이 표시됩니다.
이 메시지 유형은 InAppMessageImmersiveBase를 확장하여 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

HTML 인앱 메시지는 완전히 커스터마이즈된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 인앱 메시지 콘텐츠는 WebView에 표시되며, 이미지 및 글꼴과 같은 리치 콘텐츠를 선택적으로 포함할 수 있어 메시지의 외관과 기능을 완벽하게 제어할 수 있습니다.
이 메시지 유형은 IInAppMessageHtml을 구현하며, 이는 IInAppMessage의 하위 클래스입니다.

Android에서는 커스텀 HTML 인앱 메시지에서 target="_blank"로 구성된 링크가 기기의 기본 웹 브라우저에서 열립니다.
Android 인앱 메시지는 HTML 내에서 Braze Android SDK의 메서드를 호출하기 위한 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 JavaScript bridge 페이지를 참조하세요.


현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.

각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 동작, 분석, 표시 및 전달 전반에 걸쳐 고도로 커스텀할 수 있습니다. 이들은 모든 인앱 메시지의 기본 동작과 특성을 정의하는 Braze.InAppMessage의 열거형 유형입니다. 인앱 메시지 속성 및 사용법의 전체 목록은 InAppMessage 클래스를 참조하세요.
다음은 Braze에서 사용할 수 있는 인앱 메시지 유형과 최종 사용자에게 표시되는 방식입니다.
Modal 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Modal Image 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 이 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Modal 유형과 유사합니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 두 개의 분석 지원 버튼이 표시됩니다.

Full Image 인앱 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Full 인앱 메시지와 유사합니다. 이 메시지 유형은 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full Image 인앱 메시지에는 전체 화면에 걸친 이미지와 함께 최대 두 개의 분석 지원 버튼을 표시하는 옵션이 포함되어 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 전체 인앱 메시지 콘텐츠는 WKWebView에 표시되며, 선택적으로 이미지 및 글꼴과 같은 다양한 리치 콘텐츠를 포함할 수 있으므로 메시지 모양과 기능을 완벽하게 제어할 수 있습니다.
iOS 인앱 메시지는 HTML 내에서 Braze 웹 SDK의 메서드를 호출하기 위해 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 모범 사례를 참조하세요.
다음 예시는 페이지가 지정된 HTML 전체 인앱 메시지를 보여줍니다:

현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.
Control 인앱 메시지에는 UI 구성 요소가 포함되어 있지 않으며 주로 분석 목적으로 사용됩니다. 이 유형은 대조군에 전송된 인앱 메시지의 수신을 확인하는 데 사용됩니다.
자동 배리언트 최적화 및 대조군에 대한 자세한 내용은 BrazeAITM로 최적화하기를 참조하세요.
인앱 메시지 활성화
Braze Flutter SDK는 Android와 iOS 모두에서 기본 인앱 메시지 프레젠터를 자동으로 설정합니다. 인앱 메시지는 추가 설정 없이 표시되고 Dart 레이어로 전달됩니다.
iOS에서 인앱 메시지 프레젠터 커스터마이징하기
iOS에서 기본 인앱 메시지 프레젠터를 재정의하려면 BrazePlugin.configure(_:postInitialization:)의 postInitialization 클로저를 사용하세요. 커스텀 프레젠터는 인앱 메시지 데이터를 Dart 레이어로 전달하기 위해 BrazePlugin.processInAppMessage(message)를 호출해야 합니다.
import BrazeUI
BrazePlugin.configure(
{ configuration in
// Set non-API-key configurations here.
},
postInitialization: { braze in
let customPresenter = CustomInAppMessagePresenter()
braze.inAppMessagePresenter = customPresenter
}
)
커스텀 프레젠터 클래스에서 BrazePlugin.processInAppMessage(message)와 super.present(message: message)를 호출하여 데이터를 Dart로 전달하고 기본 UI를 표시합니다.
class CustomInAppMessagePresenter: BrazeInAppMessageUI {
override func present(message: Braze.InAppMessage) {
BrazePlugin.processInAppMessage(message)
super.present(message: message)
}
}

이 단계는 iOS 전용입니다. 인앱 메시지의 기본 구현은 이미 Android에 설정되어 있습니다.
iOS에서 인앱 메시지의 기본 프레젠터를 설정하려면 BrazeInAppMessagePresenter 프로토콜의 구현체를 생성하고 Braze 인스턴스의 선택 사항인 inAppMessagePresenter 속성에 할당하세요. BrazeInAppMessageUI 오브젝트를 인스턴스화하여 기본 Braze UI 프레젠터를 사용할 수도 있습니다.
BrazeInAppMessageUI 클래스에 접근하려면 BrazeUI 라이브러리를 반드시 가져와야 합니다.
import BrazeUI
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
...
let braze = BrazePlugin.initBraze(configuration)
braze.inAppMessagePresenter = BrazeInAppMessageUI()
AppDelegate.braze = braze
return true
}
@import BrazeUI;
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
Braze *braze = [BrazePlugin initBraze:configuration];
braze.inAppMessagePresenter = [[BrazeInAppMessageUI alloc] init];
AppDelegate.braze = braze;
[self.window makeKeyAndVisible];
return YES;
}
인앱 메시지 데이터에 접근하는 방법에 대한 자세한 내용은 인앱 메시지 데이터 로깅을 참조하세요.
필수 조건
이 기능을 사용하려면 먼저 React Native Braze SDK를 통합해야 합니다.
메시지 유형
Braze는 여러 가지 기본 인앱 메시지 유형을 제공하며, 메시지, 이미지, Font Awesome 아이콘, 클릭 액션, 분석, 색상 구성표 등으로 각각 커스터마이즈할 수 있습니다.
기본 동작과 특성은 IInAppMessage 인터페이스에 의해 정의되며, InAppMessageBase라는 하위 클래스에 있습니다. IInAppMessage에는 닫기, 클릭 액션 및 분석 버튼을 앱에 추가할 수 있는 하위 인터페이스 IInAppMessageImmersive도 포함되어 있습니다.

버튼이 포함된 인앱 메시지는 버튼 텍스트를 추가하기 전에 클릭 액션이 추가된 경우 최종 페이로드에 clickAction 메시지를 포함한다는 점을 유의하세요.
slideup 인앱 메시지는 화면 상단 또는 하단에서 ‘슬라이드 업’ 또는 ‘슬라이드 다운’되기 때문에 이러한 이름이 붙었습니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 되지 않는 메시징 기능을 제공합니다.
slideup 인앱 메시지 오브젝트는 InAppMessageBase를 확장합니다.

modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 두 개의 클릭 액션 및 분석 지원 버튼을 제공할 수 있습니다.
이 메시지 유형은 InAppMessageImmersiveBase의 하위 클래스이며, IInAppMessageImmersive를 구현하는 추상 클래스입니다. 이를 통해 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 2개의 클릭 액션 및 분석 지원 버튼이 표시됩니다.
이 메시지 유형은 InAppMessageImmersiveBase를 확장하여 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

HTML 인앱 메시지는 완전히 커스터마이즈된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 인앱 메시지 콘텐츠는 WebView에 표시되며, 이미지 및 글꼴과 같은 리치 콘텐츠를 선택적으로 포함할 수 있어 메시지의 외관과 기능을 완벽하게 제어할 수 있습니다.
이 메시지 유형은 IInAppMessageHtml을 구현하며, 이는 IInAppMessage의 하위 클래스입니다.

Android에서는 커스텀 HTML 인앱 메시지에서 target="_blank"로 구성된 링크가 기기의 기본 웹 브라우저에서 열립니다.
Android 인앱 메시지는 HTML 내에서 Braze Android SDK의 메서드를 호출하기 위한 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 JavaScript bridge 페이지를 참조하세요.


현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.

각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 동작, 분석, 표시 및 전달 전반에 걸쳐 고도로 커스텀할 수 있습니다. 이들은 모든 인앱 메시지의 기본 동작과 특성을 정의하는 Braze.InAppMessage의 열거형 유형입니다. 인앱 메시지 속성 및 사용법의 전체 목록은 InAppMessage 클래스를 참조하세요.
다음은 Braze에서 사용할 수 있는 인앱 메시지 유형과 최종 사용자에게 표시되는 방식입니다.
Modal 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Modal Image 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 이 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Modal 유형과 유사합니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 두 개의 분석 지원 버튼이 표시됩니다.

Full Image 인앱 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Full 인앱 메시지와 유사합니다. 이 메시지 유형은 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full Image 인앱 메시지에는 전체 화면에 걸친 이미지와 함께 최대 두 개의 분석 지원 버튼을 표시하는 옵션이 포함되어 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 전체 인앱 메시지 콘텐츠는 WKWebView에 표시되며, 선택적으로 이미지 및 글꼴과 같은 다양한 리치 콘텐츠를 포함할 수 있으므로 메시지 모양과 기능을 완벽하게 제어할 수 있습니다.
iOS 인앱 메시지는 HTML 내에서 Braze 웹 SDK의 메서드를 호출하기 위해 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 모범 사례를 참조하세요.
다음 예시는 페이지가 지정된 HTML 전체 인앱 메시지를 보여줍니다:

현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.
Control 인앱 메시지에는 UI 구성 요소가 포함되어 있지 않으며 주로 분석 목적으로 사용됩니다. 이 유형은 대조군에 전송된 인앱 메시지의 수신을 확인하는 데 사용됩니다.
자동 배리언트 최적화 및 대조군에 대한 자세한 내용은 BrazeAITM로 최적화하기를 참조하세요.
데이터 모델
인앱 메시지 모델은 React Native SDK에서 사용할 수 있습니다. Braze에는 동일한 데이터 모델을 공유하는 네 가지 인앱 메시지 유형(슬라이드업, 모달, 전체 및 HTML 전체)이 있습니다.
메시지
인앱 메시지 모델은 모든 인앱 메시지의 기본을 제공합니다.
| 등록정보 | 설명 |
|---|---|
inAppMessageJsonString |
메시지 JSON 표현입니다. |
message |
메시지 텍스트입니다. |
header |
메시지 헤더입니다. |
uri |
버튼 클릭 동작과 연결된 URI입니다. |
imageUrl |
메시지 이미지 URL입니다. |
zippedAssetsUrl |
HTML 콘텐츠를 표시하도록 준비된 압축된 자산입니다. |
useWebView |
버튼 클릭 동작이 웹 뷰를 사용하여 리디렉션할지 여부를 나타냅니다. |
duration |
메시지 표시 기간입니다. |
clickAction |
버튼 클릭 동작 유형입니다. 유형은 URI 및 NONE입니다. |
dismissType |
메시지 닫기 유형입니다. 두 가지 유형은 SWIPE 및 AUTO_DISMISS입니다. |
messageType |
SDK에서 지원하는 인앱 메시지 유형입니다. 네 가지 유형은 SLIDEUP, MODAL, FULL 및 HTML_FULL입니다. |
extras |
메시지 extras 사전입니다. 기본값: [:]. |
buttons |
인앱 메시지의 버튼 목록입니다. |
toString() |
문자열 표현으로서의 메시지입니다. |
인앱 메시지 모델에 대한 전체 참조는 Android 및 iOS 설명서를 참조하세요.
버튼
인앱 메시지에 버튼을 추가하여 동작을 수행하고 분석을 기록할 수 있습니다. 버튼 모델은 모든 인앱 메시지 버튼의 기본을 제공합니다.
| 등록정보 | 설명 |
|---|---|
text |
버튼의 텍스트입니다. |
uri |
버튼 클릭 동작과 연결된 URI입니다. |
useWebView |
버튼 클릭 동작이 웹 뷰를 사용하여 리디렉션할지 여부를 나타냅니다. |
clickAction |
사용자가 버튼을 클릭할 때 처리되는 클릭 동작 유형입니다. 유형은 URI 및 NONE입니다. |
id |
메시지의 버튼 ID입니다. |
toString() |
문자열 표현으로서의 버튼입니다. |
필수 조건
이 기능을 사용하려면 먼저 Roku Braze SDK를 통합해야 합니다. 또한 인앱 메시지는 지원되는 최소 SDK 버전을 실행하는 Roku 기기로만 전송됩니다:
메시지 유형
Roku SDK는 Modal 인앱 메시지만 지원합니다.
표시 방법 선택하기
Roku SDK 2.3.0 이상에서는 SDK가 인앱 메시지를 대신 표시할 수 있습니다. 자체 UI로 계속 렌더링할 수도 있습니다.
| 방법 | 설명 |
|---|---|
| 기본 UI | SDK가 Modal 인앱 메시지를 표시하고 노출 횟수와 클릭을 기록합니다. 이 옵션은 기본적으로 꺼져 있습니다. |
| 커스텀 UI | 앱이 BrazeTask.BrazeInAppMessage를 관찰하여 메시지를 렌더링하고 노출 횟수와 클릭을 기록합니다. 이전 SDK 버전에서는 인앱 메시지가 이 방식으로 작동합니다. |
| 커스텀 재정의가 포함된 기본 UI | SDK가 Modal 인앱 메시지를 표시하고, Scene이 특정 메시지를 자체 UI로 렌더링합니다. |
업그레이드하는 중이고 이미 커스텀 UI를 사용하고 있다면 Roku SDK 2.3.0으로 업그레이드하기를 참조하세요. 기본 UI를 켜지 않는 한 커스텀 UI는 계속 작동합니다.
기본 UI 사용

기본 UI를 사용하려면 Roku SDK 2.3.0 이상이 필요합니다.
1단계: 기본 UI 파일 추가
Braze Roku SDK 리포지토리의 sdk_files/components 디렉토리에서 다음 파일을 앱의 components 디렉토리에 추가합니다.
BrazeDefaultInAppMessage.brsBrazeDefaultInAppMessage.xmlBrazeDefaultInAppMessageStyles.brs
이 파일이 누락되면 SDK가 BrazeDefaultInAppMessage component not found 로그를 남기고 메시지를 표시하지 않습니다.
2단계: 기본 UI 켜기
main.brs에서 Braze 구성의 automatic_iam_display를 true로 설정합니다.
config[config_fields.AUTOMATIC_IAM_DISPLAY] = true
globalNode.addFields({brazeConfig: config})
3단계: Scene에서 Braze 초기화
Scene 컴포넌트에서 getBrazeInstance()를 호출합니다. 예를 들어 init()에서 호출할 수 있습니다.
sub init()
m.BrazeTask = CreateObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
end sub

다른 컴포넌트에서 getBrazeInstance()를 호출하면 SDK가 오버레이를 Scene에 연결할 수 없어 메시지가 손실됩니다.
기본 메시지를 사용할 때는 BrazeTask.BrazeInAppMessage를 관찰하거나 별도의 UI를 만들 필요가 없습니다.
기본 UI 작동 방식
지원되는 메시지
기본 UI는 MODAL 인앱 메시지만 표시합니다. SDK는 다른 유형의 메시지를 삭제하고 오류를 기록합니다.
기본 UI는 다음 필드를 사용하며, 그 외 필드는 무시합니다.
| 필드 | 기본 UI에서의 사용 방식 |
|---|---|
image_url |
메시지 상단의 이미지입니다. |
header |
헤더 텍스트입니다. |
message |
본문 텍스트입니다. |
text_align |
헤더와 본문의 정렬 방식입니다: "START", "CENTER" 또는 "END". |
bg_color |
메시지 배경 색상입니다. |
frame_color |
메시지 뒤에 표시되는 전체화면 오버레이의 색상입니다. |
header_text_color |
헤더 텍스트 색상입니다. |
message_text_color |
본문 텍스트 색상입니다. |
close_button_color |
× 닫기 버튼의 색상입니다. |
buttons |
최대 두 개의 버튼입니다. 각 버튼은 text, bg_color, text_color를 사용합니다. |
표시 및 닫기
각 Modal 메시지에 대해 SDK는 다음 작업을 수행합니다.
display_delay가 설정된 경우 해당 시간(초)만큼 기다립니다.- 전체화면
BrazeDefaultInAppMessage오버레이를 Scene에 추가하고 포커스를 부여합니다. - 노출 횟수를 기록합니다.
BrazeTask.BrazeInAppMessage를 지웁니다.- 메시지가 닫히면 오버레이를 제거하고 포커스를 복원합니다.
dismiss_type이 AUTO_DISMISS인 경우 메시지는 duration밀리초 후에 닫히며 클릭은 기록되지 않습니다. 그 외의 경우에는 사용자가 닫을 때까지 메시지가 유지됩니다.
SDK는 한 번에 하나의 메시지만 표시하며 메시지를 대기줄에 넣지 않습니다.
- 새 메시지가 도착하면 아직
display_delay를 기다리고 있는 메시지가 취소됩니다. - 새 메시지는 자체
display_delay가 지나 표시될 때 화면에 있는 메시지를 대체합니다. - 삭제된 메시지(
MODAL이 아니거나message값이 없는 메시지)는 다른 메시지를 취소하거나 대체하지 않습니다.
리모컨
| 키 | 결과 |
|---|---|
| 왼쪽 및 오른쪽 | 버튼 간에 전환합니다(최대 두 개). |
| 위쪽 및 아래쪽 | × 닫기 버튼으로 이동하거나 닫기 버튼에서 벗어납니다. |
| 버튼에서 OK | 버튼 클릭을 기록하고 메시지를 닫은 후 brazeHandleInAppMessageClick을 호출합니다. |
| 버튼이 없을 때 OK | 본문 클릭을 기록하고 메시지를 닫은 후 brazeHandleInAppMessageClick을 호출합니다. |
| × 닫기 버튼에서 OK | 메시지를 닫습니다. 클릭은 기록되지 않으며 brazeHandleInAppMessageClick은 호출되지 않습니다. |
| 뒤로 | 메시지를 닫습니다. 클릭은 기록되지 않으며 brazeHandleInAppMessageClick은 호출되지 않습니다. |
| 기타 모든 키 | 무시됩니다. 오버레이가 모든 키 이벤트를 캡처합니다. |
포커스
오버레이가 표시되어 있는 동안 콘텐츠 로드, 화면 전환, 비디오 재생 등으로 앱이 setFocus를 호출하면 오버레이가 포커스를 다시 가져옵니다. 메시지가 닫히면 앱에서 마지막으로 포커스를 준 노드로 포커스가 돌아갑니다.
오버레이가 표시되어 있는 동안 앱에서 Scene dialog를 열면, 해당 대화 상자가 닫힐 때까지 포커스를 유지합니다.
클릭 및 딥링크 처리
SDK는 URI를 직접 열지 않습니다. 메시지의 click_action 및 uri를 처리하려면 Scene에 brazeHandleInAppMessageClick(event)를 구현하고 Scene의 <interface>에 선언하세요. 선언하지 않으면 SDK가 이 함수를 호출하지 않습니다.
<component name="MainScene" extends="Scene">
<interface>
<function name="brazeHandleInAppMessageClick" />
</interface>
...
</component>
event 매개변수의 구조는 다음과 같습니다.
{
in_app_message: <message AA>,
button: <button AA, or invalid for a body click>,
button_index: <0 or 1, or -1 for a body click>
}
다음 사항에 유의하세요.
- SDK는 오버레이를 제거하고 포커스를 복원한 후에 이 함수를 호출하므로, 이 함수에서 새 화면을 열 수 있습니다.
click_action이"NONE"인 버튼도 이 함수를 호출합니다. 동작을 수행하기 전에click_action을 확인하세요.- SDK는 반환값을 무시합니다.
- 사용자가 × 닫기 버튼, 뒤로 버튼 또는
AUTO_DISMISS로 메시지를 닫으면 SDK는 이 함수를 호출하지 않습니다. brazeHandleCustomInAppMessage로 렌더링하는 메시지에 대해서는 SDK가 이 함수를 호출하지 않습니다.
예시: 딥링크 라우팅
- Braze 대시보드에서 메시지 또는 버튼의 클릭 시 동작을 앱이 인식할 수 있는 URI(예:
myapp://details/123)를 사용하는 딥링크로 설정합니다. SDK는 이를click_action = "URI"로 전달하며, URI는uri에 담깁니다. brazeHandleInAppMessageClick에서 URI를 파싱하고 일치하는 화면으로 라우팅합니다.
function brazeHandleInAppMessageClick(event as object) as boolean
target = event.button
if target = invalid then target = event.in_app_message
if target.click_action <> "URI" then return false
if target.uri = invalid then return false
uri = target.uri.ToStr()
prefix = "myapp://details/"
if Left(uri, Len(prefix)) = prefix
' ShowDetailsScreen is a function in your app.
ShowDetailsScreen(Mid(uri, Len(prefix) + 1))
return true
end if
return false
end function

uri 값은 숫자로 전달될 수 있습니다(예: 대시보드 값이 숫자인 경우). 파싱하기 전에 ToStr()로 변환하세요.
커스텀 UI로 특정 메시지 렌더링하기
일부 메시지는 자체 UI로 렌더링하고 나머지는 기본값 UI를 사용하려면, Scene에 brazeHandleCustomInAppMessage(in_app_message)를 구현하고 Scene의 <interface>에 선언하세요.
SDK는 display_delay 이후 각 MODAL 메시지에 대해 이 함수를 호출합니다. 메시지를 직접 렌더링했다면 true를 반환하세요. 기본값 UI로 표시하려면 false를 반환하세요.
<interface>
<function name="brazeHandleCustomInAppMessage" />
<function name="brazeHandleInAppMessageClick" />
</interface>
function brazeHandleCustomInAppMessage(in_app_message as object) as boolean
if in_app_message.extras <> invalid and in_app_message.extras.msgtype = "sidebyside"
' getDeepestFocusedNode is a helper in the sample app's MainScene.brs.
m.oldFocus = getDeepestFocusedNode(m.top.focusedChild)
m.customMsg = CreateObject("roSGNode", "CustomSideBySideInAppMessage")
m.top.appendChild(m.customMsg)
m.customMsg.BrazeTask = m.BrazeTask
m.customMsg.inappmessage = in_app_message
m.customMsg.setFocus(true)
m.customMsg.ObserveField("isClosed", "reclaimFocus")
return true
end if
return false
end function
sub reclaimFocus()
m.top.removeChild(m.customMsg)
m.customMsg = invalid
if m.oldFocus <> invalid then m.oldFocus.setFocus(true)
end sub
완전한 커스텀 컴포넌트 예시는 Braze Roku SDK 리포지토리의 torchietv 샘플 앱에 있는 CustomSideBySideInAppMessage를 참조하세요.
다음 사항에 유의하세요:
- SDK는
automatic_iam_display가true이고 기본값 UI 파일이 앱에 포함되어 있을 때만 이 함수를 호출합니다. - 이 함수에는
MODAL메시지만 전달됩니다. - 커스텀 UI는 노출 횟수, 클릭, 버튼 클릭 로깅과 자체 노드 제거, 포커스 복원을 직접 처리해야 합니다.
- SDK가
BrazeTask.BrazeInAppMessage를 지우고display_delay를 직접 적용하므로, 이 두 가지는 직접 처리하지 마세요. - 새 메시지가 도착하면 SDK는 이 함수를 호출하기 전에 기본 오버레이를 제거합니다. 하지만 이전에 렌더링한 커스텀 레이아웃은 제거할 수 없으므로 Scene에서 직접 제거하세요.
모든 메시지에 커스텀 UI 사용하기
automatic_iam_display를 설정하지 않으면 앱에서 모든 인앱 메시지를 처리합니다. 옵저버, UI, 로깅은 모든 메시지 유형에서 Roku SDK 2.3.0 이전과 동일하게 작동합니다.
1단계: 옵저버 추가하기
인앱 메시지를 처리하려면 BrazeTask.BrazeInAppMessage에 옵저버를 추가하면 됩니다.
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")
2단계: 트리거된 메시지에 액세스하기
그런 다음 핸들러 내에서 Campaigns가 트리거한 가장 우선순위가 높은 인앱 메시지에 액세스할 수 있습니다.
sub onInAppMessageReceived()
in_app_message = m.BrazeTask.BrazeInAppMessage
...
end sub
Roku SDK 2.3.0으로 업그레이드
Roku SDK 2.3.0에는 기본 UI가 추가되었습니다. 기본 UI는 기본적으로 꺼져 있으므로 업그레이드해도 인앱 메시지가 표시되는 방식은 바뀌지 않습니다. 다음 중 한 가지 방법을 선택하세요.
커스텀 UI 유지하기
- 기존 SDK 파일을 2.3.0 릴리스의
sdk_files디렉토리에 있는 파일로 교체합니다. automatic_iam_display는 설정하지 않은 상태로 둡니다.
옵저버, UI, 로깅은 모든 메시지 유형에서 이전과 동일하게 작동합니다. SDK는 automatic_iam_display가 true인 경우에만 BrazeDefaultInAppMessage 파일을 사용하므로, 나머지 sdk_files와 함께 복사해도 안전합니다.
기본 UI로 전환하기
- 기존 SDK 파일을 2.3.0 릴리스의
sdk_files디렉토리에 있는 파일로 교체하고,BrazeDefaultInAppMessage.brs,BrazeDefaultInAppMessage.xml,BrazeDefaultInAppMessageStyles.brs파일을components에 추가합니다. 기존 샘플BrazeInAppMessage컴포넌트는 변경되지 않습니다. 전환한 후에는 삭제해도 됩니다. - 기본 UI를 켭니다.
- Scene에서
getBrazeInstance()가 호출되는지 확인합니다. - 기존 인앱 메시지 처리 코드를 제거합니다.
- 옵저버:
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")및 해당 핸들러 - 인앱 메시지 노드를 생성하고 추가하는 코드
LogInAppMessageImpression,LogInAppMessageClick,LogInAppMessageButtonClick호출m.BrazeTask.BrazeInAppMessage = invalid
- 옵저버:
- 클릭 및 딥링크 처리 코드를
brazeHandleInAppMessageClick으로 옮깁니다.

SDK는 자체 옵저버를 추가하며 기존 옵저버를 대체하지 않습니다. 기본 UI를 켤 때 기존 옵저버와 로깅을 그대로 두면 메시지가 두 번 표시되고 노출 횟수와 클릭이 중복으로 기록될 수 있습니다.
일부 커스텀 레이아웃 유지하기
기본 UI로 전환하기의 단계를 따르세요. 그런 다음 기존 핸들러의 렌더링 코드를 brazeHandleCustomInAppMessage로 옮깁니다.
기존 핸들러와 비교했을 때 다음 사항을 확인하세요.
- 노출 및 클릭 로깅은 그대로 유지합니다.
- 자체 노드를 제거하고 포커스를 복원하는 코드도 그대로 유지합니다.
m.BrazeTask.BrazeInAppMessage = invalid를 제거합니다. SDK가 이 값을 초기화합니다.- 자체
display_delay처리 코드를 제거합니다. SDK가 이를 적용합니다. - 이 함수에는
MODAL메시지만 전달됩니다. 다른 메시지 유형을 렌더링하는 경우에는 모든 메시지에 대해 계속 커스텀 UI를 사용하세요.
메시지 필드
다음 필드는 커스텀 UI로 메시지를 렌더링할 때 in_app_message에서 사용할 수 있습니다. 기본 UI에서는 이러한 필드가 자동으로 적용됩니다.
처리
다음은 인앱 메시지를 처리하는 데 필요한 필드 목록입니다.
| 필드 | 설명 |
|---|---|
buttons |
버튼 목록입니다(빈 목록일 수 있음). |
click_action |
"URI" 또는 "NONE". 이 필드를 사용하여 인앱 메시지를 클릭했을 때 URI 링크를 열지, 메시지를 닫을지 지정합니다. 버튼이 없는 경우, 인앱 메시지가 표시된 상태에서 사용자가 “확인”을 클릭하면 이 동작이 실행되어야 합니다. |
dismiss_type |
"AUTO_DISMISS" 또는 "SWIPE". 이 필드를 사용하여 인앱 메시지가 자동으로 닫힐지, 스와이프해야 닫힐지 지정합니다. |
display_delay |
인앱 메시지를 표시하기 전까지 대기하는 시간(초)입니다. |
duration |
dismiss_type이 "AUTO_DISMISS"로 설정된 경우 메시지가 표시되는 시간(밀리초)입니다. |
extras |
키-값 페어입니다. |
header |
헤더 텍스트입니다. |
id |
노출 횟수 또는 클릭을 기록하는 데 사용되는 ID입니다. |
image_url |
인앱 메시지 이미지 URL입니다. |
message |
메시지 본문 텍스트입니다. |
uri |
click_action에 따라 사용자가 이동하게 될 URI입니다. click_action이 "URI"인 경우 이 필드를 반드시 포함해야 합니다. |

버튼이 포함된 인앱 메시지의 경우, 버튼 텍스트를 추가하기 전에 클릭 동작을 추가하면 메시지 click_action도 최종 페이로드에 포함됩니다.
스타일 지정
대시보드에서 선택하여 사용할 수 있는 다양한 스타일 지정 필드도 있습니다.
| 필드 | 설명 |
|---|---|
bg_color |
배경 색상입니다. |
close_button_color |
닫기 버튼 색상입니다. |
frame_color |
배경 화면 오버레이의 색상입니다. |
header_text_color |
헤더 텍스트 색상입니다. |
message_text_color |
메시지 텍스트 색상입니다. |
text_align |
“START”, “CENTER” 또는 “END”. 선택한 텍스트 정렬입니다. |
또는 표준 팔레트를 사용하여 Roku 애플리케이션 내에서 인앱 메시지를 구현하고 스타일을 지정할 수도 있습니다.
버튼
| 필드 | 설명 |
|---|---|
click_action |
"URI" 또는 "NONE". 이 필드를 사용하여 인앱 메시지를 클릭했을 때 URI 링크를 열지, 메시지를 닫을지 지정합니다. |
id |
버튼 자체의 ID 값입니다. |
text |
버튼에 표시할 텍스트입니다. |
uri |
click_action에 따라 사용자가 이동하게 될 URI입니다. click_action이 "URI"인 경우 이 필드를 반드시 포함해야 합니다. |

인앱 메시징은 tvOS용 기본 UI나 보기가 포함되지 않은 Swift SDK를 사용하는 헤드리스 UI를 통해 지원되므로 자체 커스텀 UI를 구현해야 합니다.
필수 조건
이 기능을 사용하려면 먼저 Swift Braze SDK를 통합해야 합니다.
인앱 메시지 활성화
1단계: 새 iOS 앱 만들기
Braze에서 설정 > 앱 설정을 선택한 다음, 앱 추가를 선택합니다. tvOS 앱 이름을 입력하고 tvOS가 아닌 iOS를 선택한 다음, 앱 추가를 선택합니다.


tvOS 체크박스를 선택하면 tvOS용 {앱} 내 메시지를 사용자 지정할 수 없습니다.
2단계: 앱의 API 키 가져오기
앱 설정에서 새 tvOS 앱을 선택한 다음, 앱의 API 키를 기록합니다. 이 키를 사용하여 Xcode에서 앱을 구성할 수 있습니다.

3단계: BrazeKit 통합
앱의 API 키를 사용하여 Braze Swift SDK를 Xcode의 tvOS 프로젝트에 통합합니다. Braze Swift SDK에서 BrazeKit를 통합하기만 하면 됩니다.
4단계: 사용자 지정 UI 만들기
Braze는 tvOS에서 인앱 메시지에 대한 기본 UI를 제공하지 않으므로 직접 사용자 지정해야 합니다. 전체 안내는 단계별 튜토리얼을 참조하세요. tvOS용 앱 내 메시지 사용자 지정. 샘플 프로젝트는 Braze Swift SDK 샘플을 참조하세요.
필수 조건
이 기능을 사용하려면 먼저 Unity Braze SDK를 통합해야 합니다.
메시지 유형
Braze는 여러 가지 기본 인앱 메시지 유형을 제공하며, 메시지, 이미지, Font Awesome 아이콘, 클릭 액션, 분석, 색상 구성표 등으로 각각 커스터마이즈할 수 있습니다.
기본 동작과 특성은 IInAppMessage 인터페이스에 의해 정의되며, InAppMessageBase라는 하위 클래스에 있습니다. IInAppMessage에는 닫기, 클릭 액션 및 분석 버튼을 앱에 추가할 수 있는 하위 인터페이스 IInAppMessageImmersive도 포함되어 있습니다.

버튼이 포함된 인앱 메시지는 버튼 텍스트를 추가하기 전에 클릭 액션이 추가된 경우 최종 페이로드에 clickAction 메시지를 포함한다는 점을 유의하세요.
slideup 인앱 메시지는 화면 상단 또는 하단에서 ‘슬라이드 업’ 또는 ‘슬라이드 다운’되기 때문에 이러한 이름이 붙었습니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 되지 않는 메시징 기능을 제공합니다.
slideup 인앱 메시지 오브젝트는 InAppMessageBase를 확장합니다.

modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 두 개의 클릭 액션 및 분석 지원 버튼을 제공할 수 있습니다.
이 메시지 유형은 InAppMessageImmersiveBase의 하위 클래스이며, IInAppMessageImmersive를 구현하는 추상 클래스입니다. 이를 통해 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 2개의 클릭 액션 및 분석 지원 버튼이 표시됩니다.
이 메시지 유형은 InAppMessageImmersiveBase를 확장하여 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

HTML 인앱 메시지는 완전히 커스터마이즈된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 인앱 메시지 콘텐츠는 WebView에 표시되며, 이미지 및 글꼴과 같은 리치 콘텐츠를 선택적으로 포함할 수 있어 메시지의 외관과 기능을 완벽하게 제어할 수 있습니다.
이 메시지 유형은 IInAppMessageHtml을 구현하며, 이는 IInAppMessage의 하위 클래스입니다.

Android에서는 커스텀 HTML 인앱 메시지에서 target="_blank"로 구성된 링크가 기기의 기본 웹 브라우저에서 열립니다.
Android 인앱 메시지는 HTML 내에서 Braze Android SDK의 메서드를 호출하기 위한 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 JavaScript bridge 페이지를 참조하세요.


현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.

각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 동작, 분석, 표시 및 전달 전반에 걸쳐 고도로 커스텀할 수 있습니다. 이들은 모든 인앱 메시지의 기본 동작과 특성을 정의하는 Braze.InAppMessage의 열거형 유형입니다. 인앱 메시지 속성 및 사용법의 전체 목록은 InAppMessage 클래스를 참조하세요.
다음은 Braze에서 사용할 수 있는 인앱 메시지 유형과 최종 사용자에게 표시되는 방식입니다.
Modal 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Modal Image 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 이 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Modal 유형과 유사합니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 두 개의 분석 지원 버튼이 표시됩니다.

Full Image 인앱 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Full 인앱 메시지와 유사합니다. 이 메시지 유형은 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full Image 인앱 메시지에는 전체 화면에 걸친 이미지와 함께 최대 두 개의 분석 지원 버튼을 표시하는 옵션이 포함되어 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 전체 인앱 메시지 콘텐츠는 WKWebView에 표시되며, 선택적으로 이미지 및 글꼴과 같은 다양한 리치 콘텐츠를 포함할 수 있으므로 메시지 모양과 기능을 완벽하게 제어할 수 있습니다.
iOS 인앱 메시지는 HTML 내에서 Braze 웹 SDK의 메서드를 호출하기 위해 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 모범 사례를 참조하세요.
다음 예시는 페이지가 지정된 HTML 전체 인앱 메시지를 보여줍니다:

현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.
Control 인앱 메시지에는 UI 구성 요소가 포함되어 있지 않으며 주로 분석 목적으로 사용됩니다. 이 유형은 대조군에 전송된 인앱 메시지의 수신을 확인하는 데 사용됩니다.
자동 배리언트 최적화 및 대조군에 대한 자세한 내용은 BrazeAITM로 최적화하기를 참조하세요.
필수 조건
이 기능을 사용하기 전에 .NET MAUI Braze SDK를 통합해야 합니다.
메시지 유형
Braze는 여러 가지 기본 인앱 메시지 유형을 제공하며, 메시지, 이미지, Font Awesome 아이콘, 클릭 액션, 분석, 색상 구성표 등으로 각각 커스터마이즈할 수 있습니다.
기본 동작과 특성은 IInAppMessage 인터페이스에 의해 정의되며, InAppMessageBase라는 하위 클래스에 있습니다. IInAppMessage에는 닫기, 클릭 액션 및 분석 버튼을 앱에 추가할 수 있는 하위 인터페이스 IInAppMessageImmersive도 포함되어 있습니다.

버튼이 포함된 인앱 메시지는 버튼 텍스트를 추가하기 전에 클릭 액션이 추가된 경우 최종 페이로드에 clickAction 메시지를 포함한다는 점을 유의하세요.
slideup 인앱 메시지는 화면 상단 또는 하단에서 ‘슬라이드 업’ 또는 ‘슬라이드 다운’되기 때문에 이러한 이름이 붙었습니다. 화면의 작은 부분만 차지하며 효과적이고 방해가 되지 않는 메시징 기능을 제공합니다.
slideup 인앱 메시지 오브젝트는 InAppMessageBase를 확장합니다.

modal 인앱 메시지는 화면 중앙에 나타나며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 두 개의 클릭 액션 및 분석 지원 버튼을 제공할 수 있습니다.
이 메시지 유형은 InAppMessageImmersiveBase의 하위 클래스이며, IInAppMessageImmersive를 구현하는 추상 클래스입니다. 이를 통해 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 2개의 클릭 액션 및 분석 지원 버튼이 표시됩니다.
이 메시지 유형은 InAppMessageImmersiveBase를 확장하여 로컬에서 생성된 인앱 메시지에 커스텀 기능을 추가할 수 있습니다.

HTML 인앱 메시지는 완전히 커스터마이즈된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 인앱 메시지 콘텐츠는 WebView에 표시되며, 이미지 및 글꼴과 같은 리치 콘텐츠를 선택적으로 포함할 수 있어 메시지의 외관과 기능을 완벽하게 제어할 수 있습니다.
이 메시지 유형은 IInAppMessageHtml을 구현하며, 이는 IInAppMessage의 하위 클래스입니다.

Android에서는 커스텀 HTML 인앱 메시지에서 target="_blank"로 구성된 링크가 기기의 기본 웹 브라우저에서 열립니다.
Android 인앱 메시지는 HTML 내에서 Braze Android SDK의 메서드를 호출하기 위한 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 JavaScript bridge 페이지를 참조하세요.


현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.

각 인앱 메시지 유형은 콘텐츠, 이미지, 아이콘, 클릭 동작, 분석, 표시 및 전달 전반에 걸쳐 고도로 커스텀할 수 있습니다. 이들은 모든 인앱 메시지의 기본 동작과 특성을 정의하는 Braze.InAppMessage의 열거형 유형입니다. 인앱 메시지 속성 및 사용법의 전체 목록은 InAppMessage 클래스를 참조하세요.
다음은 Braze에서 사용할 수 있는 인앱 메시지 유형과 최종 사용자에게 표시되는 방식입니다.
Modal 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Modal Image 인앱 메시지는 화면 중앙에 표시되며 반투명 패널로 둘러싸여 있습니다. 이 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Modal 유형과 유사합니다. 보다 중요한 메시징에 유용하며, 최대 두 개의 분석 지원 버튼을 제공할 수 있습니다.

Full 인앱 메시지는 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full 인앱 메시지의 상단에는 이미지가, 하단에는 텍스트와 최대 두 개의 분석 지원 버튼이 표시됩니다.

Full Image 인앱 메시지는 헤더나 메시지 텍스트가 없다는 점을 제외하면 Full 인앱 메시지와 유사합니다. 이 메시지 유형은 사용자 커뮤니케이션의 콘텐츠와 효과를 극대화하는 데 유용합니다. Full Image 인앱 메시지에는 전체 화면에 걸친 이미지와 함께 최대 두 개의 분석 지원 버튼을 표시하는 옵션이 포함되어 있습니다.

HTML 인앱 메시지는 완전히 커스텀된 사용자 콘텐츠를 만드는 데 유용합니다. 사용자 정의 HTML 전체 인앱 메시지 콘텐츠는 WKWebView에 표시되며, 선택적으로 이미지 및 글꼴과 같은 다양한 리치 콘텐츠를 포함할 수 있으므로 메시지 모양과 기능을 완벽하게 제어할 수 있습니다.
iOS 인앱 메시지는 HTML 내에서 Braze 웹 SDK의 메서드를 호출하기 위해 JavaScript brazeBridge 인터페이스를 지원합니다. 자세한 내용은 모범 사례를 참조하세요.
다음 예시는 페이지가 지정된 HTML 전체 인앱 메시지를 보여줍니다:

현재 iOS 및 Android 플랫폼에서는 iFrame에 커스텀 HTML 인앱 메시지를 표시하는 기능을 지원하지 않습니다.
Control 인앱 메시지에는 UI 구성 요소가 포함되어 있지 않으며 주로 분석 목적으로 사용됩니다. 이 유형은 대조군에 전송된 인앱 메시지의 수신을 확인하는 데 사용됩니다.
자동 배리언트 최적화 및 대조군에 대한 자세한 내용은 BrazeAITM로 최적화하기를 참조하세요.
다음 단계
더 깊이 알아볼 준비가 되셨나요? 다음 단계별 튜토리얼을 확인하세요:
