Com pouco ou nenhum esforço de codificação, o Firebase In-App Messaging permite criar, configurar e direcionar interações avançadas do usuário, aproveitando os recursos prontos do Google Analytics para vincular eventos de mensagens às características, atividades e escolhas reais do usuário. Com alguma integração adicional do SDK de mensagens no aplicativo do Firebase, você pode personalizar ainda mais o comportamento das mensagens no aplicativo, respondendo quando os usuários interagem com as mensagens, acionando eventos de mensagens fora da estrutura do Analytics e permitindo que os usuários controlem o compartilhamento de seus dados pessoais relacionados. para interações de mensagens.
Responder quando os usuários interagem com mensagens no aplicativo
Com ações, você pode usar mensagens no aplicativo para direcionar os usuários a um site ou a uma tela específica do seu aplicativo.
Seu código pode responder a interações básicas (cliques e dispensas), a impressões (visualizações verificadas de suas mensagens) e exibir erros registrados e confirmados pelo SDK. Por exemplo, quando sua mensagem é composta como um modal de Cartão, você pode querer rastrear e acompanhar em qual dos dois URLs o usuário clicou no Cartão.
Implemente um DisplayDelegate para lidar com interações de cartão
Você pode registrar um delegado de exibição de mensagens no aplicativo que será chamado sempre que houver qualquer interação com uma mensagem no aplicativo. Para fazer isso, implemente uma classe de acordo com o protocolo InAppMessagingDisplayDelegate
e defina-a como a propriedade delegada na instância InAppMessaging
.
Supondo novamente que você deseja rastrear em qual link um usuário clicou em uma mensagem estilo cartão, defina uma classe que implemente o método messageClicked
de acordo com o protocolo DisplayDelegate
, fornecendo assim acesso ao link clicado pelo usuário.
Rápido
Consulte a referência de delegado de exibição do Swift para o conjunto de métodos de retorno de chamada que podem ser implementados e seus parâmetros, incluindo InAppMessagingAction.
// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
dismissType: FIRInAppMessagingDismissType) {
// ...
}
func impressionDetected(for inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func displayError(for inAppMessage: InAppMessagingDisplayMessage, error: Error) {
// ...
}
}
// In AppDelegate.swift
// Register the delegate with the InAppMessaging instance
let myFiamDelegate = CardActionFiamDelegate()
InAppMessaging.inAppMessaging().delegate = myFiamDelegate;
Objetivo-C
Consulte a referência de delegado de exibição do Objective-C para o conjunto de métodos de retorno de chamada que podem ser implementados e seus parâmetros, incluindo FIRInAppMessagingDisplayMessage.
// In CardActionFiamDelegate.h
@interface CardActionFiamDelegate : NSObject <FIRInAppMessagingDisplayDelegate>
@end
// In CardActionFiamDelegate.m
@implementation CardActionFiamDelegate
- (void)displayErrorForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
error:(nonnull NSError *)error {
// ...
}
- (void)impressionDetectedForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
// ...
}
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
// ...
}
- (void)messageDismissed:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
dismissType:(FIRInAppMessagingDismissType)dismissType {
// ...
}
@end
// In AppDelegate.m
CardActionFiamDelegate *myFiamDelegate = [CardActionFiamDelegate new];
[FIRInAppMessaging inAppMessaging].delegate = myFiamDelegate;
Acione mensagens no aplicativo programaticamente
Por padrão, o Firebase In-App Messaging permite acionar mensagens no aplicativo com eventos do Google Analytics para Firebase, sem integração adicional. Você também pode acionar eventos manualmente de forma programática com os acionadores programáticos do SDK do Firebase In-App Messaging.
No compositor de campanha de mensagens no aplicativo, crie uma nova campanha ou selecione uma campanha existente e, na etapa Agendamento do fluxo de trabalho do compositor, anote o ID do evento de um evento de mensagens existente ou recém-criado. Depois de anotado, instrumente seu aplicativo para acionar o evento por seu ID.
Rápido
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objetivo-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Use metadados personalizados de campanha
Em suas campanhas, você pode especificar dados personalizados em uma série de pares chave/valor. Quando os usuários interagem com as mensagens, esses dados ficam disponíveis para você, por exemplo, exibir um código promocional.
Rápido
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objetivo-C
@implementation CardActionFiamDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
appData = inAppMessage.appData
// ...
}
@end
Desative temporariamente as mensagens no aplicativo
Por padrão, o Firebase In-App Messaging renderiza mensagens sempre que uma condição de acionamento é atendida, independentemente do estado atual do aplicativo. Se você quiser suprimir a exibição de mensagens por qualquer motivo, por exemplo, para evitar a interrupção de uma sequência de telas de processamento de pagamentos, use a propriedade messageDisplaySuppressed
do SDK, conforme ilustrado aqui em Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Definir a propriedade como YES
evita que o Firebase In-App Messaging exiba mensagens, enquanto NO
reativa a exibição de mensagens. O SDK redefine a propriedade para NO
na reinicialização do aplicativo. As mensagens suprimidas são ignoradas pelo SDK. Suas condições de acionamento devem ser atendidas novamente enquanto a supressão estiver desativada, antes que o Firebase In-App Messaging possa exibi-las.
Ativar entrega de mensagem de cancelamento
Por padrão, o Firebase In-App Messaging entrega mensagens automaticamente a todos os usuários do aplicativo que você segmenta em campanhas de mensagens. Para entregar essas mensagens, o SDK de mensagens no aplicativo do Firebase usa IDs de instalação do Firebase para identificar o aplicativo de cada usuário. Isso significa que o In-App Messaging deve enviar dados do cliente, vinculados ao ID de instalação, aos servidores Firebase. Se quiser dar aos usuários mais controle sobre os dados que enviam, desative a coleta automática de dados e dê a eles a oportunidade de aprovar o compartilhamento de dados.
Para fazer isso, você deve desativar a inicialização automática do Firebase In-App Messaging e inicializar o serviço manualmente para usuários que optam por participar:
Desative a inicialização automática com uma nova chave no arquivo
Info.plist
:- Chave:
FirebaseInAppMessagingAutomaticDataCollectionEnabled
- Valor:
NO
- Chave:
Inicialize manualmente o Firebase In-App Messaging para usuários selecionados:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
Depois de definir
automaticDataCollectionEnabled
comoYES
, o valor persiste durante as reinicializações do aplicativo, substituindo o valor em seuInfo.plist
. Se desejar desabilitar a inicialização novamente, por exemplo, se um usuário optar por sair da coleta posteriormente, defina a propriedade comoNO
.