Verhalten von Firebase In-App-Messaging-Nachrichten ändern


Mit Firebase In-App-Messaging können Sie mit nur wenig oder gar keinem Programmieraufwand umfangreiche Nutzerinteraktionen erstellen, konfigurieren und steuern. Dabei können Sie die Funktionen von Google Analytics direkt nutzen, um Nachrichtenereignisse an tatsächliche Nutzermerkmale, -aktivitäten und -entscheidungen zu binden. Mit einer zusätzlichen Firebase In-App Messaging SDK-Integration können Sie das Verhalten von In-App-Mitteilungen noch weiter anpassen. Sie können reagieren, wenn Nutzer mit Mitteilungen interagieren, Mitteilungsereignisse außerhalb des Analytics-Frameworks auslösen und Nutzern die Möglichkeit geben, die Freigabe ihrer personenbezogenen Daten im Zusammenhang mit Mitteilungsinteraktionen zu steuern.

Antworten, wenn Nutzer mit In-App-Mitteilungen interagieren

Mit Aktionen können Sie Nutzer über Ihre In-App-Mitteilungen auf eine Website oder einen bestimmten Bildschirm in Ihrer App weiterleiten.

Ihr Code kann auf grundlegende Interaktionen (Klicks und Schließen) und auf Impressionen (bestätigte Aufrufe Ihrer Mitteilungen) reagieren und vom SDK protokollierte und bestätigte Fehler anzeigen. Wenn Ihre Mitteilung beispielsweise als modales Kartenelement verfasst ist, können Sie erfassen und nachverfolgen, auf welche der beiden URLs der Nutzer auf der Karte geklickt hat.

DisplayDelegate implementieren, um Karteninteraktionen zu verarbeiten

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

Angenommen, Sie möchten erfassen, auf welchen Link ein Nutzer in einer Karte geklickt hat, definieren Sie eine Klasse, die die messageClicked-Methode gemäß dem DisplayDelegate-Protokoll implementiert. So erhalten Sie Zugriff auf den Link, auf den der Nutzer geklickt hat.

Swift

Hinweis: Dieses Produkt ist nicht für macOS-, Mac Catalyst-, App Clip- oder watchOS-Ziele verfügbar.

In der Swift-Referenz für den Display-Delegierten finden Sie eine Liste der implementierbaren Callback-Methoden und ihrer Parameter, einschließlich 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

Hinweis: Dieses Produkt ist nicht für macOS-, Mac Catalyst-, App Clip- oder watchOS-Ziele verfügbar.

In der Referenz für den Objective-C-Display-Delegierten finden Sie eine Liste der implementierbaren Callback-Methoden und ihrer Parameter, einschließlich 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;

In-App-Nachrichten programmatisch auslösen

Mit Firebase In-App Messaging können Sie standardmäßig In-App-Mitteilungen mit Google Analytics for Firebase-Ereignissen auslösen, ohne dass eine zusätzliche Integration erforderlich ist. Sie können Ereignisse auch programmatisch mit den programmatischen Triggern des Firebase In-App Messaging SDKs manuell auslösen.

Erstellen Sie im Kampagnen-Editor für In-App-Messaging eine neue Kampagne oder wählen Sie eine vorhandene aus. Notieren Sie sich im Schritt „Planung“ des Workflows im Editor die Ereignis-ID eines neu erstellten oder vorhandenen Messaging-Ereignisses. Instrumentieren Sie dann Ihre App so, dass das Ereignis anhand seiner ID ausgelöst wird.

Swift

Hinweis: Dieses Produkt ist nicht für macOS-, Mac Catalyst-, App Clip- oder watchOS-Ziele verfügbar.

// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objective-C

Hinweis: Dieses Produkt ist nicht für macOS-, Mac Catalyst-, App Clip- oder watchOS-Ziele verfügbar.

// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

Benutzerdefinierte Metadaten für Kampagnen verwenden

In Ihren Kampagnen können Sie benutzerdefinierte Daten in einer Reihe von Schlüssel/Wert-Paaren angeben. Wenn Nutzer mit Mitteilungen interagieren, können Sie diese Daten verwenden, um beispielsweise einen Gutscheincode anzuzeigen.

Swift

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

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

Objective-C

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

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

@end

In-App-Nachrichten vorübergehend deaktivieren

Standardmäßig rendert Firebase In-App Messaging Nachrichten, wenn eine Auslösebedingung erfüllt ist, unabhängig vom aktuellen Status einer App. Wenn Sie die Anzeige von Nachrichten aus irgendeinem Grund unterdrücken möchten, z. B. um eine Abfolge von Bildschirmen für die Zahlungsabwicklung nicht zu unterbrechen, verwenden Sie das Attribut messageDisplaySuppressed des SDKs, wie hier in Objective-C dargestellt:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

Wenn Sie die Property auf YES festlegen, werden in Firebase In-App Messaging keine Nachrichten angezeigt. Mit NO wird die Nachrichtenanzeige wieder aktiviert. Das SDK setzt das Attribut beim App-Neustart auf NO zurück. Unterdrückte Nachrichten werden vom SDK ignoriert. Die Triggerbedingungen müssen wieder erfüllt sein, während die Unterdrückung deaktiviert ist, damit Firebase In-App Messaging sie anzeigen kann.

Zustellung von Nachrichten mit Deaktivierungsoption aktivieren

Standardmäßig werden mit Firebase In-App Messaging automatisch Nachrichten an alle App-Nutzer gesendet, auf die Sie in Messaging-Kampagnen ausgerichtet sind. Zum Senden dieser Nachrichten verwendet das Firebase In-App Messaging SDK Firebase-Installations-IDs, um die App jedes Nutzers zu identifizieren. Das bedeutet, dass In-App Messaging Clientdaten, die mit der Installations-ID verknüpft sind, an die Firebase-Server senden muss. Wenn Sie Nutzern mehr Kontrolle über die von ihnen gesendeten Daten geben möchten, deaktivieren Sie die automatische Datenerhebung 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 Nutzer, die die Funktion aktiviert haben, manuell initialisieren:

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

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

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

    Wenn Sie automaticDataCollectionEnabled auf YES festlegen, bleibt der Wert bei App-Neustarts erhalten und überschreibt den Wert in Info.plist. Wenn Sie die Initialisierung wieder deaktivieren möchten, z. B. wenn ein Nutzer die Erfassung später deaktiviert, legen Sie für die Property den Wert NO fest.