Guía del repositorio del SDK de Roku
Acerca del SDK de Roku de Braze
El SDK de Roku de Braze te ayuda a integrar las capacidades de mensajería, análisis y participación de los usuarios de Braze en tu aplicación.
Para empezar, consulta los siguientes recursos:
Integración inicial del SDK
El SDK de Roku de Braze te proporciona una API para informar de datos que puedes utilizar para análisis, segmentación y participación.
Paso 1: Añade los archivos
- Añade
BrazeSDK.brsa tu aplicación en el directoriosource. - Añade
BrazeTask.brsyBrazeTask.xmla tu aplicación en el directoriocomponents. - Para usar la interfaz de usuario predeterminada de mensajes dentro de la aplicación, añade también
BrazeDefaultInAppMessage.brs,BrazeDefaultInAppMessage.xmlyBrazeDefaultInAppMessageStyles.brsal directoriocomponents. Estos tres archivos pueden ir en una subcarpeta decomponents, siempre que permanezcan juntos.
Paso 2: Añade las referencias
Añade una referencia a BrazeSDK.brs en tu escena principal utilizando el siguiente elemento script:
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>
Paso 3: Configura
En main.brs, establece la configuración de Braze en el nodo global antes de CreateScene() para que esté disponible durante el init() de la Scene:
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")
Paso 4: Inicializa Braze
Inicializa la instancia de Braze:
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
Configuración de mensajes dentro de la aplicación
Si ya renderizas los mensajes dentro de la aplicación con tu propia interfaz de usuario y vas a actualizar a la versión 2.3.0 o posterior, consulta la guía de mensajes dentro de la aplicación.
El SDK puede mostrar mensajes dentro de la aplicación modales (MODAL) con su interfaz de usuario predeterminada. Esta opción está desactivada de forma predeterminada. Para activarla, añade los archivos BrazeDefaultInAppMessage (paso 1) y establece:
config[config_fields.AUTOMATIC_IAM_DISPLAY] = true
Llama a getBrazeInstance(m.BrazeTask) desde tu Scene principal para que el SDK pueda adjuntar el diálogo en el subproceso de renderizado. No necesitas observar BrazeInAppMessage ni crear una interfaz de usuario para el diálogo predeterminado.
La interfaz de usuario predeterminada no muestra los mensajes dentro de la aplicación de tipo deslizamiento hacia arriba, completos, modales con estilo ni HTML. El SDK registra un error para esos tipos. El renderizado HTML no es compatible con Roku.
Si renderizas tú mismo los mensajes dentro de la aplicación, deja automatic_iam_display sin establecer y observa BrazeTask.BrazeInAppMessage:
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")
Para interceptar un mensaje específico y mostrar una interfaz de usuario personalizada sin dejar de usar la visualización automática para todo lo demás, implementa esta función en tu Scene (y declárala en el <interface> del XML de la Scene):
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
Para gestionar un clic personalizado sin dejar de usar la interfaz de usuario predeterminada de IAM, implementa esto en tu Scene (y declárala en el <interface> del XML de la Scene). El SDK registra el clic, cierra el mensaje y luego llama a esta función para que cualquier navegación pueda conservar el foco. El botón Atrás descarta el mensaje sin llamarla.
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
Cuando gestionas tú mismo la interfaz de usuario, tu controlador tiene acceso al mensaje dentro de la aplicación de mayor prioridad desencadenado por tus Campaigns:
in_app_message = m.BrazeTask.BrazeInAppMessage
Entre los campos disponibles se incluyen:
in_app_message.message- El texto del cuerpo del mensaje dentro de la aplicaciónin_app_message.buttons- Lista de botones (puede ser una lista vacía).in_app_message.id- ID que se utiliza al registrar impresiones o clicsin_app_message.extras- Pares clave-valorin_app_message.image_url- URL de la imagenin_app_message.click_action- Cuando no hay botones, indica lo que debe ocurrir cuando el usuario hace clic en “OK” mientras se muestra el IAM. Puede ser “URI” o “NONE”.in_app_message.dismiss_type- Puede ser “AUTO_DISMISS” o “SWIPE”in_app_message.display_delay- Cuánto tiempo (en segundos) esperar antes de mostrar el mensaje dentro de la aplicaciónin_app_message.duration- Cuánto tiempo (en milisegundos) debe mostrarse el mensaje cuandodismiss_typees “AUTO_DISMISS”in_app_message.header- El texto del encabezado del mensaje dentro de la aplicaciónin_app_message.uri- Cuandoclick_actiones “URI”, esto es lo que debe mostrarse
También puedes utilizar los campos de estilo del panel. Como alternativa, puedes implementar el mensaje dentro de la aplicación y darle estilo en tu aplicación de Roku con una paleta estándar.
in_app_message.bg_color- Color de fondoin_app_message.close_button_color- Color del botón de cierrein_app_message.frame_color- El color de la superposición de la pantalla de fondoin_app_message.header_text_color- Color del texto del encabezadoin_app_message.message_text_color- Color del texto del mensajein_app_message.text_align- Puede ser “START”, “CENTER” o “END”
Entre los campos de los botones se incluyen:
buttons[0].click_action- Puede ser “URI” para indicar que se abra el campouri. Puede ser “NONE” para indicar que este botón debe cerrar el mensaje dentro de la aplicación.buttons[0].id- El valor del ID del propio botónbuttons[0].text- El texto que se muestra en el botónbuttons[0].uri- Cuandoclick_actiones “URI”, esto es lo que debe mostrarsebuttons[0].bg_color- Color de fondo del botónbuttons[0].border_color- Color del borde del botónbuttons[0].text_color- Color del texto del botón
La interfaz de usuario predeterminada BrazeDefaultInAppMessage registra las impresiones y los clics por ti.
Si implementas tu propia interfaz de usuario, registra una impresión cuando se muestre el mensaje:
LogInAppMessageImpression(in_app_message.id, brazetask)
Cuando un usuario haga clic en el mensaje, registra un clic:
LogInAppMessageClick(in_app_message.id, brazetask)
Luego procesa in_app_message.click_action.
Si el usuario hace clic en un botón, registra el clic en el botón:
LogInAppMessageButtonClick(inappmessage.id, inappmessage.buttons[selected].id, brazetask)
Luego procesa inappmessage.buttons[selected].click_action.
Después de procesar el mensaje dentro de la aplicación, borra el campo:
m.BrazeTask.BrazeInAppMessage = invalid
Integración básica del SDK completada
Braze ya recopila datos de tu aplicación. Para obtener más información sobre el registro de atributos, eventos y compras, consulta la documentación de Braze. La escena de la aplicación de ejemplo MainScene.brs también contiene ejemplos de API.
BrazeDefaultInAppMessage es la interfaz de usuario predeterminada de mensajes dentro de la aplicación del SDK. CustomSideBySideInAppMessage.brs en la aplicación de ejemplo muestra un diseño personalizado mediante brazeHandleCustomInAppMessage().
Referencia adicional
El directorio torchietv contiene una aplicación de ejemplo con el SDK de Braze integrado.
Para obtener información sobre el repositorio y proyectos de ejemplo, consulta https://github.com/braze-inc/braze-roku-sdk.