Firebase 인앱 메시지의 메시지 맞춤설정


Firebase 인앱 메시지는 사전 구성된 동작 및 메시지 유형의 유용한 집합과 기본 디자인을 제공하지만 경우에 따라 동작과 메시지 콘텐츠를 확장할 수 있습니다. 인앱 메시지를 사용하면 메시지에 작업을 추가하고 메시지의 디자인을 맞춤설정할 수 있습니다.

메시지에 작업 추가

작업을 사용하면 인앱 메시지를 통해 사용자를 웹사이트 또는 앱의 특정 화면으로 안내할 수 있습니다.

Firebase In-App Messaging는 링크 핸들러를 사용하여 작업을 처리합니다. SDK는 여러 핸들러를 사용할 수 있으므로 앱에 이미 핸들러가 있는 경우 Firebase In-App Messaging에서 추가 설정 없이 사용할 수 있습니다. 핸들러가 아직 없는 경우 Firebase Dynamic Links를 사용할 수 있습니다. 자세한 내용은 iOS에서 동적 링크 만들기를 참고하세요.

Firebase 콘솔을 사용하여 메시지에 작업 추가

앱에 링크 핸들러가 있으면 작업을 사용하여 캠페인을 작성할 수 있습니다. Firebase Console에서 메시지를 열고 새 캠페인을 시작하거나 기존 캠페인을 수정합니다. 해당 캠페인에서 카드, 버튼 텍스트버튼 작업, 이미지 작업 또는 배너 작업을 제공합니다. 여기서 작업은 관련 딥 링크입니다.

작업의 형식은 선택한 메시지 레이아웃마다 다릅니다. 모달에는 버튼 텍스트 콘텐츠, 텍스트 색상, 배경 색상을 맞춤설정할 수 있는 작업 버튼이 생깁니다. 반면에 이미지 및 상단 배너는 대화형이 되고 탭하면 지정된 작업이 호출됩니다.

메시지 디자인 수정

Firebase In-App Messaging를 사용하면 메시지 표시를 맞춤설정하여 앱에서 메시지 레이아웃, 글꼴 스타일, 버튼 모양, 기타 세부정보를 렌더링하는 방식을 변경할 수 있습니다. 메시지 표시를 수정하는 방법에는 2가지가 있습니다. 즉, 기본 Firebase In-App Messaging 표시를 수정하거나 자신만의 메시지 표시 라이브러리를 처음부터 만드는 것입니다.

참고: 이 제품은 macOS, Mac Catalyst, 앱 클립 또는 watchOS 대상에서는 사용할 수 없습니다.

기본 표시 수정

메시지를 맞춤설정하는 가장 간단한 방법은 Firebase In-App Messaging의 기본 메시지 표시 코드를 기반으로 빌드하는 것입니다.

firebase-ios-sdk 저장소를 클론합니다.

시작하려면 firebase-ios-sdk 저장소의 최신 출시 버전을 클론하고 InAppMessaging 디렉터리를 엽니다.

수정할 메시지 유형 선택

저장소를 클론하면 Firebase In-App Messaging 메시지 유형인 Card, Modal, Banner, ImageOnly의 전체 또는 일부를 수정할 수 있습니다. 각 유형은 Firebase In-App Messaging 캠페인 만들기 과정의 메시지 레이아웃과 일치합니다.

덕분에 각 유형에서 Firebase 콘솔의 캠페인 맞춤설정 옵션에 따라 결정되는 다양한 데이터 세트에 액세스할 수 있습니다.

유형 titleText bodyText textColor backgroundColor imageData actionButton secondaryActionButton
Card
Modal
Banner
ImageOnly

메시지 표시 렌더링 코드 수정

메시지 유형 제한만 감안하면 원하는 대로 수정이 가능합니다. 앱 하단에 표시되는 배너를 만들거나, 모달의 작업 버튼을 옮기거나, 사용자의 메시지에 인앱 메시지를 삽입하거나, 앱에 어울리는 디자인의 메시지로 수정할 수도 있습니다.

메시지 표시를 수정할 때는 두 가지 사항에 주의해야 합니다.

  • 메시지 유형 디렉터리: 메시지 유형마다 유형의 로직을 결정하는 파일이 포함된 별도의 디렉터리가 있습니다.
  • 스토리보드: InAppMessaging 라이브러리에는 세 가지 메시지 유형 모두의 UI를 정의하는 데 유용한 .storyboard 파일도 있습니다.

원하는 메시지 유형의 디렉터리에 있는 파일과 .storyboard의 해당하는 섹션을 수정하여 커스텀 메시지 표시를 만듭니다.

수정된 InAppMessaging 코드를 사용하도록 podfile 업데이트

Firebase In-App Messaging에서 기본 표시 대신 수정된 메시지 표시를 사용하도록 하려면 맞춤설정된 InAppMessaging 라이브러리를 사용하도록 podfile을 업데이트합니다.

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'YourProject' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for YourProject
pod 'Firebase'

# Remove the default InAppMessaging pod:
# pod 'Firebase/InAppMessaging'

# Overwrite it with a version that points to your local copy:
pod `FirebaseInAppMessaging', :path => '~/Path/To/The/Cloned/Repo/'

end
그러면 pod를 업데이트하고 앱을 다시 빌드해 맞춤설정된 메시지를 표시할 수 있습니다.

나만의 메시지 표시 라이브러리 만들기

InAppMessaging 라이브러리를 사용하지 않고도 표시되는 메시지의 UI를 만들 수 있습니다. 즉, 자신만의 코드를 처음부터 작성할 수도 있습니다.

InAppMessagingDisplay 프로토콜을 구현하는 클래스 빌드

Firebase In-App MessagingInAppMessaging 클래스를 사용하여 Firebase 서버와 앱 간의 통신을 처리합니다. 그러면 이 클래스에서 InAppMessagingDisplay 프로토콜을 사용하여 수신된 메시지를 표시합니다. 직접 표시 라이브러리를 빌드하려면 이 프로토콜을 구현하는 클래스를 작성합니다.

프로토콜 정의 및 준수 방법에 대한 문서는 InAppMessaging 라이브러리의 FIRInAppMessagingDisplay.h 파일에 있습니다.

나만의 메시지 표시 라이브러리를 사용하도록 messageDisplayComponent 설정

InAppMessaging에서는 messageDisplayComponent 속성을 사용하여 메시지를 표시할 때 사용할 객체를 결정합니다. 이 속성을 커스텀 메시지 표시 클래스의 객체로 설정하면 Firebase In-App Messaging에서 사용자 라이브러리로 메시지를 렌더링해야 한다는 것을 알 수 있습니다.

InAppMessaging.inAppMessaging().messageDisplayComponent = yourInAppMessagingRenderingInstance