Crea esperimenti di configurazione remota Firebase con test A/B

Quando aggiorni la tua app e utilizzi Firebase Remote Config per inviarla a un'applicazione con una base di utenti attiva, devi assicurarti di farlo correttamente. Potresti essere incerto su quanto segue:

  • Il modo migliore per implementare una funzionalità per ottimizzare l'esperienza dell'utente. Troppo spesso, gli sviluppatori di app non scoprono che ai loro utenti non piace una nuova funzionalità o un'esperienza utente aggiornata finché la valutazione della loro app nell'app store non diminuisce. I test A/B possono aiutare a misurare se ai tuoi utenti piacciono le nuove varianti delle funzionalità o se preferiscono l'app così com'è attualmente. Inoltre, mantenere la maggior parte dei tuoi utenti in un gruppo di controllo garantisce che la maggior parte della tua base di utenti possa continuare a utilizzare la tua app senza subire modifiche al suo comportamento o aspetto fino alla conclusione dell'esperimento.
  • Il modo migliore per ottimizzare l'esperienza utente per un obiettivo aziendale. A volte stai implementando modifiche al prodotto per massimizzare una metrica come entrate o fidelizzazione. Con il test A/B, imposti il ​​tuo obiettivo aziendale e Firebase esegue l'analisi statistica per determinare se una variante sta superando il gruppo di controllo per l'obiettivo selezionato.

Per le varianti della funzione di test A/B con un gruppo di controllo, procedere 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 di configurazione remota consente di valutare molteplici varianti su uno o più parametri di configurazione remota .

  1. Accedi a Firebase, aggiornare le impostazioni di condivisione dei dati e assicurarsi che la condivisione dei dati è abilitata. Senza la condivisione dei dati, il tuo esperimento non avrà accesso ai dati di analisi.
  2. Nella sezione Engage della console Firebase barra di navigazione, fare clic su Test A / B.
  3. Fare clic su Crea esperimento, e quindi selezionare Configurazione remota quando viene richiesto il servizio che si desidera sperimentare.
  4. Inserire un nome e una descrizione facoltativa per l'esperimento, e fare clic su Avanti.
  5. Compila i campi di targeting, prima di scegliere l'applicazione che utilizza l'esperimento. Puoi anche scegliere come target un sottoinsieme dei tuoi utenti di partecipare al tuo esperimento scegliendo opzioni che includono quanto segue:

    • Versione: Uno o più versioni della tua app
    • Pubblico per l'utente: il pubblico Analytics utilizzati per target di utenti che potrebbero essere inclusi nell'esperimento
    • Proprietà utente: una o più proprietà utente Analytics per gli utenti selezionano che potrebbero essere inclusi nell'esperimento
    • Previsione: Gruppi di utenti previsti dalla apprendimento automatico di impegnarsi in un particolare comportamento
    • Paese / Regione: uno o più paesi o regioni per gli utenti selezionano che potrebbero essere inclusi nell'esperimento
    • Lingua del dispositivo: una o più lingue e locali utilizzati per selezionare gli utenti che potrebbero essere inclusi nell'esperimento
  6. Impostare la percentuale di utenti di destinazione: Inserire la percentuale della base di utenti della tua app corrispondenti ai criteri stabiliti a norma target utenti che si desidera in modo uniforme divario tra il gruppo di controllo e uno o più varianti nell'esperimento. Può essere qualsiasi percentuale compresa tra lo 0,01% e il 100%. Gli utenti vengono assegnati in modo casuale a ciascun esperimento, inclusi gli esperimenti duplicati.

  7. Facoltativamente, imposta un evento di attivazione per assicurarti che nell'esperimento vengano conteggiati solo gli utenti che per primi hanno attivato un evento di Analytics. Per garantire un esperimento validi a partire, assicurarsi che l'evento che si sceglie si verifica dopo l'applicazione attiva valori di configurazione recuperati. Eventi come first_open o session_start potrebbero verificarsi prima activateFetched() , che porta a risultati imprevisti.

  8. Per gli obiettivi dell'esperimento, selezionare la metrica principale per tenere traccia, e aggiungere eventuali metriche aggiuntive desiderati dall'elenco a discesa. Questi includono obiettivi integrati (coinvolgimento, acquisti, entrate, fidelizzazione e così via), eventi di conversione di Analytics e altri eventi di Analytics. Al termine, fare clic su Avanti.

  9. Nella sezione Varianti si sceglie un gruppo di controllo ed almeno una variante per l'esperimento. Utilizzare il Scegliere o creare nuova lista per aggiungere uno o più parametri di sperimentare. Puoi creare un parametro che non è stato precedentemente utilizzato nella console Firebase, ma deve esistere nella tua app affinché abbia effetto. Puoi ripetere questo passaggio per aggiungere più parametri al tuo esperimento.

  10. (opzionale) Per aggiungere più di una variante per l'esperimento, fare clic su Aggiungi un'altra variante.

  11. Modificare uno o più parametri per varianti specifiche. Eventuali parametri invariati sono gli stessi per gli utenti non inclusi nell'esperimento.

  12. Clicca recensione per salvare l'esperimento.

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

Convalida il tuo esperimento su un dispositivo di prova

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

  1. Ottieni il token di autenticazione dell'installazione come segue:

    Swift

    Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
      if let error = error {
        print("Error fetching token: \(error)")
        return
      }
      guard let result = result else { return }
      print("Installation auth token: \(result.authToken)")
    })
    

    Obiettivo-C

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Giava

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Kotlin+KTX

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    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());
          }
        });
    

    Unità

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. Sulla console Firebase barra di navigazione, fare clic su Test A / B.
  3. Fare clic su Progetto (e / o esecuzione per esperimenti Configurazione remota), il mouse sopra l'esperimento, fai clic sul menu contestuale ( ), quindi scegliere Gestione dispositivi di test.
  4. Inserisci il token di autorizzazione dell'installazione 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.

Per ulteriori informazioni su installazioni Firebase, vedere Gestire le installazioni Firebase .

Gestisci il tuo esperimento

Sia che crei un esperimento con Remote Config, il compositore di notifiche o Firebase In-App Messaging, 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 distribuire tali impostazioni a tutti gli utenti. Oppure puoi eseguire un altro esperimento.

Inizia un esperimento

  1. Nella sezione Engage della console Firebase barra di navigazione, fare clic su Test A / B.
  2. Fare clic su Progetto, quindi fare clic sul titolo del tuo esperimento.
  3. Per convalidare che la vostra applicazione ha gli utenti che sarebbero incluse nel vostro esperimento, espandere il progetto di dettagli e verificare la presenza di un numero maggiore di 0% nella sezione Targeting e la distribuzione (ad esempio, 1% degli utenti che corrispondono ai criteri).
  4. Per cambiare l'esperimento, fare clic su Modifica.
  5. Per iniziare l'esperimento, fare clic su Start Experiment. Puoi eseguire fino a 24 esperimenti per progetto alla volta.

Monitora un esperimento

Dopo che un esperimento è in esecuzione da un po' di tempo, puoi controllarne l'avanzamento e vedere come appaiono i tuoi risultati per gli utenti che hanno partecipato all'esperimento finora.

  1. Nella sezione Engage della console Firebase barra di navigazione, fare clic su Test A / B.
  2. Fare clic Correre, quindi fare clic sul titolo del tuo esperimento. In questa pagina puoi visualizzare varie statistiche osservate e modellate sull'esperimento in esecuzione, incluse le seguenti:

    • Differenza% rispetto al basale: Una misura del miglioramento di una metrica per una determinata variante rispetto alla linea di base (o gruppo di controllo). Calcolato confrontando l'intervallo di valori per la variante con l'intervallo di valori per la linea di base.
    • Probabilità di battere di base: La probabilità stimato che una determinata variante batte la linea di base per la metrica selezionata.
    • observed_metric per utente: In base a risultati dell'esperimento, questa è la gamma previsto che il valore della metrica cadrà in tempo finito.
    • Totale observed_metric : Il valore cumulativo osservato nel gruppo di controllo o variante. Il valore viene utilizzato per misurare quanto bene ogni esperimento esegue variante, e viene utilizzato per calcolare Miglioramento, Campo di valori, Probabilità di battere 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 messaggistica in-app o 14 giorni per Remote Config), i dati in questa pagina indicano quale variante, se presente, è il "leader". Alcune misurazioni sono accompagnate da un grafico a barre che presenta i dati in formato visivo.

Distribuisci un esperimento a tutti gli utenti

Dopo che un esperimento è stato eseguito abbastanza a lungo da disporre di un "leader" o di una variante vincente per la metrica dell'obiettivo, puoi estendere l'esperimento al 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 Engage della console Firebase barra di navigazione, fare clic su Test A / B.
  2. Clicca Completato o in esecuzione, fare clic su un esperimento che si desidera implementare a tutti gli utenti, fare clic sul menu contestuale ( ), e quindi fare clic su Stendete variante.
  3. Distribuisci il tuo esperimento a tutti gli utenti effettuando una delle seguenti operazioni:

    • Per un esperimento che utilizza il compositore Notifiche, utilizzare il roll out di dialogo messaggio per inviare il messaggio ai restanti utenti mirati che non facevano parte di questo esperimento.
    • Per un esperimento di Remote Config, seleziona una variante per determinare quali valori dei parametri di 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 influisca solo sugli utenti target dell'esperimento. Dopo aver fatto clic Recensione su Configurazione remota di rivedere le modifiche, fare clic su Pubblica modifiche per completare il rollout.
    • 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 di FIAM per apportare eventuali modifiche (se richieste) prima della pubblicazione.

Espandi un esperimento

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

  1. Nella sezione Engage della console Firebase barra di navigazione, fare clic su Test A / B.
  2. Seleziona l'esperimento in esecuzione che desideri modificare.
  3. Nella panoramica esperimento, fai clic sul menu contestuale ( ), e quindi fare clic su Modifica esperimento in esecuzione.
  4. La finestra di dialogo visualizza targeting un'opzione per aumentare la percentuale di utenti che si trovano nel esperimento attualmente in esecuzione. Selezionare un numero maggiore rispetto alla percentuale attuale e fare clic su Pubblica. L'esperimento verrà esteso alla percentuale di utenti specificata.

Duplica o interrompi un esperimento

  1. Nella sezione Engage della console Firebase barra di navigazione, fare clic su Test A / B.
  2. Fare clic su Completato o in esecuzione, con il mouse sopra l'esperimento, fai clic sul menu contestuale ( ), e quindi fare clic su Duplica esperimento o esperimento Stop.

Targeting utente

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

Criterio di targeting Operatore/i Valori) Nota
Versione contiene,
non contiene,
corrisponde esattamente,
contiene regex
Inserisci un valore per una o più versioni dell'app che desideri includere nell'esperimento.

Quando si utilizza una delle contiene, non contiene, o le partite esattamente gli operatori, è possibile fornire un elenco separato da virgole di valori.

Quando si utilizza l'operatore contiene regex, è possibile creare espressioni regolari in RE2 formato. La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. È inoltre possibile utilizzare le ^ e $ ancore per abbinare all'inizio, alla fine o totalità di una stringa di destinazione.

Pubblico/i di utenti include 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 nel tuo esperimento.
Proprietà dell'utente Per il testo:
contiene,
non contiene,
corrisponde esattamente,
contiene regex

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/float.
Quando si utilizza l'operatore contiene regex, è possibile creare espressioni regolari in RE2 formato. La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. È inoltre possibile utilizzare le ^ e $ ancore per abbinare all'inizio, alla fine o totalità di una stringa di destinazione.
Predizione N / A Target gruppi di utenti definiti da Firebase Predictions, ad esempio coloro che potrebbero smettere di utilizzare la tua app o utenti che potrebbero effettuare un acquisto in-app. Seleziona uno dei valori definiti dallo strumento Firebase Predictions. Se un'opzione non è disponibile, potrebbe essere necessario attivare Firebase Predictions visitando la sezione Predictions della console Firebase.
Paese del dispositivo N / A Uno o più paesi o aree geografiche utilizzati per selezionare gli utenti che potrebbero essere inclusi nell'esperimento.
Lingua del dispositivo N / A Una o più lingue e impostazioni internazionali utilizzate per selezionare gli utenti che potrebbero essere inclusi nell'esperimento. Questo criterio di targeting è disponibile solo per Remote Config.
Prima apertura più di
meno di
fra
Scegli come target gli utenti in base alla prima volta che hanno aperto la tua app, specificato in giorni. Questo criterio di targeting è disponibile solo per Firebase In-App Messaging.
Ultimo coinvolgimento nell'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. Questo criterio di targeting è disponibile solo per Firebase In-App Messaging.

Metriche del test A/B

Quando crei l'esperimento, scegli una metrica che viene utilizzata per confrontare le varianti dell'esperimento e puoi anche scegliere altre metriche da monitorare per aiutarti a comprendere meglio ogni variante dell'esperimento e rilevare eventuali effetti collaterali significativi (come arresti anomali dell'app). Le tabelle seguenti forniscono dettagli su come vengono calcolate le metriche degli obiettivi e altre metriche.

Metriche degli obiettivi

Metrica Descrizione
Ritenzione (1 giorno) Il numero di utenti che tornano giornalmente alla tua app.
Ritenzione (2-3 giorni) Il numero di utenti che tornano alla tua app entro 2-3 giorni.
Ritenzione (4-7 giorni) Il numero di utenti che tornano alla tua app entro 4-7 giorni.
Ritenzione (8-14 giorni) Il numero di utenti che tornano alla tua app entro 8-14 giorni.
Ritenzione (15+ giorni) Il numero di utenti che tornano alla tua app 15 o più giorni dopo l'ultimo utilizzo.
Notifica aperta Tiene traccia se un utente apre la notifica inviata dal compositore delle notifiche.
Entrate d'acquisto Valore combinato per tutti ecommerce_purchase e in_app_purchase eventi.
Entrate AdMob stimate Entrate stimate da AdMob.
Entrate totali stimate Valore combinato per l'acquisto e entrate stimate di AdMob.
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 un funnel di conversione.
notifica_apri Un evento di Analytics che si attiva quando un utente apre una notifica inviata dal compositore delle notifiche. Utilizzato come parte di un funnel di conversione.

Altre metriche

Metrica Descrizione
Utenti senza arresti anomali La percentuale di utenti che non hanno riscontrato errori nella tua app rilevati dall'SDK Firebase Crashlytics durante l'esperimento.
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 Analytics caso in cui le tracce quando il sistema operativo del dispositivo è aggiornato ad una nuova version.To saperne di più, vedere gli eventi raccolti automaticamente .
screen_view Un evento di Analytics che tiene traccia delle schermate visualizzate nella tua app. Per ulteriori informazioni, vedere la pista di schermata .
inizio_sessione Un evento di Analytics che conta le sessioni utente nella tua app. Per ulteriori informazioni, vedere gli eventi raccolti automaticamente .
coinvolgimento_utente Un evento di Analytics che si attiva periodicamente mentre l'app è in primo piano. Per ulteriori informazioni, vedere gli eventi raccolti automaticamente .

Esportazione dati BigQueryQuery

È possibile accedere a tutte le analisi dei dati relativi ai vostri / 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. Vedi link BigQuery per Firebase per ulteriori informazioni.

Per sfruttare appieno l'esportazione dei dati BigQuery, i progetti Firebase devono adottare il piano tariffario con pagamento in base al consumo "Blaze". BigQuery addebita 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. Vedere BigQuery prezzi , o la sandbox BigQuery per ulteriori informazioni.

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

Per eseguire query sui dati di analisi per un esperimento:

  1. Dal tuo esperimenti attivi , selezionare l'esperimento desiderato per aprire la pagina dei risultati dell'esperimento.
  2. Dal menu di scelta rapida nel riquadro panoramica Esperimento, query di selezione dei dati dell'esperimento (questa opzione non è disponibile per i progetti sul livello gratuito).

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

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

Tieni presente che, poiché i dati 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 BigQuery.