Mit Firebase In-App Messaging können Sie mit wenig oder gar keinem Programmieraufwand umfangreiche Nutzerinteraktionen erstellen, konfigurieren und ausrichten. Dabei werden die Funktionen von Google Analytics genutzt, um Messaging-Ereignisse mit tatsächlichen Nutzermerkmalen, ‑aktivitäten und ‑entscheidungen zu verknüpfen. Durch eine zusätzliche Firebase In-App Messaging SDK-Integration können Sie das Verhalten von In-App-Nachrichten noch weiter anpassen. So können Sie beispielsweise 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 Messaging-Interaktionen zu steuern.
Reagieren, wenn Nutzer mit In-App-Nachrichten interagieren
Mit Aktionen können Sie Nutzer über 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 vom SDK protokollierte und bestätigte Anzeigefehler reagieren. Wenn Ihre Nachricht beispielsweise als Kartenmodal erstellt wurde, können Sie erfassen, auf welche der beiden URLs der Nutzer auf der Karte geklickt hat, und entsprechende Maßnahmen ergreifen.
DisplayDelegate zur Verarbeitung von Karteninteraktionen implementieren
Sie können einen Display-Delegate für In-App-Messaging 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 das
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. Dadurch erhalten Sie Zugriff auf den Link, auf den der Nutzer geklickt hat.
Swift
Informationen zu den Callback-Methoden, die implementiert werden können, und ihren Parametern, einschließlich InAppMessagingAction, finden Sie in der Swift-Referenz zum Display-Delegate.
// 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
Informationen zu den Callback-Methoden, die implementiert werden können, und ihren Parametern, einschließlich FIRInAppMessagingDisplayMessage, finden Sie in der Objective-C-Referenz zum Display-Delegate.
// 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
Firebase In-App Messaging können Sie In-App-Nachrichten standardmäßig mit Google Analytics for Firebase-Ereignissen auslösen, ohne dass eine zusätzliche Integration erforderlich ist. Sie können Ereignisse auch manuell programmatisch mit den programmatischen Triggern des Firebase In-App Messaging SDKs auslösen.
Erstellen Sie im Kampagnen-Composer für In-App-Messaging eine neue Kampagne oder wählen Sie eine vorhandene aus. Notieren Sie sich im Schritt „Zeitplanung“ des Composer-Workflows die Ereignis-ID eines neu erstellten oder vorhandenen Messaging-Ereignisses. Konfigurieren Sie dann Ihre App so, dass das Ereignis anhand seiner ID ausgelöst wird.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Benutzerdefinierte Kampagnenmetadaten 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
class CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation ExampleCardActionDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
NSDictionary *appData = inAppMessage.appData;
NSLog(@"Message data: %@", appData);
// ...
}
@end
In-App-Nachrichten vorübergehend deaktivieren
Standardmäßig werden Firebase In-App Messaging Nachrichten gerendert, sobald eine Auslösebedingung erfüllt ist, unabhängig vom aktuellen Status der App. Wenn Sie die Anzeige von Nachrichten aus irgendeinem Grund unterdrücken möchten, z. B. um eine Reihe von Bildschirmen zur Zahlungsabwicklung nicht zu unterbrechen, verwenden Sie das Attribut
messageDisplaySuppressed des SDK, wie hier in Objective-C dargestellt:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Wenn Sie das Attaboration auf YES setzen, werden in Firebase In-App Messaging keine Nachrichten angezeigt. Mit NO wird die Nachrichtenanzeige wieder aktiviert. Das SDK setzt das Attribut beim Neustart der App auf NO
zurück. Unterdrückte Nachrichten werden vom SDK ignoriert. Ihre Auslösebedingungen müssen erneut erfüllt sein, während die Unterdrückung deaktiviert ist, bevor Firebase In-App Messaging sie anzeigen kann.
Nachrichtenzustellung für Nutzer aktivieren, die die Datenerhebung deaktiviert haben
Standardmäßig werden Firebase In-App Messaging Nachrichten automatisch an alle App-Nutzer gesendet, die Sie in Messaging-Kampagnen ansprechen. Dazu 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 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, der Datenfreigabe zuzustimmen.
Dazu müssen Sie die automatische Initialisierung für Firebase In-App Messaging deaktivieren und den Dienst manuell für Nutzer initialisieren, die der Datenerhebung zugestimmt haben:
Deaktivieren Sie die automatische Initialisierung mit einem neuen Schlüssel in der Datei
Info.plist:- Schlüssel:
FirebaseInAppMessagingAutomaticDataCollectionEnabled - Wert:
NO
- Schlüssel:
Initialisieren Sie Firebase In-App Messaging manuell für ausgewählte Nutzer:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;Wenn Sie
automaticDataCollectionEnabledaufYESsetzen, bleibt der Wert auch nach dem Neustart der App erhalten und überschreibt den Wert in der DateiInfo.plist. Wenn Sie die Initialisierung wieder deaktivieren möchten, z. B. wenn ein Nutzer die Datenerhebung später deaktiviert, setzen Sie das Attribut aufNO.