Mit Firebase In-App Messaging können Sie mit wenig bis gar keinem Programmieraufwand umfangreiche Nutzerinteraktionen erstellen, konfigurieren und ausrichten. Dabei werden die Funktionen von Google Analytics genutzt, um Messaging-Ereignisse mit tatsächlichen Nutzercharakteristiken, ‑aktivitäten und ‑entscheidungen zu verknüpfen. Mit einer zusätzlichen Firebase In-App Messaging-SDK-Integration können Sie das Verhalten von In-App-Mitteilungen noch weiter anpassen. So können Sie beispielsweise auf Nutzerinteraktionen mit Mitteilungen reagieren, Mitteilungsereignisse außerhalb des Analytics-Frameworks auslösen und Nutzern die Möglichkeit geben, die Weitergabe 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 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 vom SDK protokollierte und bestätigte Anzeigefehler reagieren. Wenn Ihre Nachricht beispielsweise als Kartenmodal verfasst ist, möchten Sie möglicherweise nachverfolgen, auf welche der beiden URLs der Nutzer auf der Karte geklickt hat.
DisplayDelegate implementieren, um Karteninteraktionen zu verarbeiten
Sie können einen Delegaten für die Anzeige von In-App-Nachrichten registrieren, der bei jeder Interaktion mit einer In-App-Nachricht aufgerufen wird. Implementieren Sie dazu eine Klasse gemäß dem InAppMessagingDisplayDelegate
-Protokoll und legen Sie sie als Delegat-Eigenschaft 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
In der Swift-Referenz für das Display-Delegate finden Sie die Menge der 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
In der Objective-C-Referenz für das Anzeigedelegat finden Sie die Menge der 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 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 SDK auslösen.
Erstellen Sie im Composer für In-App-Messaging-Kampagnen eine neue Kampagne oder wählen Sie eine vorhandene aus. Notieren Sie sich im Planungsschritt des Composer-Workflows die Ereignis-ID eines neu erstellten oder vorhandenen Messaging-Ereignisses. Nachdem Sie die ID notiert haben, müssen Sie Ihre App so instrumentieren, dass das Ereignis über seine 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 Mitteilungen interagieren, können Sie diese Daten beispielsweise verwenden, um 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 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 Reihe von Bildschirmen für die Zahlungsabwicklung nicht zu unterbrechen, verwenden Sie die messageDisplaySuppressed
-Eigenschaft des SDK, wie hier in Objective-C dargestellt:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Wenn Sie die Eigenschaft auf YES
setzen, werden in Firebase In-App Messaging keine Nachrichten mehr 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. Die Triggerbedingungen müssen wieder erfüllt sein, während die Unterdrückung deaktiviert ist, bevor Firebase In-App Messaging sie anzeigen kann.
Zustellung von Abmeldungsnachrichten aktivieren
Standardmäßig werden Nachrichten in Firebase In-App Messaging automatisch 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 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 sich für die Nutzung entschieden haben, manuell initialisieren:
So 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 auch nach Neustarts der App erhalten und überschreibt den Wert in IhremInfo.plist
. Wenn Sie die Initialisierung wieder deaktivieren möchten, z. B. wenn ein Nutzer die Erhebung später deaktiviert, legen Sie die Eigenschaft aufNO
fest.