查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

Crea esperimenti di configurazione remota di Firebase con test A/B

Quando utilizzi Firebase Remote Config per distribuire le impostazioni per un'applicazione con una base di utenti attiva, devi assicurarti di farlo correttamente. È possibile utilizzare gli esperimenti di test A/B per determinare al meglio quanto segue:

  • Il modo migliore per implementare una funzionalità per ottimizzare l'esperienza dell'utente. Troppo spesso, gli sviluppatori di app non apprendono che ai loro utenti non piace una nuova funzionalità o un'esperienza utente aggiornata fino a quando la valutazione della loro app nell'App Store non diminuisce. Il test A/B può aiutare a misurare se i tuoi utenti apprezzano le nuove varianti di funzionalità o se preferiscono l'app così com'è attualmente. Inoltre, mantenere la maggior parte dei tuoi utenti in un gruppo di base assicura 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 al termine 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 le entrate o la fidelizzazione. Con il test A/B, imposti il ​​tuo obiettivo aziendale e Firebase esegue l'analisi statistica per determinare se una variante sta superando la linea di base per l'obiettivo selezionato.

Per testare A/B varianti di funzionalità con una linea di base, 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 più varianti su uno o più parametri di configurazione remota .

  1. Accedi alla console 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 progetto, puoi abilitarlo nella scheda Integrazioni , a cui puoi accedere utilizzando > Impostazioni progetto nella console di Firebase .

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

  3. Fare clic su Crea esperimento e quindi selezionare Configurazione remota quando viene richiesto il servizio con cui si desidera sperimentare.

  4. Immettere un Nome e una Descrizione facoltativa per l'esperimento e fare clic su Avanti .

  5. Compila i campi Targeting , scegliendo prima l'app che utilizza il tuo esperimento. Puoi anche scegliere come target un sottoinsieme dei tuoi utenti per partecipare all'esperimento facendo clic su e , quindi scegliendo le opzioni dal seguente elenco:

    • Versione: una o più versioni della tua app
    • Numero build: il codice della versione dell'app
    • Lingue: una o più lingue e impostazioni locali utilizzate per selezionare gli utenti che potrebbero essere inclusi nell'esperimento
    • Paese/regione: uno o più paesi o aree geografiche per la selezione degli utenti da includere nell'esperimento
    • Pubblico utente: 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
  6. Imposta la percentuale di utenti target: inserisci la percentuale della base utenti della tua app che corrisponde ai criteri impostati in Utenti target che desideri dividere equamente tra la baseline e una o più varianti nell'esperimento. Questa può essere qualsiasi percentuale compresa tra 0,01% e 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 i dati degli utenti che hanno attivato per primi alcuni eventi Analytics. Tieni presente che tutti gli utenti che corrispondono ai tuoi parametri di targeting riceveranno valori sperimentali di Remote Config, ma solo quelli che attivano un evento di attivazione verranno inclusi nei risultati dell'esperimento.

    Per garantire un esperimento valido, assicurati che l'evento scelto si verifichi dopo che la tua app ha attivato i valori di configurazione recuperati. Inoltre, i seguenti eventi non possono essere utilizzati perché si verificano sempre prima dell'attivazione dei valori recuperati:

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
    • first_open
  8. Per gli obiettivi dell'esperimento , seleziona la metrica principale da monitorare e aggiungi le metriche aggiuntive desiderate dall'elenco a discesa. Questi includono obiettivi integrati (acquisti, entrate, fidelizzazione, utenti senza arresti anomali e così via), eventi di conversione di Analytics e altri eventi di Analytics. Al termine, fare clic su Avanti .

  9. Nella sezione Varianti , sceglierai una linea di base e almeno una variante per l'esperimento. Usa Scegli o crea un nuovo elenco per aggiungere uno o più parametri con cui sperimentare. Puoi creare un parametro che non è stato utilizzato in precedenza nella console Firebase, ma deve esistere nella tua app affinché abbia effetto. Puoi ripetere questo passaggio per aggiungere più parametri all'esperimento.

  10. (facoltativo) Per aggiungere più di una variante all'esperimento, fai clic su Aggiungi un'altra variante .

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

  12. Espandi Pesi varianti per visualizzare o modificare il peso delle varianti per l'esperimento. Per impostazione predefinita, ogni variante è ponderata allo stesso modo. Tieni presente che i pesi irregolari possono aumentare il tempo di raccolta dei dati e non è possibile modificare i pesi dopo l'inizio dell'esperimento .

  13. Fare clic su Rivedi per salvare l'esperimento.

Sono consentiti fino a 300 esperimenti per progetto, che potrebbero 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 autenticazione dell'installazione 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 autenticazione dell'installazione come segue:

    Veloce

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

    Java

    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. Nella barra di navigazione della console Firebase , fai clic su A/B Testing .
  3. Fai clic su Bozza (e/o In esecuzione per esperimenti di configurazione remota), passa il mouse sopra l'esperimento, fai clic sul menu di scelta rapida ( ), quindi fai clic su Gestisci dispositivi di test .
  4. Inserisci il token di autenticazione dell'installazione per un dispositivo di test e scegli la variante dell'esperimento da inviare a quel dispositivo di test.
  5. Esegui l'app e conferma che la variante selezionata viene ricevuta sul dispositivo di prova.

Per ulteriori informazioni sulle installazioni di Firebase, consulta Gestire le installazioni di Firebase .

Gestisci il tuo esperimento

Indipendentemente dal fatto che tu crei un esperimento con Configurazione remota, il compositore di notifiche o la messaggistica in-app 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 distribuire tali impostazioni a 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 A/B Testing .
  2. Fai clic su Bozza , quindi fai clic sul titolo dell'esperimento.
  3. Per verificare che la tua app abbia utenti che verrebbero inclusi nell'esperimento, espandi i dettagli della bozza e controlla un numero maggiore dello 0% nella sezione Targeting e distribuzione (ad esempio, 1% di 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.

Monitora un esperimento

Dopo che un esperimento è in esecuzione da un po' di tempo, puoi controllarne lo stato di avanzamento e vedere come appaiono i tuoi risultati per gli utenti che hanno partecipato al tuo esperimento fino ad ora.

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su A/B Testing .
  2. Fai clic su In esecuzione , quindi fai clic sul titolo dell'esperimento. In questa pagina puoi visualizzare varie statistiche osservate e modellate sul tuo esperimento in esecuzione, tra cui le seguenti:

    • Differenza % dalla linea di base : una misura del miglioramento di una metrica per una determinata 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 superare 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 il valore della metrica rientrerà nel tempo.
    • Totale observed_metric : 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 viene utilizzato per calcolare il miglioramento , l' intervallo di valori , la probabilità di superare la linea di base e la 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 Configurazione remota), i dati in questa pagina indicano quale variante, se presente, è "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 avere un "leader" o una variante vincente per la metrica dell'obiettivo, puoi implementare 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 Coinvolgi della barra di navigazione della console Firebase , fai clic su A/B Testing .
  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 il tuo esperimento a tutti gli utenti effettuando una delle seguenti operazioni:

    • Per un esperimento che utilizza il compositore di notifiche , utilizza la finestra di dialogo Implementa messaggio 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 di parametro Remote Config aggiornare. I criteri di targeting definiti durante la creazione dell'esperimento verranno aggiunti come una nuova condizione nel modello, per garantire che l'implementazione influisca solo sugli utenti presi di mira dall'esperimento. Dopo aver fatto clic su Rivedi in Configurazione remota 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 scopri che un esperimento non sta attirando un numero sufficiente di utenti per A/B Testing per dichiarare un leader, puoi aumentare la distribuzione del tuo esperimento per raggiungere una percentuale maggiore della base di utenti dell'app.

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su A/B Testing .
  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 mostra 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 specificata.

Duplica o interrompi un esperimento

  1. Nella sezione Coinvolgi della barra di navigazione della console Firebase , fai clic su A/B Testing .
  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 dell'utente

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

Criterio di targeting Operatore/i 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 uno qualsiasi degli operatori contiene , non contiene o corrisponde esattamente , è possibile fornire un elenco di valori separati da virgole.

Quando si utilizza l'operatore contiene 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 abbinare l'inizio, la fine o l'intera stringa di destinazione.

Pubblico/i di utenti include tutto,
comprende 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 che hanno come target i 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 incontri questo ritardo con i nuovi utenti, che in genere sono iscritti ai segmenti di pubblico idonei 24-48 ore dopo la creazione, o per i segmenti di pubblico creati di recente .

Per Remote Config, ciò significa che anche se un utente si qualifica tecnicamente per un pubblico, se Analytics non ha ancora aggiunto l'utente al pubblico quando viene eseguito "activateFetched", l'utente non sarà incluso nell'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 di stringa per le proprietà dell'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 contiene 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 abbinare l'inizio, la fine o l'intera stringa di destinazione.
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 locali utilizzate per selezionare gli utenti che potrebbero essere inclusi nell'esperimento. Questo criterio di targeting è disponibile solo per Remote Config.
Primo aperto più di
meno di
fra
Scegli come target gli utenti in base alla prima volta che hanno aperto la tua app, specificata in giorni. Questo criterio di targeting è disponibile solo per la messaggistica in-app di Firebase.
Ultimo coinvolgimento 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, specificata in giorni. Questo criterio di targeting è disponibile solo per la messaggistica in-app di Firebase.

Metriche di test A/B

Quando crei l'esperimento, scegli una metrica principale, o obiettivo , che viene utilizzata per determinare la variante vincente. Dovresti anche tenere traccia di altre metriche per comprendere meglio il rendimento di ciascuna variante dell'esperimento e tenere traccia delle tendenze importanti che possono differire per ciascuna 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 nell'esperimento.

Ad esempio, supponiamo che tu stia utilizzando Remote Config per avviare due diversi flussi di gioco nella tua app e desideri ottimizzare gli acquisti in-app e le entrate pubblicitarie, ma desideri anche monitorare la stabilità e la fidelizzazione degli utenti di ciascuna variante. In questo caso, potresti prendere in considerazione la scelta delle entrate totali stimate come metrica dell'obiettivo perché include le entrate degli acquisti in-app e le entrate pubblicitarie, quindi, per Altre metriche da monitorare , potresti aggiungere quanto segue:

  • Per tenere traccia della fidelizzazione giornaliera e settimanale degli utenti, aggiungi Conservazione (2-3 giorni) e Conservazione (4-7 giorni) .
  • Per confrontare la stabilità tra i due flussi di gioco, aggiungi gli utenti senza crash .
  • Per visualizzare visualizzazioni più dettagliate di ciascun tipo di entrate, aggiungi Entrate da acquisto e Entrate stimate pubblicitarie .

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

Metriche dell'obiettivo

metrico Descrizione
Utenti senza crash La percentuale di utenti che non hanno riscontrato errori nell'app rilevati da Firebase Crashlytics SDK durante l'esperimento.
Entrate pubblicitarie stimate Stima delle entrate pubblicitarie.
Entrate totali stimate Valore combinato per l'acquisto e ricavi pubblicitari stimati.
Entrate da acquisto Valore combinato per tutti gli purchase e gli eventi 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.
primo_aperto 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_elimina Un evento di Analytics che si attiva quando una notifica inviata dal compositore di 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_aggiornamento Un evento Analytics che tiene traccia dell'aggiornamento del sistema operativo del dispositivo a una nuova versione. Per ulteriori informazioni, consulta Eventi raccolti automaticamente .
vista_schermo Un evento Analytics che tiene traccia delle schermate visualizzate all'interno della tua app. Per ulteriori informazioni, consulta Monitorare le visualizzazioni dello schermo .
inizio_sessione Un evento 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 BigQuery, i progetti Firebase dovrebbero adottare il piano tariffario "Blaze" con pagamento in base al consumo. BigQuery addebita l'archiviazione di dati, lo streaming di inserimenti e l'esecuzione di query sui dati. Il caricamento e l'esportazione dei dati sono gratuiti. Per ulteriori informazioni, consulta i prezzi di BigQuery o la sandbox di BigQuery.

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 mostra le opzioni per eseguire l'esportazione dei dati di analisi BiqQuery per tutte le app nel progetto.

Per interrogare i dati di analisi 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 Interroga i dati dell'esperimento (questa opzione non è disponibile per i progetti a livello gratuito) .

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

  3. Nel compositore di query, seleziona Esegui query. 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 rispetto ai dati disponibili nella console di BigQuery.