Modifier le comportement des messages de messagerie Firebase In-App

Avec peu ou pas d'effort de codage, Firebase In-App Messaging vous permet de créer, de configurer et de cibler des interactions utilisateur riches, en tirant parti des capacités de Google Analytics prêtes à l'emploi pour lier les événements de messagerie aux caractéristiques, activités et choix réels de l'utilisateur. Avec une intégration supplémentaire du SDK de messagerie Firebase In-App, vous pouvez personnaliser encore plus le comportement des messages dans l'application, en répondant lorsque les utilisateurs interagissent avec les messages, en déclenchant des événements de message en dehors du cadre Analytics et en permettant aux utilisateurs de contrôler le partage de leurs données personnelles liées. aux interactions par messagerie.

Répondre lorsque les utilisateurs interagissent avec les messages intégrés à l'application

Grâce aux actions, vous pouvez utiliser vos messages dans l'application pour diriger les utilisateurs vers un site Web ou un écran spécifique de votre application.

Votre code peut répondre aux interactions de base (clics et licenciements), aux impressions (vues vérifiées de vos messages) et afficher les erreurs enregistrées et confirmées par le SDK. Par exemple, lorsque votre message est composé sous forme de modale de carte, vous souhaiterez peut-être suivre et suivre laquelle des deux URL sur lesquelles l'utilisateur a cliqué sur la carte.

Implémentez un DisplayDelegate pour gérer les interactions avec la carte

Vous pouvez enregistrer un délégué d'affichage de la messagerie dans l'application qui sera appelé chaque fois qu'il y aura une interaction avec un message dans l'application. Pour ce faire, implémentez une classe selon le protocole InAppMessagingDisplayDelegate et définissez-la comme propriété déléguée sur l'instance InAppMessaging .

En supposant encore une fois que vous souhaitez suivre le lien sur lequel un utilisateur a cliqué sur un message de style carte, définissez une classe qui implémente la méthode messageClicked selon le protocole DisplayDelegate , vous donnant ainsi accès au lien cliqué par l'utilisateur.

Rapide

Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst, App Clip ou watchOS.

Reportez-vous à la référence du délégué d'affichage Swift pour connaître l'ensemble des méthodes de rappel qui peuvent être implémentées et leurs paramètres, y compris 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;

Objectif c

Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst, App Clip ou watchOS.

Reportez-vous à la référence du délégué d'affichage Objective-C pour connaître l'ensemble des méthodes de rappel qui peuvent être implémentées et leurs paramètres, y compris 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;

Déclenchez des messages dans l'application par programmation

Par défaut, la messagerie Firebase In-App vous permet de déclencher des messages dans l'application avec des événements Google Analytics pour Firebase, sans intégration supplémentaire. Vous pouvez également déclencher manuellement des événements par programmation avec les déclencheurs programmatiques du SDK de messagerie Firebase In-App.

Dans le composeur de campagne de messagerie In-App, créez une nouvelle campagne ou sélectionnez une campagne existante, et dans l'étape Planification du workflow de composition, notez l'ID d'événement d'un événement de messagerie nouvellement créé ou existant. Une fois noté, instrumentez votre application pour déclencher l'événement par son ID.

Rapide

Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst, App Clip ou watchOS.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objectif c

Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst, App Clip ou watchOS.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

Utiliser les métadonnées personnalisées de la campagne

Dans vos campagnes, vous pouvez spécifier des données personnalisées dans une série de paires clé/valeur. Lorsque les utilisateurs interagissent avec les messages, ces données sont disponibles pour vous permettre, par exemple, d'afficher un code promotionnel.

Rapide

Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst, App Clip ou watchOS.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

Objectif c

Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst, App Clip ou watchOS.
@implementation CardActionFiamDelegate

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

@end

Désactiver temporairement les messages dans l'application

Par défaut, Firebase In-App Messaging affiche des messages chaque fois qu'une condition de déclenchement est remplie, quel que soit l'état actuel d'une application. Si vous souhaitez supprimer l'affichage des messages pour une raison quelconque, par exemple pour éviter d'interrompre une séquence d'écrans de traitement de paiement, utilisez la propriété messageDisplaySuppressed du SDK, comme illustré ici en Objective-C :

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

Définir la propriété sur YES empêche la messagerie Firebase In-App d'afficher des messages, tandis que NO réactive l'affichage des messages. Le SDK réinitialise la propriété sur NO au redémarrage de l'application. Les messages supprimés sont ignorés par le SDK. Leurs conditions de déclenchement doivent être à nouveau remplies lorsque la suppression est désactivée, avant que la messagerie Firebase In-App puisse les afficher.

Activer l'envoi des messages de désinscription

Par défaut, Firebase In-App Messaging envoie automatiquement des messages à tous les utilisateurs d'applications que vous ciblez dans les campagnes de messagerie. Pour transmettre ces messages, le SDK de messagerie Firebase In-App utilise les ID d'installation Firebase pour identifier l'application de chaque utilisateur. Cela signifie que la messagerie In-App doit envoyer les données client, liées à l'ID d'installation, aux serveurs Firebase. Si vous souhaitez donner aux utilisateurs plus de contrôle sur les données qu'ils envoient, désactivez la collecte automatique de données et donnez-leur la possibilité d'approuver le partage de données.

Pour ce faire, vous devez désactiver l'initialisation automatique de la messagerie Firebase In-App et initialiser le service manuellement pour les utilisateurs opt-in :

  1. Désactivez l'initialisation automatique avec une nouvelle clé dans votre fichier Info.plist :

    • Clé : FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Valeur : NO
  2. Initialisez manuellement la messagerie Firebase In-App pour les utilisateurs sélectionnés :

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

    Une fois que vous avez défini automaticDataCollectionEnabled sur YES , la valeur persiste jusqu'au redémarrage de l'application, remplaçant la valeur dans votre Info.plist . Si vous souhaitez à nouveau désactiver l'initialisation, par exemple si un utilisateur se désengage ultérieurement de la collecte, définissez la propriété sur NO .