Skip to content

인앱 메시지 전달

이 참조 문서에서는 iOS 인앱 메시지 전달, 다양한 트리거 유형 표시, 전달 의미 체계 및 이벤트 트리거 단계의 개요를 제공합니다.

트리거 유형

인앱 메시지는 SDK에 의해 기록된 이벤트에 의해 트리거됩니다. Any Purchase, Specific Purchase, Session Start, Custom Event, Push Click 이벤트 유형에서 인앱 메시지를 트리거할 수 있습니다. 게다가 Specific PurchaseCustom Event 트리거에는 강력한 속성정보 필터가 포함되어 있습니다.

인앱 메시지 활성화

Braze가 인앱 메시지를 표시할 수 있도록 하려면 BrazeInAppMessagePresenter 프로토콜의 구현을 생성하고 이를 Braze 인스턴스의 선택적 inAppMessagePresenter에 할당합니다. BrazeInAppMessageUI 오브젝트를 인스턴스화하여 기본 Braze UI 프리젠터를 사용할 수도 있습니다.

BrazeInAppMessageUI 클래스에 액세스하려면 BrazeUI 라이브러리를 가져와야 합니다.

1
AppDelegate.braze?.inAppMessagePresenter = BrazeInAppMessageUI()
1
AppDelegate.braze.inAppMessagePresenter = [[BrazeInAppMessageUI alloc] init];

전달 의미 체계

사용자가 받을 수 있는 모든 인앱 메시지는 세션 시작 시 사용자의 기기로 전달됩니다. 제공되면 SDK가 트리거 시점에 즉시 사용할 수 있도록 자산을 미리 가져와 표시 지연 시간을 최소화합니다.

트리거 이벤트에 적격한 인앱 메시지가 두 개 이상 연결된 경우 우선순위가 가장 높은 인앱 메시지만 전달됩니다.

전달 시 즉시 표시되는 인앱 메시지(세션 시작, 푸시 클릭)의 경우 자산이 미리 로드되지 않아 지연이 발생할 수 있습니다. SDK의 세션 시작 의미 체계에 대한 자세한 내용은 세션 생애주기를 참조하세요.

트리거 사이의 최소 시간 간격

기본적으로, 원활한 사용자 경험을 보장하기 위해 인앱 메시지를 30초에 한 번으로 제한합니다.

Braze 설정에서 triggerMinimumTimeInterval 속성정보를 설정하여 이 값을 재정의할 수 있습니다. Braze 인스턴스를 초기화하기 전에 이 값을 반드시 구성하십시오. triggerMinimumTimeInterval을 인앱 메시지 간 최소 시간(초)에 대해 원하는 정수 값으로 설정합니다.

1
2
3
4
5
6
7
8
let configuration = Braze.Configuration(
  apiKey: "YOUR-APP-IDENTIFIER-API-KEY",
  endpoint: "YOUR-BRAZE-ENDPOINT"
)
// Sets the minimum trigger time interval to 5 seconds
configuration.triggerMinimumTimeInterval = 5
let braze = Braze(configuration: configuration) 
AppDelegate.braze = braze
1
2
3
4
5
6
7
BRZConfiguration *configuration =
    [[BRZConfiguration alloc] initWithApiKey:@"<BRAZE_API_KEY>"
                                    endpoint:@"<BRAZE_ENDPOINT>"];
// Sets the minimum trigger time interval to 5 seconds
configuration.triggerMinimumTimeInterval = 5;
Braze *braze = [BrazePlugin initBraze:configuration];
AppDelegate.braze = braze;

일치하는 트리거를 찾을 수 없음

Braze가 특정 이벤트에 대해 일치하는 트리거를 찾지 못하면 BrazeDelegate.(_:noMatchingTriggerForEvent)를 호출합니다. 이 시나리오를 처리하기 위해 BrazeDelegate를 채택하여 클래스에서 이 메서드를 구현합니다.

인앱 메시지 스택

스택에 인앱 메시지 추가

사용자는 다음 상황에서 인앱 메시지를 받을 자격이 있습니다:

  • 인앱 메시지 트리거 이벤트가 발생합니다
  • 세션이 시작되었습니다
  • 앱은 푸시 알림에서 열립니다

인앱 메시지의 트리거 이벤트가 실행되면 ‘스택’에 배치됩니다. 여러 개의 인앱 메시지가 스택에 있고 표시 대기 중인 경우, Braze는 최근에 수신한 인앱 메시지를 먼저 표시합니다(후입후출).

사용자에게 인앱 메시지를 수신할 수 있는 자격이 있으면 BrazeInAppMessagePresenter는 인앱 메시지 스택에서 최신 인앱 메시지를 요청합니다. 스택은 메모리에 저장된 인앱 메시지만 유지하며 일시 중단 모드에서 앱을 실행할 때마다 지워집니다.

스택으로 인앱 메시지 반환

트리거된 인앱 메시지는 다음 상황에서 스택으로 반환될 수 있습니다:

  • 인앱 메시지는 앱이 백그라운드에 있을 때 트리거됩니다.
  • 다른 인앱 메시지가 현재 표시되고 있습니다.
  • inAppMessage(_:displayChoiceForMessage:) delegate method이(가) .reenqueue을(를) 반환했습니다.

트리거된 인앱 메시지는 사용자가 인앱 메시지를 받을 자격이 있을 때 나중에 표시할 수 있도록 스택 맨 위에 배치됩니다.

인앱 메시지 삭제

다음 상황에서는 트리거된 인앱 메시지가 폐기됩니다:

  • inAppMessage(_:displayChoiceForMessage:) delegate method이(가) .discard을(를) 반환했습니다.
  • 인앱 메시지의 자산(이미지 또는 ZIP 파일)을 다운로드하지 못했습니다.
  • 인앱 메시지가 표시할 준비가 되었지만 시간 초과 기간이 지났습니다.
  • 기기 방향이 트리거된 인앱 메시지의 방향과 일치하지 않습니다.

인앱 메시지는 스택에서 제거될 것입니다. 삭제된 후, 인앱 메시지는 트리거 이벤트의 다른 인스턴스에 의해 나중에 트리거될 수 있습니다.

실시간 인앱 메시지 생성 및 표시

앱 내에서 다른 시간에 인앱 메시지를 표시하려면 present(message:) 메서드를 inAppMessagePresenter에서 수동으로 호출할 수 있습니다. 인앱 메시지는 앱 내에서 로컬로 생성되어 Braze를 통해 표시될 수 있습니다. 이 기능은 앱 내에서 트리거하려는 메시지를 실시간으로 표시할 때 특히 유용합니다.

자체 인앱 메시지를 생성하면 분석 추적을 선택 해제하고 message.context을(를) 사용하여 클릭 및 노출 횟수 로깅을 수동으로 처리해야 합니다.

1
2
3
4
let customInAppMessage = Braze.InAppMessage.slideup(
  .init(message: "YOUR_CUSTOM_SLIDEUP_MESSAGE", slideFrom: .bottom, themes: .defaults)
)
AppDelegate.braze?.inAppMessagePresenter?.present(message: customInAppMessage)
1
2
3
4
5
6
7
8
9
BRZInAppMessageRaw *customInAppMessage = [[BRZInAppMessageRaw alloc] init];
customInAppMessage.type = BRZInAppMessageRawTypeSlideup;
customInAppMessage.message = @"YOUR_CUSTOM_SLIDEUP_MESSAGE";
customInAppMessage.slideFrom = BRZInAppMessageRawSlideFromBottom;
customInAppMessage.themes = @{
  @"light": BRZInAppMessageRawTheme.defaultLight,
  @"dark": BRZInAppMessageRawTheme.defaultDark
};
[AppDelegate.braze.inAppMessagePresenter presentMessage:customInAppMessage];

키-값 쌍 추가 정보

Braze.InAppMessage 오브젝트는 키-값 페어를 extras로 전달할 수 있습니다. 캠페인 생성 시 대시보드에서 지정할 수 있습니다. 키-값 페어를 사용하여 앱에서 추가 처리를 위해 인앱 메시지와 함께 데이터를 전송할 수 있습니다.

예를 들어, 추가 항목 콘텐츠에 따라 인앱 메시지의 프레젠테이션을 사용자 지정하려는 경우를 고려합니다. extras 속성정보에서 키-값 페어에 액세스하고 이를 중심으로 실행하도록 커스텀 로직을 정의할 수 있습니다.

1
2
3
4
let customization = message.extras["custom-display"] as? String
if customization == "colorful-slideup" {
  // Perform your custom logic.
}
1
2
3
4
5
6
if ([message.extras[@"custom-display"] isKindOfClass:[NSString class]]) {
  NSString *customization = message.extras[@"custom-display"];
  if ([customization isEqualToString:@"colorful-slideup"]) {
    // Perform your custom logic.
  }
}

전체 구현을 위해 예제 앱의 인앱 메시지 맞춤 설정 샘플을 참조할 수 있습니다.

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