获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Crea esperimenti di messaggistica con test A/B

Quando raggiungi i tuoi utenti o avvii una nuova campagna di marketing, vuoi assicurarti di farlo bene. Il test A/B può aiutarti a trovare la formulazione e la presentazione ottimali testando le varianti del messaggio su porzioni selezionate della tua base di utenti. Indipendentemente dal fatto che il tuo obiettivo sia una migliore fidelizzazione o conversione su un'offerta, i test A/B possono eseguire analisi statistiche per determinare se una variante del messaggio sta superando la linea di base per l'obiettivo selezionato.

Per testare A/B le varianti delle funzionalità con una linea di base, procedi come segue:

  1. Crea il tuo esperimento.
  2. Convalida il tuo esperimento su un dispositivo di prova.
  3. Gestisci il tuo esperimento.

Crea un esperimento

Un esperimento che utilizza il compositore di notifiche ti consente di valutare più varianti su un singolo messaggio di notifica.

  1. Accedi alla console di Firebase e verifica che Google Analytics sia abilitato nel tuo progetto in modo che l'esperimento abbia accesso ai dati di Analytics.

    Se non hai abilitato Google Analytics durante la creazione del tuo progetto, puoi abilitarlo nella scheda Integrazioni , a cui puoi accedere utilizzando > Impostazioni progetto nella console Firebase .

  2. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su Test A/B .

  3. Fare clic su Crea esperimento , quindi selezionare Notifiche quando viene richiesto il servizio con cui si desidera sperimentare.

  4. Inserisci un nome e una descrizione facoltativa per l'esperimento, quindi fai clic su Avanti .

  5. Compila i campi Targeting , scegliendo prima l'app che utilizza il tuo esperimento. Puoi anche indirizzare un sottoinsieme dei tuoi utenti a partecipare all'esperimento scegliendo le opzioni che includono quanto segue:

    • Versione: una o più versioni della tua app
    • Pubblico di utenti: segmenti di pubblico di Analytics utilizzati per scegliere come target gli utenti che potrebbero essere inclusi nell'esperimento
    • Proprietà utente: una o più proprietà utente di Analytics per selezionare gli utenti che potrebbero essere inclusi nell'esperimento
    • Paese/area geografica: uno o più paesi o aree geografiche per la selezione degli utenti che potrebbero essere inclusi nell'esperimento
    • Lingua del dispositivo: una o più lingue e impostazioni locali utilizzate per selezionare gli utenti che potrebbero essere inclusi nell'esperimento
    • Prima apertura: scegli come target gli utenti in base alla prima volta che hanno aperto la tua app
    • Ultimo coinvolgimento con l'app: scegli come target gli utenti in base all'ultima volta che hanno interagito con la tua app
  6. Imposta la percentuale di utenti target: seleziona la percentuale della base utenti della tua app corrispondente ai criteri impostati in Utenti target che desideri dividere equamente tra la linea di base e una o più varianti nell'esperimento. Può essere qualsiasi percentuale compresa tra 0,01% e 100%. Le percentuali vengono riassegnate in modo casuale agli utenti per ciascun esperimento, inclusi gli esperimenti duplicati.

  7. Nella sezione Varianti digitare un messaggio da inviare al gruppo di riferimento nel campo di testo Inserisci messaggio . Per non inviare alcun messaggio al gruppo di riferimento, lascia vuoto questo campo.

  8. (facoltativo) Per aggiungere più di una variante all'esperimento, fai clic su Aggiungi variante . Per impostazione predefinita, gli esperimenti hanno una linea di base e una variante.

  9. (facoltativo) Inserisci un nome per ogni variante dell'esperimento per sostituire i nomi Variant A , Variant B e così via.

  10. Definisci una metrica obiettivo per il tuo esperimento da utilizzare durante la valutazione delle varianti dell'esperimento insieme a eventuali metriche aggiuntive desiderate dall'elenco a discesa. Queste metriche includono obiettivi integrati (coinvolgimento, acquisti, entrate, fidelizzazione e così via), eventi di conversione di Analytics e altri eventi di Analytics.

  11. Scegli le opzioni per il tuo messaggio:

    • Data di consegna: scegli Invia ora per avviare immediatamente l'esperimento al momento del salvataggio o Programmato per specificare un'ora in cui avviare l'esperimento in futuro.
    • Opzioni avanzate: per scegliere le opzioni avanzate per tutte le notifiche incluse nell'esperimento, espandi Opzioni avanzate , quindi modifica una delle opzioni del messaggio elencate.
  12. Fai clic su Rivedi per salvare l'esperimento.

Sono consentiti fino a 300 esperimenti per progetto, che possono consistere in un massimo di 24 esperimenti in esecuzione, con il resto come bozza o completato.

Convalida il tuo esperimento su un dispositivo di prova

Per ogni installazione di Firebase puoi recuperare il token di registrazione FCM ad essa associato. Puoi utilizzare questo token per testare specifiche varianti dell'esperimento su un dispositivo di prova con la tua app installata. Per convalidare l'esperimento su un dispositivo di prova, procedi come segue:

  1. Ottieni il token di registrazione FCM come segue:

    Rapido

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }
    

    Obiettivo-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];
    

    Java

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin+KTX

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    C++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
        

    Unity

    Firebase.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
    
  2. Nella barra di navigazione della console Firebase , fai clic su Test A/B .
  3. Fai clic su Bozza , passa il mouse sopra il tuo esperimento, fai clic sul menu di scelta rapida ( ), quindi fai clic su Gestisci dispositivi di test
  4. Inserisci il token FCM per un dispositivo di prova e scegli la variante dell'esperimento da inviare a quel dispositivo di prova.
  5. Esegui l'app e conferma che la variante selezionata viene ricevuta sul dispositivo di prova.

Gestisci il tuo esperimento

Se crei un esperimento con Remote Config, il compositore di notifiche o la messaggistica in-app di Firebase, puoi quindi convalidare e avviare l'esperimento, monitorare l'esperimento mentre è in esecuzione e aumentare il numero di utenti inclusi nell'esperimento in esecuzione.

Al termine dell'esperimento, puoi prendere nota delle impostazioni utilizzate dalla variante vincente e quindi implementare tali impostazioni per tutti gli utenti. Oppure puoi eseguire un altro esperimento.

Inizia un esperimento

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su Test A/B .
  2. Fai clic su Bozza , quindi fai clic sul titolo dell'esperimento.
  3. Per verificare che la tua app abbia utenti da includere nell'esperimento, espandi i dettagli della bozza e controlla se nella sezione Targeting e distribuzione è presente un numero superiore allo 0% (ad esempio, l'1% degli utenti che soddisfano i criteri ).
  4. Per modificare l'esperimento, fai clic su Modifica .
  5. Per iniziare l'esperimento, fai clic su Avvia esperimento . Puoi eseguire fino a 24 esperimenti per progetto alla volta.

Monitorare un esperimento

Una volta che un esperimento è in esecuzione da un po' di tempo, puoi verificarne l'avanzamento e vedere come appaiono i risultati per gli utenti che hanno partecipato all'esperimento fino a quel momento.

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su Test A/B .
  2. Fai clic su In esecuzione , quindi fai clic o cerca il titolo dell'esperimento. In questa pagina puoi visualizzare varie statistiche osservate e modellate sull'esperimento in corso, tra cui:

    • % di differenza rispetto alla linea di base : una misura del miglioramento di una metrica per una data variante rispetto alla linea di base. Calcolato confrontando l'intervallo di valori per la variante con l'intervallo di valori per la linea di base.
    • Probabilità di battere la linea di base : la probabilità stimata che una determinata variante superi la linea di base per la metrica selezionata.
    • observed_metric per utente : in base ai risultati dell'esperimento, questo è l'intervallo previsto in cui rientrerà il valore della metrica nel tempo.
    • observed_metric totale : il valore cumulativo osservato per la linea di base o la variante. Il valore viene utilizzato per misurare il rendimento di ciascuna variante dell'esperimento e per calcolare Miglioramento , Intervallo di valori , Probabilità di battere la linea di base e Probabilità di essere la variante migliore . A seconda della metrica misurata, questa colonna può essere denominata "Durata per utente", "Entrate per utente", "Tasso di fidelizzazione" o "Tasso di conversione".
  3. Dopo che l'esperimento è stato eseguito per un po' (almeno 7 giorni per FCM e In-App Messaging o 14 giorni per Remote Config), i dati in questa pagina indicano quale variante, se esiste, è la "leader". Alcune misurazioni sono accompagnate da un grafico a barre che presenta i dati in un formato visivo.

Distribuisci un esperimento a tutti gli utenti

Dopo che un esperimento è stato eseguito abbastanza a lungo da disporre di una variante "leader" o vincente per la metrica dell'obiettivo, puoi implementare l'esperimento per il 100% degli utenti. Ciò ti consente di selezionare una variante da pubblicare per tutti gli utenti in futuro. Anche se il tuo esperimento non ha creato un chiaro vincitore, puoi comunque scegliere di implementare una variante per tutti i tuoi utenti.

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su Test A/B .
  2. Fai clic su Completato o In esecuzione , fai clic su un esperimento che desideri distribuire a tutti gli utenti, fai clic sul menu di scelta rapida ( ), quindi fai clic su Implementa variante .
  3. Distribuisci l'esperimento a tutti gli utenti procedendo in uno dei seguenti modi:

    • Per un esperimento che utilizza il compositore di notifiche , utilizza la finestra di dialogo del messaggio di implementazione per inviare il messaggio agli utenti target rimanenti che non facevano parte dell'esperimento.
    • Per un esperimento Remote Config , seleziona una variante per determinare quali valori del parametro Remote Config aggiornare. I criteri di targeting definiti durante la creazione dell'esperimento verranno aggiunti come nuova condizione nel modello, per garantire che l'implementazione riguardi solo gli utenti target dell'esperimento. Dopo aver fatto clic su Revisiona in Remote Config per rivedere le modifiche, fare clic su Pubblica modifiche per completare l'implementazione.
    • Per un esperimento di messaggistica in-app , utilizza la finestra di dialogo per determinare quale variante deve essere implementata come campagna di messaggistica in-app autonoma. Una volta selezionato, verrai reindirizzato alla schermata di composizione FIAM per apportare eventuali modifiche (se necessarie) prima della pubblicazione.

Espandi un esperimento

Se ritieni che un esperimento non attiri un numero di utenti sufficiente per il test A/B per dichiarare un leader, puoi aumentare la distribuzione dell'esperimento per raggiungere una percentuale maggiore della base utenti dell'app.

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su Test A/B .
  2. Seleziona l'esperimento in corso che desideri modificare.
  3. Nella panoramica dell'esperimento , fai clic sul menu di scelta rapida ( ), quindi fai clic su Modifica esperimento in corso .
  4. La finestra di dialogo Targeting visualizza un'opzione per aumentare la percentuale di utenti che si trovano nell'esperimento attualmente in esecuzione. Seleziona un numero maggiore della percentuale corrente e fai clic su Pubblica . L'esperimento verrà distribuito alla percentuale di utenti che hai specificato.

Duplica o interrompi un esperimento

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su Test A/B .
  2. Fai clic su Completato o In esecuzione , passa il mouse sopra l'esperimento, fai clic sul menu di scelta rapida ( ), quindi fai clic su Duplica esperimento o Interrompi esperimento .

Targeting utente

Puoi scegliere come target gli utenti da includere nell'esperimento utilizzando i seguenti criteri di targeting per utente.

Criterio di targeting Operatore(i) I valori) Nota
Versione contiene,
non contiene,
corrisponde esattamente,
contiene espressioni regolari
Inserisci un valore per una o più versioni dell'app che vuoi includere nell'esperimento.

Quando si utilizza uno degli operatori contains , not contains o corrisponde esattamente , è possibile fornire un elenco di valori separati da virgole.

Quando si utilizza l'operatore contains regex , è possibile creare espressioni regolari in formato RE2 . La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare gli ancoraggi ^ e $ per trovare la corrispondenza con l'inizio, la fine o l'intera stringa di destinazione.

Pubblico/i di utenti comprende tutto,
include almeno uno di,
non include tutto,
non include almeno uno di
Seleziona uno o più segmenti di pubblico di Analytics per scegliere come target gli utenti che potrebbero essere inclusi nell'esperimento. Alcuni esperimenti destinati ai segmenti di pubblico di Google Analytics potrebbero richiedere alcuni giorni per accumulare dati perché sono soggetti alla latenza di elaborazione dei dati di Analytics . È molto probabile che tu riscontri questo ritardo con i nuovi utenti, che in genere vengono iscritti ai segmenti di pubblico idonei 24-48 ore dopo la creazione o per i segmenti di pubblico creati di recente .
Proprietà dell'utente Per il testo:
contiene,
non contiene,
corrisponde esattamente,
contiene espressioni regolari

Per i numeri:
<, ≤, =, ≥, >
Una proprietà utente di Analytics viene utilizzata per selezionare gli utenti che potrebbero essere inclusi in un esperimento, con una gamma di opzioni per la selezione dei valori delle proprietà utente.

Sul client è possibile impostare solo valori stringa per le proprietà utente. Per le condizioni che utilizzano operatori numerici, il servizio Remote Config converte il valore della proprietà utente corrispondente in un numero intero/virgola mobile.
Quando si utilizza l'operatore contains regex , è possibile creare espressioni regolari in formato RE2 . La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare gli ancoraggi ^ e $ per trovare la corrispondenza con l'inizio, la fine o l'intera stringa di destinazione.
Paese/Regione N / A Uno o più paesi o aree geografiche utilizzati per selezionare gli utenti che potrebbero essere inclusi nell'esperimento.
Le lingue N / A Una o più lingue e impostazioni internazionali utilizzate per selezionare gli utenti che potrebbero essere inclusi nell'esperimento.
Primo aperto Più di
Meno di
Fra
Scegli come target gli utenti in base alla prima volta che hanno aperto la tua app, specificato in giorni.
Ultimo impegno con l'app Più di
Meno di
Fra
Scegli come target gli utenti in base all'ultima volta che hanno interagito con la tua app, specificato in giorni.

Metriche di test A/B

Quando crei l'esperimento, scegli una metrica primaria o obiettivo , che viene utilizzata per determinare la variante vincente. Dovresti anche tenere traccia di altre metriche per aiutarti a comprendere meglio il rendimento di ogni variante dell'esperimento e tenere traccia delle tendenze importanti che possono differire per ogni variante, come la fidelizzazione degli utenti, la stabilità dell'app e le entrate degli acquisti in-app. Puoi monitorare fino a cinque metriche non obiettivo nel tuo esperimento.

Ad esempio, supponiamo che tu abbia aggiunto nuovi acquisti in-app alla tua app e desideri confrontare l'efficacia di due diversi messaggi di "spinta". In questo caso, potresti decidere di impostare Entrate degli acquisti come metrica dell'obiettivo perché desideri che la variante vincente rappresenti la notifica che ha generato le maggiori entrate degli acquisti in-app. E poiché desideri anche monitorare quale variante ha generato più conversioni future e utenti mantenuti, puoi aggiungere quanto segue in Altre metriche da monitorare :

  • Entrate totali stimate per vedere in che modo l'acquisto combinato in-app e le entrate pubblicitarie differiscono tra le due varianti
  • Conservazione (1 giorno) , Conservazione (2-3 giorni) , Conservazione (4-7 giorni) per tenere traccia della fidelizzazione giornaliera/settimanale degli utenti

Le seguenti tabelle forniscono dettagli su come vengono calcolate le metriche degli obiettivi e altre metriche.

Metriche degli obiettivi

Metrico Descrizione
Utenti senza arresti anomali La percentuale di utenti che non hanno riscontrato errori nella tua app che sono stati rilevati dall'SDK Firebase Crashlytics durante l'esperimento.
Entrate pubblicitarie stimate Entrate pubblicitarie stimate.
Entrate totali stimate Valore combinato per l'acquisto e entrate pubblicitarie stimate.
Entrate di acquisto Valore combinato per tutti gli eventi di purchase e in_app_purchase .
Conservazione (1 giorno) Il numero di utenti che tornano alla tua app su base giornaliera.
Conservazione (2-3 giorni) Il numero di utenti che tornano alla tua app entro 2-3 giorni.
Conservazione (4-7 giorni) Il numero di utenti che tornano alla tua app entro 4-7 giorni.
Conservazione (8-14 giorni) Il numero di utenti che tornano alla tua app entro 8-14 giorni.
Conservazione (15+ giorni) Il numero di utenti che tornano alla tua app 15 o più giorni dopo l'ultimo utilizzo.
first_open Un evento di Analytics che si attiva quando un utente apre per la prima volta un'app dopo averla installata o reinstallata. Utilizzato come parte di una canalizzazione di conversione.

Altre metriche

Metrico Descrizione
notifica_dismiss Un evento di Analytics che si attiva quando una notifica inviata dal compositore delle notifiche viene ignorata (solo Android).
notifica_ricezione Un evento di Analytics che si attiva quando viene ricevuta una notifica inviata dal compositore di notifiche mentre l'app è in background (solo Android).
os_update Un evento di Analytics che tiene traccia dell'aggiornamento del sistema operativo del dispositivo a una nuova versione. Per ulteriori informazioni, consulta Eventi raccolti automaticamente .
screen_view Un evento di Analytics che tiene traccia delle schermate visualizzate all'interno della tua app. Per ulteriori informazioni, consulta Tenere traccia delle visualizzazioni di schermo .
sessione_inizio Un evento di Analytics che conta le sessioni utente nella tua app. Per ulteriori informazioni, consulta Eventi raccolti automaticamente .

Esportazione dati BigQuery

Puoi accedere a tutti i dati di analisi relativi ai tuoi test A/B in BigQuery . BigQuery ti consente di analizzare i dati utilizzando BigQuery SQL, esportarli in un altro provider cloud o utilizzare i dati per i tuoi modelli ML personalizzati. Per ulteriori informazioni, consulta Collegamento di BigQuery a Firebase .

Per sfruttare appieno l'esportazione dei dati di BigQuery, i progetti Firebase dovrebbero adottare il piano tariffario con pagamento in base al consumo "Blaze". BigQuery addebita i costi per l'archiviazione dei dati, gli inserimenti in streaming e l'esecuzione di query sui dati. Il caricamento e l'esportazione dei dati sono gratuiti. Consulta i prezzi di BigQuery o la sandbox di BigQuery per ulteriori informazioni.

Per iniziare, assicurati che il tuo progetto Firebase sia collegato a BigQuery. Seleziona Impostazioni > Impostazioni progetto dalla barra di navigazione a sinistra, quindi seleziona Integrazioni > BigQuery > Link . Questa pagina visualizza le opzioni per eseguire l'esportazione dei dati analitici BiqQuery per tutte le app nel progetto.

Per interrogare i dati analitici per un esperimento:

  1. Dall'elenco degli esperimenti attivi , seleziona l'esperimento desiderato per aprire la pagina dei risultati dell'esperimento.
  2. Dal menu di scelta rapida nel riquadro Panoramica dell'esperimento , seleziona Esegui query sui dati dell'esperimento (questa opzione non è disponibile per i progetti nel livello senza costi) .

    Questo apre il compositore di query della console BigQuery con una query di esempio generata automaticamente dei dati dell'esperimento precaricati per la tua revisione. In questa query, l'esperimento è codificato come proprietà utente con il nome dell'esperimento nella chiave e la variante dell'esperimento nel valore.

  3. Nel compositore di query selezionare Esegui query. I risultati vengono visualizzati nel riquadro inferiore.

Tieni presente che, poiché i dati di Firebase in BigQuery vengono aggiornati solo una volta al giorno, i dati disponibili nella pagina dell'esperimento potrebbero essere più aggiornati dei dati disponibili nella console di BigQuery.