Ir para o conteúdo


Envio de mensagens no app

Tipos de gatilho

Nosso produto de In-App Messages permite disparar a exibição de mensagens no app como resultado de diversos tipos de evento: Any Purchase, Specific Purchase, Session Start, Custom Event e Push Click. Além disso, os gatilhos Specific Purchase e Custom Event contam com filtros robustos de propriedades.

Semântica de entrega

Todas as mensagens no app para as quais um usuário é elegível são entregues ao dispositivo do usuário no início da sessão. Quando duas mensagens no app são disparadas por um mesmo evento, a mensagem no app com maior prioridade será exibida. Para saber mais sobre a semântica de início de sessão do SDK, leia sobre nosso ciclo de vida da sessão. Ao serem entregues, o SDK fará o pré-carregamento dos ativos para que estejam disponíveis imediatamente no momento do disparo, minimizando a latência de exibição.

Quando um evento-gatilho tem mais de uma mensagem no app elegível associada a ele, apenas a mensagem no app com a maior prioridade será entregue.

Pode haver alguma latência para mensagens no app que são exibidas imediatamente na entrega (início de sessão, clique de push) devido aos ativos não terem sido pré-carregados.

Intervalo mínimo de tempo entre disparos

Por padrão, limitamos a frequência de In-App Messages para uma vez a cada 30 segundos, a fim de proporcionar uma experiência de qualidade ao usuário.

Você pode substituir esse valor por meio do ABKMinimumTriggerTimeIntervalKey dentro do parâmetro appboyOptions passado para startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions:. Defina o ABKMinimumTriggerTimeIntervalKey com o valor inteiro desejado como o tempo mínimo em segundos entre In-App Messages:

// Sets the minimum trigger time interval to 5 seconds
[Appboy startWithApiKey:@"YOUR-API-KEY"
          inApplication:application
      withLaunchOptions:options
      withAppboyOptions:@{ ABKMinimumTriggerTimeIntervalKey : @(5) }];
Appboy.start(withApiKey: "YOUR-API-KEY", in:application, withLaunchOptions:launchOptions, withAppboyOptions:[ABKMinimumTriggerTimeIntervalKey : 5])

Falha ao encontrar um gatilho correspondente

Quando a Braze não encontra um gatilho correspondente para um determinado evento, ela chama o método noMatchingTriggerForEvent:name: do ABKInAppMessageControllerDelegate. Implemente esse método na sua classe que adota o protocolo de delegado para lidar com esse cenário.

Entrega local de mensagens no app

A pilha de mensagens no app

Exibindo mensagens no app

Quando um usuário é elegível para receber uma mensagem no app, o ABKInAppMessageController receberá a mensagem no app mais recente da pilha de mensagens no app. A pilha mantém apenas mensagens no app armazenadas em memória e é limpa entre inicializações do app a partir do modo suspenso.

Adicionando mensagens no app à pilha

Os usuários são elegíveis para receber uma mensagem no app nas seguintes situações:

  • Um evento-gatilho de mensagem no app é disparado
  • Evento de início de sessão
  • O app é aberto a partir de uma notificação por push

Mensagens no app disparadas são colocadas na pilha quando seu evento-gatilho é disparado. Se várias mensagens no app estiverem na pilha esperando para serem exibidas, a Braze exibirá primeiro a mensagem no app recebida mais recentemente (último a entrar, primeiro a sair).

Retornando mensagens no app à pilha

Uma mensagem no app disparada pode ser retornada à pilha nas seguintes situações:

  • A mensagem no app é disparada quando o app está em segundo plano.
  • Outra mensagem no app está visível no momento.
  • O método delegado de UI descontinuado beforeInAppMessageDisplayed:withKeyboardIsUp: não foi implementado e o teclado está sendo exibido no momento.
  • O método delegado beforeInAppMessageDisplayed: ou o método delegado de UI descontinuado beforeInAppMessageDisplayed:withKeyboardIsUp: retornou ABKDisplayInAppMessageLater.

Descartando mensagens no app

Uma mensagem no app disparada será descartada nas seguintes situações:

  • O método delegado beforeInAppMessageDisplayed: ou o método delegado de UI descontinuado beforeInAppMessageDisplayed:withKeyboardIsUp: retornou ABKDiscardInAppMessage.
  • O ativo (imagem ou arquivo ZIP) da mensagem no app falhou ao ser baixado.
  • A mensagem no app está pronta para ser exibida, mas excedeu o tempo limite de duração.
  • A orientação do dispositivo não corresponde à orientação da mensagem no app disparada.
  • A mensagem no app é uma mensagem no app em tela cheia, mas não possui imagem.
  • A mensagem no app é uma mensagem no app modal somente com imagem, mas não possui imagem.

Enfileirar manualmente a exibição de mensagens no app

Se você deseja exibir uma mensagem no app em outros momentos dentro do seu app, pode exibir manualmente a mensagem no app do topo da pilha chamando o seguinte método:

[[Appboy sharedInstance].inAppMessageController displayNextInAppMessage];
Appboy.sharedInstance()!.inAppMessageController.displayNextInAppMessage()

Criação e exibição de mensagens no app em tempo real

Mensagens no app também podem ser criadas localmente dentro do app e exibidas pela Braze. Isso é particularmente útil para exibir mensagens que você deseja disparar dentro do app em tempo real. A Braze não oferece suporte a análise de dados em mensagens no app criadas localmente.

  ABKInAppMessageSlideup *customInAppMessage = [[ABKInAppMessageSlideup alloc] init];
  customInAppMessage.message = @"YOUR_CUSTOM_SLIDEUP_MESSAGE";
  customInAppMessage.duration = 2.5;
  customInAppMessage.extras = @{@"key" : @"value"};
  [[Appboy sharedInstance].inAppMessageController addInAppMessage:customInAppMessage];
  let customInAppMessage = ABKInAppMessageSlideup.init()
  customInAppMessage.message = "YOUR_CUSTOM_SLIDEUP_MESSAGE"
  customInAppMessage.duration = 2.5
  customInAppMessage.extras = ["key": "value"]
  Appboy.sharedInstance()!.inAppMessageController.add(customInAppMessage)
New Stuff!