Ändern Sie das Verhalten von Firebase In-App Messaging-Nachrichten

Mit Firebase In-App Messaging können Sie mit geringem oder gar keinem Programmieraufwand umfangreiche Benutzerinteraktionen erstellen, konfigurieren und gezielt ansprechen und dabei die sofort einsatzbereiten Funktionen von Google Analytics nutzen, um Messaging-Ereignisse mit tatsächlichen Benutzereigenschaften, -aktivitäten und -auswahlmöglichkeiten zu verknüpfen. Mit einer zusätzlichen Firebase In-App Messaging SDK-Integration können Sie das Verhalten von In-App-Nachrichten noch weiter anpassen, indem Sie reagieren, wenn Benutzer mit Nachrichten interagieren, Nachrichtenereignisse außerhalb des Analytics-Frameworks auslösen und Benutzern ermöglichen, die Weitergabe ihrer persönlichen Daten zu steuern zu Messaging-Interaktionen.

Reagieren Sie, wenn Benutzer mit In-App-Nachrichten interagieren

Mit Aktionen können Sie Ihre In-App-Nachrichten verwenden, um Benutzer auf eine Website oder einen bestimmten Bildschirm in Ihrer App zu leiten.

Ihr Code kann auf grundlegende Interaktionen (Klicks und Ablehnungen), auf Impressionen (verifizierte Aufrufe Ihrer Nachrichten) und auf vom SDK protokollierte und bestätigte Anzeigefehler reagieren. Wenn Ihre Nachricht beispielsweise als Kartenmodalität verfasst ist, möchten Sie möglicherweise nachverfolgen und nachverfolgen, auf welche der beiden URLs der Benutzer auf die Karte geklickt hat.

Implementieren Sie ein DisplayDelegate, um Karteninteraktionen zu verarbeiten

Sie können einen In-App-Messaging-Anzeigedelegaten registrieren, der immer dann aufgerufen wird, wenn eine Interaktion mit einer In-App-Nachricht stattfindet. Implementieren Sie dazu eine Klasse gemäß dem InAppMessagingDisplayDelegate Protokoll und legen Sie sie als Delegateneigenschaft für die InAppMessaging Instanz fest.

Nehmen wir wiederum an, Sie möchten nachverfolgen, auf welchen Link ein Benutzer auf eine Nachricht im Kartenstil geklickt hat. Definieren Sie eine Klasse, die die messageClicked Methode gemäß dem DisplayDelegate Protokoll implementiert und Ihnen so Zugriff auf den vom Benutzer angeklickten Link gewährt.

Schnell

Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst-, App Clip- oder watchOS-Zielen verfügbar.

Informationen zu den implementierten Rückrufmethoden und ihren Parametern, einschließlich InAppMessagingAction, finden Sie in der Referenz zum Swift-Anzeigedelegaten .


// 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;

Ziel c

Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst-, App Clip- oder watchOS-Zielen verfügbar.

Informationen zu den implementierten Rückrufmethoden und ihren Parametern, einschließlich FIRInAppMessagingDisplayMessage, finden Sie in der Objective-C -Anzeigedelegatenreferenz .


// 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;

Lösen Sie In-App-Nachrichten programmgesteuert aus

Mit Firebase In-App Messaging können Sie standardmäßig In-App-Nachrichten mit Google Analytics für Firebase-Ereignisse auslösen, ohne dass eine zusätzliche Integration erforderlich ist. Mit den programmgesteuerten Auslösern des Firebase In-App Messaging SDK können Sie Ereignisse auch manuell programmgesteuert auslösen.

Erstellen Sie im In-App-Messaging-Kampagnen-Composer eine neue Kampagne oder wählen Sie eine vorhandene Kampagne aus und notieren Sie sich im Schritt „Planung“ des Composer-Workflows die Ereignis-ID eines neu erstellten oder vorhandenen Messaging-Ereignisses. Sobald Sie dies notiert haben, instrumentieren Sie Ihre App so, dass sie das Ereignis anhand ihrer ID auslöst.

Schnell

Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst-, App Clip- oder watchOS-Zielen verfügbar.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Ziel c

Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst-, App Clip- oder watchOS-Zielen verfügbar.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

Verwenden Sie benutzerdefinierte Kampagnenmetadaten

In Ihren Kampagnen können Sie benutzerdefinierte Daten in einer Reihe von Schlüssel/Wert-Paaren angeben. Wenn Benutzer mit Nachrichten interagieren, stehen Ihnen diese Daten zur Verfügung, um beispielsweise einen Promo-Code anzuzeigen.

Schnell

Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst-, App Clip- oder watchOS-Zielen verfügbar.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

Ziel c

Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst-, App Clip- oder watchOS-Zielen verfügbar.
@implementation CardActionFiamDelegate

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

@end

Deaktivieren Sie vorübergehend In-App-Nachrichten

Standardmäßig rendert Firebase In-App Messaging Nachrichten immer dann, wenn eine auslösende Bedingung erfüllt ist, unabhängig vom aktuellen Status einer App. Wenn Sie die Nachrichtenanzeige aus irgendeinem Grund unterdrücken möchten, beispielsweise um eine Unterbrechung einer Folge von Zahlungsverarbeitungsbildschirmen zu vermeiden, verwenden Sie die messageDisplaySuppressed Eigenschaft des SDK, wie hier in Objective-C dargestellt:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

Wenn Sie die Eigenschaft auf „ YES setzen, wird verhindert, dass Firebase In-App Messaging Nachrichten anzeigt, während NO die Nachrichtenanzeige wieder aktiviert. Das SDK setzt die Eigenschaft beim Neustart der App auf NO zurück. Unterdrückte Nachrichten werden vom SDK ignoriert. Ihre Auslösebedingungen müssen bei deaktivierter Unterdrückung erneut erfüllt sein, bevor Firebase In-App Messaging sie anzeigen kann.

Aktivieren Sie die Opt-out-Nachrichtenzustellung

Standardmäßig übermittelt Firebase In-App Messaging automatisch Nachrichten an alle App-Benutzer, die Sie in Messaging-Kampagnen ansprechen. Um diese Nachrichten zu übermitteln, verwendet das Firebase In-App Messaging SDK Firebase-Installations-IDs, um die App jedes Benutzers zu identifizieren. Das bedeutet, dass In-App Messaging Client-Daten, verknüpft mit der Installations-ID, an Firebase-Server senden muss. Wenn Sie Benutzern mehr Kontrolle über die von ihnen gesendeten Daten geben möchten, deaktivieren Sie die automatische Datenerfassung und geben Sie ihnen die Möglichkeit, die Datenfreigabe zu genehmigen.

Dazu müssen Sie die automatische Initialisierung für Firebase In-App Messaging deaktivieren und den Dienst für Opt-in-Benutzer manuell initialisieren:

  1. Deaktivieren Sie die automatische Initialisierung mit einem neuen Schlüssel in Ihrer Info.plist Datei:

    • Schlüssel: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Wert: NO
  2. Initialisieren Sie Firebase In-App Messaging für ausgewählte Benutzer manuell:

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

    Sobald Sie automaticDataCollectionEnabled auf YES setzen, bleibt der Wert auch bei App-Neustarts bestehen und überschreibt den Wert in Ihrer Info.plist . Wenn Sie die Initialisierung erneut deaktivieren möchten, beispielsweise wenn ein Benutzer die Erfassung später ablehnt, legen Sie die Eigenschaft auf NO fest.