Con poco o nessun codice, Firebase In-App Messaging ti consente di creare, configurare e scegliere come target interazioni utente avanzate, sfruttando le funzionalità di Google Analytics out-of-the-box 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 ancora di più 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.
Rispondere 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 codice può rispondere a interazioni di base (clic e chiusure), alle impressioni (visualizzazioni verificate dei tuoi messaggi) e mostrare gli errori registrati e confermati dall'SDK. Ad esempio, quando il messaggio è composto come finestra modale della scheda, potresti voler monitorare e seguire su quale dei due URL l'utente ha fatto clic nella scheda.
Implementa un DisplayDelegate per gestire le interazioni con la scheda
Puoi registrare un delegato di visualizzazione della messaggistica in-app che verrà chiamato ogni volta che si verifica un'interazione con un messaggio in-app. Per farlo, implementa
una classe per il protocollo InAppMessagingDisplayDelegate
e impostala come
proprietà del delegato nell'istanza InAppMessaging
.
Supponendo di nuovo 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
in base al protocollo DisplayDelegate
, in modo da avere accesso al link su cui ha fatto clic l'utente.
Swift
Fai riferimento al riferimento al delegato di visualizzazione di 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: 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
Consulta il riferimento al delegato di visualizzazione in 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;
Attivare i messaggi in-app in modo programmatico
Per impostazione predefinita, Firebase In-App Messaging ti consente di attivare i messaggi in-app con gli eventi di Google Analytics per Firebase, senza alcuna integrazione aggiuntiva. Puoi anche attivare manualmente gli eventi in modo programmatico con gli trigger programmatici dell'SDK Firebase In-App Messaging.
Nel compositore delle 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, esegui la misurazione della tua app per attivare l'evento tramite il relativo ID.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Utilizzare i metadati personalizzati della campagna
Nelle campagne puoi specificare dati personalizzati in una serie di coppie chiave/valore. Quando gli utenti interagiscono con i messaggi, puoi utilizzare questi dati, ad esempio per mostrare un codice promozionale.
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
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 vuoi eliminare la visualizzazione del messaggio per qualsiasi motivo, 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 mostra 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 relative condizioni di attivazione devono essere soddisfatte di nuovo mentre la soppressione è disattivata, prima che Firebase In-App Messaging possa visualizzarle.
Attivare la consegna dei messaggi con disattivazione
Per impostazione predefinita, Firebase In-App Messaging invia automaticamente i messaggi a tutti gli utenti dell'app che scegli come target nelle campagne di messaggistica. Per inviare questi messaggi, l'SDK Firebase In-App Messaging utilizza gli ID installazione Firebase per identificare l'app di ogni utente. Ciò significa che In-App Messaging deve inviare i dati del client, collegati all'ID installazione, ai server Firebase. Se vuoi offrire agli utenti un maggiore controllo sui dati che inviano, disattiva la raccolta automatica dei dati e offri loro la possibilità di approvare la condivisione dei dati.
Per farlo, devi disattivare l'inizializzazione automatica per Firebase In-App Messaging e inizializzare manualmente il servizio per gli utenti che hanno attivato la funzionalità:
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
automaticDataCollectionEnabled
suYES
, il valore rimane invariato anche dopo i riavvii dell'app e sostituisce il valore inInfo.plist
. Se vuoi nuovamente disattivare l'inizializzazione, ad esempio se un utente disattiva la raccolta in un secondo momento, imposta la proprietà suNO
.