Con un impegno di programmazione minimo o nullo, Firebase In-App Messaging ti consente di creare, configurare e scegliere come target interazioni utente avanzate, sfruttando le funzionalità di Google Analytics pronte all'uso per collegare gli eventi di messaggistica alle caratteristiche, alle attività e alle scelte effettive degli utenti. Con un'ulteriore integrazione dell'SDK Firebase In-App Messaging, puoi personalizzare ulteriormente il comportamento dei messaggi in-app, rispondendo quando gli utenti interagiscono con i messaggi, attivando eventi di messaggi al di fuori del framework Analytics e consentendo agli utenti di controllare la condivisione dei propri dati personali relativi alle interazioni con i messaggi.
Rispondi quando gli utenti interagiscono con i messaggi in-app
Con le azioni puoi utilizzare i messaggi in-app per indirizzare gli utenti a un sito web o a una schermata specifica della tua app.
Il tuo codice può rispondere alle interazioni di base (clic e chiusure), alle impressioni (visualizzazioni verificate dei tuoi messaggi) e agli errori di visualizzazione registrati e confermati dall'SDK. Ad esempio, quando il messaggio è composto come finestra modale Scheda, potresti voler monitorare e dare seguito a quale dei due URL l'utente ha fatto clic sulla Scheda.
Implementa un DisplayDelegate per gestire le interazioni con le schede
Puoi registrare un delegato di visualizzazione dei messaggi in-app che verrà chiamato ogni volta che si verifica un'interazione con un messaggio in-app. Per farlo, implementa una classe in base al protocollo InAppMessagingDisplayDelegate e impostala come proprietà del delegato nell'istanza InAppMessaging.
Supponendo ancora una volta che tu voglia monitorare il link su cui un utente ha fatto clic in un messaggio in stile scheda, definisci una classe che implementi il metodo messageClicked per il protocollo DisplayDelegate, in modo da avere accesso al link su cui l'utente ha fatto clic.
Swift
Consulta il riferimento del delegato di visualizzazione Swift per l'insieme di metodi di callback che possono essere implementati e i relativi parametri, tra cui 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
Consulta il riferimento del delegato di visualizzazione Objective-C per l'insieme di metodi di callback che possono essere implementati e i relativi parametri, tra cui 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;
Attiva i messaggi in-app in modo programmatico
Firebase In-App Messaging per impostazione predefinita ti consente di attivare i messaggi in-app con gli eventi di Google Analytics for Firebase, senza alcuna integrazione aggiuntiva. Puoi anche attivare manualmente gli eventi in modo programmatico con i trigger programmatici dell'SDK Firebase In-App Messaging.
In Compositore campagne di messaggistica in-app, crea una nuova campagna o selezionane una esistente e, nel passaggio Pianificazione del flusso di lavoro del compositore, prendi nota dell'ID evento di un evento di messaggistica appena creato o esistente. Una volta annotato, configura l'app in modo che attivi l'evento in base al suo ID.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Utilizza i metadati personalizzati della campagna
Nelle tue campagne, puoi specificare dati personalizzati in una serie di coppie chiave/valore. Quando gli utenti interagiscono con i messaggi, questi dati sono disponibili, ad esempio, per mostrare un codice promozionale.
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
Disattivare temporaneamente i messaggi in-app
Per impostazione predefinita, Firebase In-App Messaging esegue il rendering dei messaggi ogni volta che viene soddisfatta una condizione di attivazione, indipendentemente dallo stato corrente di un'app. Se per qualsiasi motivo vuoi impedire la visualizzazione dei messaggi, ad esempio per evitare di interrompere una sequenza di schermate di elaborazione dei pagamenti, utilizza la proprietà messageDisplaySuppressed dell'SDK, come illustrato di seguito in Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Se imposti la proprietà su YES, Firebase In-App Messaging non visualizza i messaggi, mentre NO riattiva la visualizzazione dei messaggi. L'SDK reimposta la proprietà su NO
al riavvio dell'app. I messaggi soppressi vengono ignorati dall'SDK. Le condizioni di attivazione devono essere soddisfatte di nuovo mentre la soppressione è disattivata, prima che Firebase In-App Messaging possa visualizzarle.
Attiva l'invio di messaggi di disattivazione
Per impostazione predefinita, Firebase In-App Messaging invia automaticamente i messaggi a tutti gli utenti dell'app che hai scelto come target nelle campagne di messaggistica. Per inviare questi messaggi, l'SDK Firebase In-App Messaging utilizza gli ID installazione di Firebase per identificare l'app di ogni utente. Ciò significa che In-App Messaging deve inviare ai server Firebase i dati del client, collegati all'ID installazione. Se vuoi offrire agli utenti un maggiore controllo sui dati che inviano, disattiva la raccolta dei dati automatica e consenti loro di approvare la condivisione dei dati.
Per farlo, devi disattivare l'inizializzazione automatica per Firebase In-App Messaging e inizializzare il servizio manualmente per gli utenti che hanno eseguito l'opt-in:
Disattiva l'inizializzazione automatica con una nuova chiave nel file
Info.plist:- Chiave:
FirebaseInAppMessagingAutomaticDataCollectionEnabled - Valore:
NO
- Chiave:
Inizializza manualmente Firebase In-App Messaging per gli utenti selezionati:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;Una volta impostato
automaticDataCollectionEnabledsuYES, il valore persiste durante i riavvii dell'app, sostituendo il valore inInfo.plist. Se vuoi disattivare nuovamente l'inizializzazione, ad esempio se un utente disattiva la raccolta in un secondo momento, imposta la proprietà suNO.