Firebase In-App Messaging te permite crear, configurar y segmentar interacciones de usuario enriquecidas con las capacidades de Google Analytics, sin parámetros de configuración adicionales, a fin de vincular eventos de mensajería a las características, actividades y decisiones reales del usuario, con requisitos de programación mínimos o nulos. Con una integración adicional del SDK de Firebase In-App Messaging, puedes personalizar el comportamiento de los mensajes integrados en la app aún más, responder cuando los usuarios interactúan con los mensajes, activar eventos de mensajes fuera del framework de Analytics y permitir que los usuarios controlen el uso compartido de sus datos personales relacionados con las interacciones de los mensajes.
Responde cuando los usuarios interactúen con los mensajes desde la app
Con las acciones, puedes usar los mensajes desde la app para dirigir a los usuarios a un sitio web o una pantalla específica de la aplicación.
Tu código puede responder a interacciones básicas (como clics y descartes), impresiones (vistas verificadas de los mensajes) y errores de visualización registrados y confirmados por el SDK. Por ejemplo, si el mensaje se redactó como un diálogo modal en formato de tarjeta, es posible que quieras hacer un seguimiento para saber en cuál de las dos URLs de la tarjeta hizo clic el usuario.
Implementa DisplayDelegate para controlar las interacciones de las tarjetas
Puedes registrar un delegado de visualización de mensajes desde la app que recibirá llamadas cada vez que se interactúe con ellos. Deberás implementar una clase según el protocolo InAppMessagingDisplayDelegate
y configurarlo como la propiedad delegada de la instancia InAppMessaging
.
Si quieres hacer un seguimiento del vínculo del mensaje estilo tarjeta en el que hizo clic el usuario, define una clase que implemente el método messageClicked
mediante el protocolo
DisplayDelegate
, que proporciona acceso al
vínculo visitado por el usuario.
Swift
Consulta la referencia del delegado de visualización de Swift para conocer los métodos de devolución de llamada que se pueden implementar y sus parámetros, incluido 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;
Objective-C
Consulta la referencia del delegado de visualización de Objective-C para conocer los métodos de devolución de llamada que se pueden implementar y sus parámetros, incluido 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;
Activa los mensajes desde la app de manera programática
De forma predeterminada, Firebase In-App Messaging te permite activar los mensajes desde la app mediante los eventos de Google Analytics para Firebase sin integración adicional. También puedes activar manualmente eventos de manera programática mediante los activadores programáticos del SDK de Firebase In-App Messaging.
En el redactor de campañas de In‑App Messaging, crea una campaña nueva o selecciona una existente. Luego, en el paso de programación del flujo de trabajo del redactor, anota el ID de un evento de mensajería nuevo o existente. Una vez que lo anotes, instrumenta tu app para que active el evento según su ID.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Usa metadatos personalizados de la campaña
En tus campañas, puedes especificar datos personalizados en una serie de pares clave-valor. Cuando los usuarios interactúan con los mensajes, los datos te permiten, por ejemplo, mostrar un código promocional.
Swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation CardActionFiamDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
appData = inAppMessage.appData
// ...
}
@end
Inhabilita temporalmente los mensajes desde la app
De forma predeterminada, Firebase In-App Messaging renderiza los mensajes cuando se cumple una condición de activación, sin importar el estado actual de la app. Si quieres evitar que aparezcan mensajes por algún motivo (por ejemplo, para no interrumpir una secuencia de pantallas de procesamiento de pagos), usa la propiedad messageDisplaySuppressed
del SDK, como en este ejemplo de Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Puedes evitar que Firebase In-App Messaging muestre mensajes si configuras la propiedad como YES
. Por el contrario, si la configuras como NO
, se volverán a mostrar. El SDK restablece la propiedad en NO
cuando se reinicia la app. El SDK ignora los mensajes suprimidos. Cuando la supresión está desactivada, se deben volver a cumplir las condiciones de activación correspondientes para que Firebase In-App Messaging pueda mostrar los mensajes.
Permite que los usuarios rechacen la entrega de mensajes
Según la configuración predeterminada, Firebase In-App Messaging entrega mensajes automáticamente a todos los usuarios de la app a los que segmentes en las campañas de mensajes. Para ello, el SDK de Firebase In-App Messaging usa los IDs de instalación de Firebase para identificar la app de cada usuario. Esto significa que In-App Messaging debe enviar los datos del cliente, vinculados con el ID de instalación, a los servidores de Firebase. Si quieres darles más control a los usuarios sobre los datos que envían, puedes inhabilitar la recopilación automática de datos y permitirles que aprueben el uso compartido de datos.
Para ello, debes inhabilitar la inicialización automática de Firebase In-App Messaging y, luego, inicializar el servicio de forma manual para los usuarios que aceptaron, como se indica a continuación:
Agrega una clave nueva al archivo
Info.plist
para desactivar la inicialización automática, como se indica a continuación:- Clave:
FirebaseInAppMessagingAutomaticDataCollectionEnabled
- Valor:
NO
- Clave:
Inicializa Firebase In-App Messaging para los usuarios seleccionados de forma manual:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
Cuando configuras la clave
automaticDataCollectionEnabled
comoYES
, el valor persiste tras reiniciar la app y anula el valor que definiste en el archivoInfo.plist
. Si quieres volver a inhabilitar la inicialización, por ejemplo, si un usuario deja de participar en la recopilación más adelante, configura la propiedad comoNO
.