Roku SDK 리포지토리 가이드
Braze Roku SDK 정보
Braze Roku SDK를 사용하면 Braze 메시징, 분석, 사용자 인게이지먼트 기능을 애플리케이션에 통합할 수 있습니다.
시작하려면 다음 리소스를 참조하세요.
초기 SDK 통합
Braze Roku SDK는 분석, 세분화, 인게이지먼트에 활용할 수 있는 정보를 보고하는 API를 제공합니다.
1단계: 파일 추가
BrazeSDK.brs를 앱의source디렉토리에 추가합니다.BrazeTask.brs및BrazeTask.xml을 앱의components디렉토리에 추가합니다.- 기본 인앱 메시지 UI를 사용하려면
BrazeDefaultInAppMessage.brs,BrazeDefaultInAppMessage.xml,BrazeDefaultInAppMessageStyles.brs도components디렉토리에 추가합니다. 이 세 파일은 함께 있기만 하면components의 하위 폴더에 넣어도 됩니다.
2단계: 참조 추가
다음 script 요소를 사용하여 메인 씬에 BrazeSDK.brs에 대한 참조를 추가합니다:
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>
3단계: 구성
main.brs에서 CreateScene() 전에 글로벌 노드에 Braze 구성을 설정하여 Scene init() 중에 사용할 수 있도록 합니다:
screen = CreateObject("roSGScreen")
globalNode = screen.getGlobalNode()
config = {}
config_fields = BrazeConstants().BRAZE_CONFIG_FIELDS
config[config_fields.API_KEY] = "YOUR_API_KEY_HERE"
config[config_fields.ENDPOINT] = "YOUR_ENDPOINT_HERE (e.g. https://sdk.iad-01.braze.com/)"
config[config_fields.HEARTBEAT_FREQ_IN_SECONDS] = 5
globalNode.addFields({brazeConfig: config})
screen.CreateScene("MainScene")
4단계: Braze 초기화
Braze 인스턴스를 초기화합니다:
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
인앱 메시지 설정
이미 자체 UI로 인앱 메시지를 렌더링하고 있고 2.3.0 이상으로 업그레이드하는 경우 인앱 메시지 가이드를 참조하세요.
SDK는 기본 UI로 Modal 인앱 메시지(MODAL)를 표시할 수 있습니다. 이 기능은 기본적으로 꺼져 있습니다. 켜려면 BrazeDefaultInAppMessage 파일을 추가하고(1단계) 다음과 같이 설정합니다:
config[config_fields.AUTOMATIC_IAM_DISPLAY] = true
SDK가 렌더 스레드에서 대화 상자를 연결할 수 있도록 메인 Scene에서 getBrazeInstance(m.BrazeTask)를 호출합니다. 기본 대화 상자를 사용하는 경우 BrazeInAppMessage를 관찰하거나 UI를 만들 필요가 없습니다.
슬라이드업, 전체 화면, 스타일이 지정된 Modal, HTML 인앱 메시지는 기본 UI에서 표시되지 않습니다. 이러한 유형의 경우 SDK가 오류를 기록합니다. Roku에서는 HTML 렌더링이 지원되지 않습니다.
인앱 메시지를 직접 렌더링하는 경우 automatic_iam_display를 설정하지 않은 상태로 두고 BrazeTask.BrazeInAppMessage를 관찰합니다:
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")
특정 메시지를 가로채 커스텀 UI를 표시하면서 나머지 메시지는 계속 자동으로 표시하려면 Scene에 다음 함수를 구현하고 Scene XML <interface>에 선언합니다:
function brazeHandleCustomInAppMessage(in_app_message as object) as boolean
' Return true if your app displayed the message, false to use the default SDK dialog.
return false
end function
기본 인앱 메시지 UI를 사용하면서 커스텀 클릭을 처리하려면 Scene에 다음을 구현하고 Scene XML <interface>에 선언합니다. SDK는 클릭을 기록하고 메시지를 닫은 다음 이 함수를 호출하므로, 이후의 탐색에서 포커스를 유지할 수 있습니다. 뒤로 버튼을 누르면 이 함수를 호출하지 않고 메시지가 닫힙니다.
function brazeHandleInAppMessageClick(event as object) as void
in_app_message = event.in_app_message
button = event.button
if button <> invalid
' Button click. Use button.click_action and button.uri.
return
end if
' Body click (no buttons). Use in_app_message.click_action and in_app_message.uri.
end function
UI를 직접 처리하는 경우 핸들러에서 Campaigns가 트리거한 우선순위가 가장 높은 인앱 메시지에 액세스할 수 있습니다:
in_app_message = m.BrazeTask.BrazeInAppMessage
사용 가능한 필드는 다음과 같습니다:
in_app_message.message- 인앱 메시지의 본문 텍스트in_app_message.buttons- 버튼 목록(빈 목록일 수 있음)in_app_message.id- 노출 횟수 또는 클릭을 기록할 때 사용하는 IDin_app_message.extras- 키/값 쌍in_app_message.image_url- 이미지 URLin_app_message.click_action- 버튼이 없을 때, 인앱 메시지가 표시된 상태에서 사용자가 “OK”를 클릭하면 수행할 동작입니다. “URI” 또는 “NONE”일 수 있습니다.in_app_message.dismiss_type- “AUTO_DISMISS” 또는 “SWIPE”일 수 있습니다.in_app_message.display_delay- 인앱 메시지를 표시하기 전에 대기하는 시간(초)in_app_message.duration-dismiss_type이 “AUTO_DISMISS”일 때 메시지를 표시하는 시간(밀리초)in_app_message.header- 인앱 메시지의 헤더 텍스트in_app_message.uri-click_action이 “URI”일 때 표시할 URI
대시보드의 스타일 필드를 사용할 수도 있습니다. 또는 Roku 애플리케이션에서 표준 팔레트를 사용하여 인앱 메시지를 구현하고 스타일을 지정할 수 있습니다.
in_app_message.bg_color- 배경 색상in_app_message.close_button_color- 닫기 버튼 색상in_app_message.frame_color- 배경 화면 오버레이 색상in_app_message.header_text_color- 헤더 텍스트 색상in_app_message.message_text_color- 메시지 텍스트 색상in_app_message.text_align- “START”, “CENTER” 또는 “END”일 수 있습니다.
버튼 필드는 다음과 같습니다:
buttons[0].click_action- “URI”이면uri필드를 엽니다. “NONE”이면 이 버튼이 인앱 메시지를 닫습니다.buttons[0].id- 버튼 자체의 ID 값buttons[0].text- 버튼에 표시할 텍스트buttons[0].uri-click_action이 “URI”일 때 표시할 URIbuttons[0].bg_color- 버튼 배경 색상buttons[0].border_color- 버튼 테두리 색상buttons[0].text_color- 버튼 텍스트 색상
기본 BrazeDefaultInAppMessage UI는 노출 횟수와 클릭을 자동으로 기록합니다.
자체 UI를 구현하는 경우 메시지가 표시될 때 노출 횟수를 기록합니다:
LogInAppMessageImpression(in_app_message.id, brazetask)
사용자가 메시지를 클릭하면 클릭을 기록합니다:
LogInAppMessageClick(in_app_message.id, brazetask)
그런 다음 in_app_message.click_action을 처리합니다.
사용자가 버튼을 클릭하면 버튼 클릭을 기록합니다:
LogInAppMessageButtonClick(inappmessage.id, inappmessage.buttons[selected].id, brazetask)
그런 다음 inappmessage.buttons[selected].click_action을 처리합니다.
인앱 메시지를 처리한 후에는 필드를 지웁니다:
m.BrazeTask.BrazeInAppMessage = invalid
기본 SDK 통합 완료
이제 Braze가 애플리케이션에서 데이터를 수집합니다. 속성, 이벤트, 구매 로깅에 대한 자세한 내용은 Braze 설명서를 참조하세요. 샘플 앱 씬 MainScene.brs에도 API 예제가 포함되어 있습니다.
BrazeDefaultInAppMessage는 SDK의 기본 인앱 메시지 UI입니다. 샘플 앱의 CustomSideBySideInAppMessage.brs는 brazeHandleCustomInAppMessage()를 통해 커스텀 레이아웃을 보여줍니다.
추가 참고 자료
torchietv 디렉토리에는 Braze SDK가 통합된 샘플 앱이 포함되어 있습니다.
리포지토리 세부 정보와 샘플 프로젝트는 https://github.com/braze-inc/braze-roku-sdk를 참조하세요.