Modifica il comportamento dei messaggi di messaggistica in-app Firebase

Con uno sforzo di codifica minimo o nullo, la messaggistica in-app Firebase ti consente di creare, configurare e indirizzare interazioni utente avanzate, sfruttando le funzionalità di Google Analytics immediatamente per collegare gli eventi di messaggistica alle caratteristiche, alle attività e alle scelte effettive dell'utente. Con alcune integrazioni aggiuntive dell'SDK di messaggistica in-app Firebase, puoi personalizzare ulteriormente il comportamento dei messaggi in-app, rispondendo quando gli utenti interagiscono con i messaggi, attivando eventi di messaggio al di fuori del framework di Analytics e consentendo agli utenti di controllare la condivisione dei propri dati personali correlati alle interazioni di messaggistica.

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 nella tua app.

Il tuo codice può rispondere a interazioni di base (clic e abbandoni), a impressioni (visualizzazioni verificate dei tuoi messaggi) e a visualizzare errori registrati e confermati dall'SDK. Ad esempio, quando il tuo messaggio è composto come modale Card, potresti voler monitorare e seguire quale dei due URL l'utente ha fatto clic sulla Card.

Implementare un DisplayDelegate per gestire le interazioni delle carte

È possibile registrare un delegato per la visualizzazione della messaggistica in-app che verrà chiamato ogni volta che si interagisce con un messaggio in-app. A tale scopo, implementa una classe in base al protocollo InAppMessagingDisplayDelegate e impostala come proprietà del delegato nell'istanza InAppMessaging .

Supponendo ancora una volta che desideri tenere traccia del collegamento su cui un utente ha fatto clic su un messaggio in stile Card, definisci una classe che implementa il metodo messageClicked secondo il protocollo DisplayDelegate , fornendo così l'accesso al collegamento su cui ha fatto clic l'utente.

Veloce

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, App Clip o watchOS.

Fare riferimento al riferimento al delegato di visualizzazione Swift per la serie di metodi di callback che possono essere implementati e i relativi parametri, incluso 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;

Obiettivo-C

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, App Clip o watchOS.

Fare riferimento al riferimento al delegato di visualizzazione Objective-C per il set di metodi di callback che possono essere implementati e i relativi parametri, incluso 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

La messaggistica in-app Firebase per impostazione predefinita ti consente di attivare messaggi in-app con Google Analytics per eventi Firebase, senza alcuna integrazione aggiuntiva. Puoi anche attivare manualmente gli eventi in modo programmatico con i trigger programmatici dell'SDK di messaggistica in-app Firebase.

Nel compositore della campagna di messaggistica in-app, crea una nuova campagna o seleziona una campagna esistente e nel passaggio Pianificazione del flusso di lavoro del compositore, annota l'ID evento di un evento di messaggistica appena creato o esistente. Una volta annotato, strumenti la tua app per attivare l'evento tramite il suo ID.

Veloce

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, App Clip o watchOS.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Obiettivo-C

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, App Clip o watchOS.
…
// 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 per, ad esempio, visualizzare un codice promozionale.

Veloce

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, App Clip o watchOS.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
	// Get data bundle from the inapp message
	let appData = inAppMessage.appData
	// ...
    }
}

Obiettivo-C

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, App Clip o watchOS.
@implementation CardActionFiamDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
	appData = inAppMessage.appData
	// ...
}

@end

Disattiva temporaneamente i messaggi in-app

Per impostazione predefinita, la messaggistica in-app Firebase esegue il rendering dei messaggi ogni volta che viene soddisfatta una condizione di attivazione, indipendentemente dallo stato corrente dell'app. Se desideri eliminare la visualizzazione dei messaggi 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 qui in Objective-C:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

L'impostazione della proprietà su YES impedisce alla messaggistica in-app Firebase di visualizzare i messaggi, mentre NO riabilita 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 nuovamente soddisfatte mentre la soppressione è disattivata, prima che la messaggistica in-app Firebase possa visualizzarle.

Abilita la consegna del messaggio di rinuncia

Per impostazione predefinita, la messaggistica in-app Firebase recapita automaticamente i messaggi a tutti gli utenti dell'app target nelle campagne di messaggistica. Per recapitare tali messaggi, l'SDK di messaggistica in-app Firebase utilizza gli ID di installazione Firebase per identificare l'app di ciascun utente. Ciò significa che la messaggistica in-app deve inviare i dati del client, collegati all'ID di installazione, ai server Firebase. Se desideri dare 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 fare ciò, devi disabilitare l'inizializzazione automatica per la messaggistica in-app Firebase e inizializzare manualmente il servizio per gli utenti che hanno aderito:

  1. Disattiva l'inizializzazione automatica con una nuova chiave nel file Info.plist :

    • Chiave: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Valore: NO
  2. Inizializza manualmente la messaggistica in-app Firebase per gli utenti selezionati:

    // Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO
    // in Info.plist
    [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
    
    

    Dopo aver impostato automaticDataCollectionEnabled su YES , il valore persiste durante il riavvio dell'app, sovrascrivendo il valore nel tuo Info.plist . Se desideri disattivare nuovamente l'inizializzazione, ad esempio se un utente disattiva la raccolta in un secondo momento, imposta la proprietà su NO .