Guia do repositório do Roku SDK
Sobre o Roku SDK da Braze
O Roku SDK da Braze ajuda você a integrar os recursos de envio de mensagens, análise de dados e engajamento de usuários da Braze ao seu aplicativo.
Para começar, consulte os seguintes recursos:
Integração inicial do SDK
O Roku SDK da Braze oferece uma API para reportar informações que você pode usar para análise de dados, segmentação e engajamento.
Etapa 1: Adicione os arquivos
- Adicione
BrazeSDK.brsao seu app no diretóriosource. - Adicione
BrazeTask.brseBrazeTask.xmlao seu app no diretóriocomponents. - Para usar a interface padrão de mensagens no app, adicione também
BrazeDefaultInAppMessage.brs,BrazeDefaultInAppMessage.xmleBrazeDefaultInAppMessageStyles.brsao diretóriocomponents. Esses três arquivos podem ficar em uma subpasta decomponents, desde que permaneçam juntos.
Etapa 2: Adicione as referências
Adicione uma referência a BrazeSDK.brs na sua cena principal usando o seguinte elemento script:
<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>
Etapa 3: Configure
Em main.brs, defina a configuração da Braze no nó global antes de CreateScene() para que ela esteja disponível durante o init() da 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")
Etapa 4: Inicialize a Braze
Inicialize a instância da Braze:
m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)
Configuração de mensagens no app
Se você já renderiza mensagens no app com sua própria interface e está fazendo upgrade para a versão 2.3.0 ou posterior, consulte o guia de mensagens no app.
O SDK pode exibir mensagens no app modais (MODAL) com sua interface padrão. Essa opção vem desativada por padrão. Para ativá-la, adicione os arquivos BrazeDefaultInAppMessage (Etapa 1) e defina:
config[config_fields.AUTOMATIC_IAM_DISPLAY] = true
Chame getBrazeInstance(m.BrazeTask) a partir da sua Scene principal para que o SDK possa anexar a caixa de diálogo na thread de renderização. Você não precisa observar BrazeInAppMessage nem criar uma interface para a caixa de diálogo padrão.
Mensagens no app do tipo slideup, tela cheia, modal estilizado e HTML não são exibidas pela interface padrão. O SDK registra um erro para esses tipos. A renderização de HTML não é suportada no Roku.
Se você renderiza as mensagens no app por conta própria, deixe automatic_iam_display sem definir e observe BrazeTask.BrazeInAppMessage:
m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")
Para interceptar uma mensagem específica e mostrar uma interface personalizada, mantendo a exibição automática para todas as outras, implemente esta função na sua Scene (e declare-a na <interface> do XML da 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 tratar um clique personalizado e continuar usando a interface padrão de mensagens no app, implemente esta função na sua Scene (e declare-a na <interface> do XML da Scene). O SDK registra o clique, fecha a mensagem e então chama essa função, para que qualquer navegação mantenha o foco. O botão Voltar dispensa a mensagem sem chamar a função.
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
Quando você cuida da interface por conta própria, seu handler tem acesso à mensagem no app de maior prioridade disparada pelas suas Campaigns:
in_app_message = m.BrazeTask.BrazeInAppMessage
Os campos disponíveis incluem:
in_app_message.message- O texto do corpo da mensagem no appin_app_message.buttons- Lista de botões (pode ser uma lista vazia).in_app_message.id- ID a ser usado ao registrar impressões ou cliquesin_app_message.extras- Pares de chave/valorin_app_message.image_url- URL da imagemin_app_message.click_action- Quando não há botões, define o que deve acontecer quando o usuário clica em “OK” com a mensagem no app exibida. Pode ser “URI” ou “NONE”.in_app_message.dismiss_type- Pode ser “AUTO_DISMISS” ou “SWIPE”in_app_message.display_delay- Quanto tempo (em segundos) esperar antes de exibir a mensagem no appin_app_message.duration- Por quanto tempo (em milissegundos) a mensagem deve ser exibida quandodismiss_typefor “AUTO_DISMISS”in_app_message.header- O texto do cabeçalho da mensagem no appin_app_message.uri- Quandoclick_actionfor “URI”, este valor deve ser exibido
Você também pode usar campos de estilo definidos no dashboard. Como alternativa, você pode implementar a mensagem no app e estilizá-la no seu aplicativo Roku usando uma paleta padrão.
in_app_message.bg_color- Cor de fundoin_app_message.close_button_color- Cor do botão de fecharin_app_message.frame_color- A cor da sobreposição da tela de fundoin_app_message.header_text_color- Cor do texto do cabeçalhoin_app_message.message_text_color- Cor do texto da mensagemin_app_message.text_align- Pode ser “START”, “CENTER” ou “END”
Os campos de botão incluem:
buttons[0].click_action- Pode ser “URI” para indicar que o campourideve ser aberto. Pode ser “NONE” para indicar que este botão deve fechar a mensagem no app.buttons[0].id- O valor do ID do próprio botãobuttons[0].text- O texto a ser exibido no botãobuttons[0].uri- Quandoclick_actionfor “URI”, este valor deve ser exibidobuttons[0].bg_color- Cor de fundo do botãobuttons[0].border_color- Cor da borda do botãobuttons[0].text_color- Cor do texto do botão
A interface padrão BrazeDefaultInAppMessage registra impressões e cliques para você.
Se você implementar sua própria interface, registre uma impressão quando a mensagem for exibida:
LogInAppMessageImpression(in_app_message.id, brazetask)
Quando um usuário clicar na mensagem, registre um clique:
LogInAppMessageClick(in_app_message.id, brazetask)
Depois, processe in_app_message.click_action.
Se o usuário clicar em um botão, registre o clique no botão:
LogInAppMessageButtonClick(inappmessage.id, inappmessage.buttons[selected].id, brazetask)
Depois, processe inappmessage.buttons[selected].click_action.
Depois de processar a mensagem no app, limpe o campo:
m.BrazeTask.BrazeInAppMessage = invalid
Integração básica do SDK concluída
Agora a Braze coleta dados do seu aplicativo. Para saber mais sobre como registrar atributos, eventos e compras, consulte a documentação da Braze. A cena MainScene.brs do app de exemplo também contém exemplos de API.
BrazeDefaultInAppMessage é a interface padrão de mensagens no app do SDK. O arquivo CustomSideBySideInAppMessage.brs no app de exemplo mostra um layout personalizado usando brazeHandleCustomInAppMessage().
Referência adicional
O diretório torchietv contém um app de exemplo com o SDK da Braze integrado.
Para ver detalhes do repositório e projetos de exemplo, consulte https://github.com/braze-inc/braze-roku-sdk.