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


Mit Firebase In-App Messaging können Sie mit wenig oder gar keinem Programmieraufwand umfangreiche Nutzerinteraktionen erstellen, konfigurieren und gezielt einsetzen. Dabei können Sie die Funktionen von Google Analytics nutzen, um Messaging-Ereignisse mit tatsächlichen Nutzermerkmalen, ‑aktivitäten und ‑entscheidungen zu verknüpfen. Durch eine zusätzliche Integration des Firebase In-App Messaging SDK können Sie das Verhalten von In-App-Nachrichten noch weiter anpassen. Sie können reagieren, wenn Nutzer mit Nachrichten interagieren, Nachrichtenereignisse außerhalb des Analytics-Frameworks auslösen und Nutzern die Möglichkeit geben, die Freigabe ihrer personenbezogenen Daten im Zusammenhang mit Nachrichteninteraktionen zu steuern.

Auf Nutzerinteraktionen mit In-App-Nachrichten reagieren

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

Ihr Code kann auf grundlegende Interaktionen (Klicks und Schließen), auf Impressionen (bestätigte Aufrufe Ihrer Nachrichten) und auf Anzeigefehler reagieren, die vom SDK protokolliert und bestätigt wurden. Wenn Ihre Nachricht beispielsweise als Kartenmodal erstellt wurde, möchten Sie möglicherweise verfolgen, 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-Anzeige-Delegaten 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 Delegate-Attribut für die InAppMessaging-Instanz fest.

Angenommen, Sie möchten erfassen, auf welchen Link ein Nutzer in einer Nachricht im Kartenstil geklickt hat. Definieren Sie eine Klasse, die die Methode messageClicked gemäß dem Protokoll DisplayDelegate 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 verfügbar.

In der Referenz für die Swift-Anzeige-Delegierung finden Sie die Callback-Methoden, die implementiert werden können, und ihre Parameter, einschließlich InAppMessagingAction.


// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
        // ...
    }

    func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
                          dismissType: InAppMessagingDismissType) {
        // ...
    }

    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 verfügbar.

In der Referenz zum Objective-C-Anzeige-Delegaten finden Sie die Callback-Methoden, die implementiert werden können, und ihre 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-Nachrichten mit Google Analytics for Firebase-Ereignissen auslösen, ohne dass eine zusätzliche Integration erforderlich ist. Sie können Ereignisse auch manuell mit den programmatischen Triggern des Firebase In-App Messaging SDK auslösen.

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

Swift

Hinweis:Dieses Produkt ist nicht für macOS, Mac Catalyst, App Clip oder watchOS 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 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 Nachrichten interagieren, sind diese Daten für Sie verfügbar, um beispielsweise einen Gutscheincode anzuzeigen.

Swift

Hinweis:Dieses Produkt ist nicht für macOS, Mac Catalyst, App Clip oder watchOS verfügbar.
class CardActionDelegate : 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 verfügbar.
@implementation ExampleCardActionDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    NSDictionary *appData = inAppMessage.appData;
    NSLog(@"Message data: %@", 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 Mitteilungen aus irgendeinem Grund unterdrücken möchten, z. B. um eine Abfolge von Bildschirmen für die Zahlungsabwicklung nicht zu unterbrechen, verwenden Sie die SDK-Property messageDisplaySuppressed, wie hier in Objective-C dargestellt:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

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

Zustellung von Opt-out-Nachrichten aktivieren

Standardmäßig stellt Firebase In-App Messaging Nachrichten automatisch an alle App-Nutzer zu, die Sie in Messaging-Kampagnen als Zielgruppe festlegen. Zum Senden dieser Nachrichten verwendet das Firebase In-App Messaging SDK Firebase-Installations-IDs, um die App des jeweiligen Nutzers zu identifizieren. Das bedeutet, dass In-App Messaging mit der Installations-ID verknüpfte Clientdaten an 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 Datenweitergabe zu genehmigen.

Dazu müssen Sie die automatische Initialisierung für Firebase In-App Messaging deaktivieren und den Dienst für Nutzer, die sich dafür entschieden 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 setzen, bleibt der Wert auch nach einem Neustart der App erhalten und überschreibt den Wert in Ihrer Info.plist. Wenn Sie die Initialisierung wieder deaktivieren möchten, z. B. wenn ein Nutzer die Erhebung später ablehnt, setzen Sie das Attribut auf NO.