Modificar el comportamiento de los mensajes de mensajería dentro de la aplicación de Firebase

Con poco o ningún esfuerzo de codificación, Firebase In-App Messaging le permite crear, configurar y orientar interacciones enriquecidas de los usuarios, aprovechando las capacidades de Google Analytics listas para usar para vincular los eventos de mensajería con las características, actividades y elecciones reales del usuario. Con alguna integración adicional del SDK de mensajería en la aplicación de Firebase, puedes personalizar aún más el comportamiento de los mensajes en la aplicación, respondiendo cuando los usuarios interactúan con los mensajes, activando eventos de mensajes fuera del marco de Analytics y permitiendo a los usuarios controlar el intercambio de sus datos personales relacionados. a las interacciones de mensajería.

Responder cuando los usuarios interactúan con mensajes dentro de la aplicación

Con acciones, puede usar sus mensajes dentro de la aplicación para dirigir a los usuarios a un sitio web o una pantalla específica en su aplicación.

Su código puede responder a interacciones básicas (clics y rechazos), a impresiones (vistas verificadas de sus mensajes) y a mostrar errores registrados y confirmados por el SDK. Por ejemplo, cuando su mensaje está compuesto como un modal de Tarjeta, es posible que desee realizar un seguimiento de en cuál de las dos URL hizo clic el usuario en la Tarjeta.

Implementar un DisplayDelegate para manejar las interacciones con tarjetas

Puede registrar un delegado de visualización de mensajes en la aplicación al que se llamará cada vez que haya alguna interacción con un mensaje en la aplicación. Para hacer esto, implemente una clase según el protocolo InAppMessagingDisplayDelegate y configúrela como propiedad delegada en la instancia InAppMessaging .

Suponiendo nuevamente que desea rastrear en qué enlace hizo clic un usuario en un mensaje estilo Tarjeta, defina una clase que implemente el método messageClicked según el protocolo DisplayDelegate , brindándole así acceso al enlace en el que hizo clic el usuario.

Rápido

Nota: Este producto no está disponible en dispositivos macOS, Mac Catalyst, App Clip o watchOS.

Consulte la referencia del delegado de visualización de Swift para conocer el conjunto de 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;

C objetivo

Nota: Este producto no está disponible en dispositivos macOS, Mac Catalyst, App Clip o watchOS.

Consulte la referencia del delegado de visualización de Objective-C para conocer el conjunto de 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;

Activar mensajes dentro de la aplicación mediante programación

Firebase In-App Messaging de forma predeterminada le permite activar mensajes dentro de la aplicación con Google Analytics para eventos de Firebase, sin integración adicional. También puedes activar eventos manualmente mediante programación con los activadores programáticos del SDK de Firebase In-App Messaging.

En el compositor de campañas de mensajería en la aplicación, cree una nueva campaña o seleccione una campaña existente y, en el paso Programación del flujo de trabajo del compositor, anote el ID de evento de un evento de mensajería existente o recién creado. Una vez anotado, instrumente su aplicación para activar el evento por su ID.

Rápido

Nota: Este producto no está disponible en dispositivos macOS, Mac Catalyst, App Clip o watchOS.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

C objetivo

Nota: Este producto no está disponible en dispositivos macOS, Mac Catalyst, App Clip o watchOS.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

Utilice metadatos personalizados de campaña

En sus campañas, puede especificar datos personalizados en una serie de pares clave/valor. Cuando los usuarios interactúan con los mensajes, estos datos están disponibles para que usted, por ejemplo, muestre un código de promoción.

Rápido

Nota: Este producto no está disponible en dispositivos macOS, Mac Catalyst, App Clip o watchOS.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
	// Get data bundle from the inapp message
	let appData = inAppMessage.appData
	// ...
    }
}

C objetivo

Nota: Este producto no está disponible en dispositivos macOS, Mac Catalyst, App Clip o watchOS.
@implementation CardActionFiamDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
	appData = inAppMessage.appData
	// ...
}

@end

Desactivar temporalmente los mensajes dentro de la aplicación

De forma predeterminada, Firebase In-App Messaging genera mensajes cada vez que se cumple una condición de activación, independientemente del estado actual de una aplicación. Si desea suprimir la visualización de mensajes por algún motivo, por ejemplo, para evitar interrumpir una secuencia de pantallas de procesamiento de pagos, use la propiedad messageDisplaySuppressed del SDK como se ilustra aquí en Objective-C:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

Establecer la propiedad en YES evita que Firebase In-App Messaging muestre mensajes, mientras que NO vuelve a habilitar la visualización de mensajes. El SDK restablece la propiedad a NO al reiniciar la aplicación. El SDK ignora los mensajes suprimidos. Sus condiciones de activación deben cumplirse nuevamente mientras la supresión está desactivada, antes de que Firebase In-App Messaging pueda mostrarlas.

Habilitar la entrega de mensajes de exclusión voluntaria

De forma predeterminada, Firebase In-App Messaging envía mensajes automáticamente a todos los usuarios de la aplicación a los que se dirigen las campañas de mensajería. Para entregar esos mensajes, el SDK de mensajería en la aplicación de Firebase utiliza los ID de instalación de Firebase para identificar la aplicación de cada usuario. Esto significa que la mensajería dentro de la aplicación debe enviar datos del cliente, vinculados al ID de instalación, a los servidores de Firebase. Si desea darles a los usuarios más control sobre los datos que envían, desactive la recopilación automática de datos y déles la oportunidad de aprobar el intercambio de datos.

Para hacer eso, debe deshabilitar la inicialización automática de Firebase In-App Messaging e inicializar el servicio manualmente para los usuarios habilitados:

  1. Desactive la inicialización automática con una nueva clave en su archivo Info.plist :

    • Clave: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Valor: NO
  2. Inicialice manualmente la mensajería dentro de la aplicación de Firebase para usuarios seleccionados:

    // Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO
    // in Info.plist
    [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
    
    

    Una vez que configura automaticDataCollectionEnabled en YES , el valor persiste durante el reinicio de la aplicación, anulando el valor en su Info.plist . Si desea deshabilitar la inicialización nuevamente, por ejemplo, si un usuario opta por no participar en la recopilación más adelante, establezca la propiedad en NO .