Con uno sforzo di programmazione minimo o nullo, la messaggistica in-app Firebase ti consente di creare, configurare e scegliere come target interazioni utente, sfruttando le funzionalità di Google Analytics pronte all'uso per collegare gli eventi di messaggistica a caratteristiche, attività e 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.
Rispondi quando gli utenti interagiscono con messaggi in-app
Con le azioni puoi utilizzare i messaggi in-app per indirizzare gli utenti a un sito web o una schermata specifica dell'app.
Il codice può rispondere alle interazioni di base (clic e chiusure) impressioni (visualizzazioni verificate dei messaggi) e di mostrare gli errori registrati e confermati dall'SDK. Ad esempio, quando il messaggio è composto come una scheda modale, potresti voler monitorare e analizzare in quali due URL l'utente ha fatto clic sulla scheda.
Implementare un DisplayDelegate per gestire le interazioni con le schede
Puoi registrare un delegato per la visualizzazione dei messaggi in-app che verrà chiamato
ogni volta che si verifica un'interazione con un messaggio in-app. A questo scopo, implementa
una classe secondo il protocollo InAppMessagingDisplayDelegate
e impostala come
delega sull'istanza InAppMessaging
.
Supponendo di nuovo che tu voglia monitorare il link su cui un utente ha fatto clic su 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 a Swift display delegati Reference 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 display delegato di Objective-C per conoscere 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 Eventi di Google Analytics per Firebase, senza ulteriori integrazioni. Puoi Inoltre, puoi attivare manualmente gli eventi in modo programmatico con la classe Firebase In-App Messaging dell'SDK trigger programmatici.
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, lo strumento dell'app per attivare 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"];
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
Disattiva 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
visualizzato per qualsiasi motivo, ad esempio per evitare l'interruzione di
sequenza di elaborazione dei pagamenti, utilizza la classe
Proprietà messageDisplaySuppressed
come illustrato qui 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 eliminati vengono ignorati dall'SDK. Il suo attivatore
le condizioni devono essere soddisfatte di nuovo mentre l'eliminazione è disattivata, prima che Firebase In-App Messaging possa
di mostrarli.
Attiva la consegna dei messaggi per la disattivazione
Per impostazione predefinita, Firebase In-App Messaging consegna automaticamente i messaggi a tutti gli utenti dell'app che scegli come target nelle campagne di messaggistica. Per consegnare questi messaggi, l'SDK Firebase In-App Messaging utilizza Firebase ID installazione per identificare l'app di ogni utente. Ciò significa che In-App Messaging deve inviare i dati del cliente, collegati 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;
Dopo aver impostato
automaticDataCollectionEnabled
suYES
, il valore persiste tramite i riavvii dell'app, sostituendo il valore inInfo.plist
. Se vuoi per disabilitare nuovamente l'inizializzazione, ad esempio se un utente disattiva raccolta in un secondo momento, imposta la proprietà suNO
.