Ir para o conteúdo

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

  1. Adicione BrazeSDK.brs ao seu app no diretório source.
  2. Adicione BrazeTask.brs e BrazeTask.xml ao seu app no diretório components.
  3. Para usar a interface padrão de mensagens no app, adicione também BrazeDefaultInAppMessage.brs, BrazeDefaultInAppMessage.xml e BrazeDefaultInAppMessageStyles.brs ao diretório components. Esses três arquivos podem ficar em uma subpasta de components, 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 app
  • in_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 cliques
  • in_app_message.extras - Pares de chave/valor
  • in_app_message.image_url - URL da imagem
  • in_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 app
  • in_app_message.duration - Por quanto tempo (em milissegundos) a mensagem deve ser exibida quando dismiss_type for “AUTO_DISMISS”
  • in_app_message.header - O texto do cabeçalho da mensagem no app
  • in_app_message.uri - Quando click_action for “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 fundo
  • in_app_message.close_button_color - Cor do botão de fechar
  • in_app_message.frame_color - A cor da sobreposição da tela de fundo
  • in_app_message.header_text_color - Cor do texto do cabeçalho
  • in_app_message.message_text_color - Cor do texto da mensagem
  • in_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 campo uri deve 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ão
  • buttons[0].text - O texto a ser exibido no botão
  • buttons[0].uri - Quando click_action for “URI”, este valor deve ser exibido
  • buttons[0].bg_color - Cor de fundo do botão
  • buttons[0].border_color - Cor da borda do botão
  • buttons[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.

New Stuff!