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
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
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
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// 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
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@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:
Deaktivieren Sie die automatische Initialisierung mit einem neuen Schlüssel in der Datei
Info.plist
:- Schlüssel:
FirebaseInAppMessagingAutomaticDataCollectionEnabled
- Wert:
NO
- Schlüssel:
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
aufYES
festlegen, bleibt der Wert bei App-Neustarts erhalten und überschreibt den Wert inInfo.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 WertNO
fest.