Informazioni sui test A/B di Firebase

Per aiutarti a massimizzare la pertinenza e l'utilità dei risultati del test, questa pagina fornisce informazioni dettagliate su come funziona Firebase A/B Testing.

Misura di prova

L'inferenza di Firebase A/B Testing non richiede l'identificazione di una dimensione minima del campione prima di iniziare un esperimento. In generale, dovresti scegliere il livello di esposizione dell'esperimento maggiore con cui ti senti a tuo agio. Campioni di dimensioni maggiori aumentano le possibilità di trovare un risultato statisticamente significativo, soprattutto quando le differenze di prestazioni tra le varianti sono piccole. Potresti anche trovare utile consultare un calcolatore online delle dimensioni del campione per trovare la dimensione del campione consigliata in base alle caratteristiche del tuo esperimento.

Modifica esperimenti

Puoi modificare i parametri selezionati degli esperimenti in esecuzione, tra cui:

  • Nome dell'esperimento
  • Descrizione
  • Condizioni di targeting
  • Valori delle varianti

Per modificare un esperimento:

  1. Apri la pagina dei risultati per l'esperimento che desideri modificare.
  2. Dal menu Altro , seleziona Modifica esperimento in corso .
  3. Apporta le modifiche, quindi fai clic su Pubblica .

Tieni presente che la modifica del comportamento dell'app durante un esperimento in corso potrebbe influire sui risultati.

Logica di assegnazione delle varianti di Remote Config

Gli utenti che soddisfano tutte le condizioni di targeting dell'esperimento (inclusa la condizione di esposizione percentuale) vengono assegnati alle varianti dell'esperimento in base alle ponderazioni delle varianti e a un hash dell'ID esperimento e dell'ID di installazione Firebase dell'utente.

I segmenti di pubblico di Google Analytics sono soggetti a latenza e non sono immediatamente disponibili quando un utente soddisfa inizialmente i criteri del pubblico:

  • Quando crei un nuovo pubblico, potrebbero essere necessarie 24-48 ore per accumulare nuovi utenti.
  • I nuovi utenti vengono in genere iscritti nei segmenti di pubblico idonei 24-48 ore dopo essere diventati idonei.

Per il targeting sensibile al tempo, prendi in considerazione l'utilizzo delle proprietà utente di Google Analytics o delle opzioni di targeting integrate come Paese o regione, lingua e versione dell'app.

Una volta che un utente ha partecipato a un esperimento, viene assegnato in modo permanente alla variante dell'esperimento e riceve i valori dei parametri dall'esperimento finché l'esperimento rimane attivo, anche se le sue proprietà utente cambiano e non soddisfano più i criteri di targeting dell'esperimento.

Eventi di attivazione

Gli eventi di attivazione dell'esperimento limitano la misurazione dell'esperimento agli utenti dell'app che attivano l'evento di attivazione. L'evento di attivazione dell'esperimento non ha alcun impatto sui parametri dell'esperimento recuperati dall'app; tutti gli utenti che soddisfano i criteri di targeting dell'esperimento riceveranno i parametri dell'esperimento. Di conseguenza, è importante scegliere un evento di attivazione che si verifichi dopo che i parametri dell'esperimento sono stati recuperati e attivati, ma prima che i parametri dell'esperimento siano stati utilizzati per modificare il comportamento dell'app.

Pesi varianti

Durante la creazione dell'esperimento, è possibile modificare le ponderazioni predefinite delle varianti per inserire in una variante una percentuale maggiore di utenti dell'esperimento.

Interpretare i risultati dei test

Firebase A/B Testing utilizza l'inferenza frequentista per aiutarti a comprendere la probabilità che i risultati dell'esperimento si siano verificati esclusivamente a causa di un caso casuale. Questa probabilità è rappresentata da un valore di probabilità o valore p . Il valore p è la probabilità che la differenza di prestazione tra due varianti possa essersi verificata a causa del caso casuale, misurata da un valore compreso tra 0 e 1. Il test A/B utilizza un livello di significatività pari a 0,05 in modo che:

  • Un valore p inferiore a 0,05 indica una differenza statisticamente significativa tra le varianti, il che significa che è improbabile che si sia verificata per caso.
  • Un valore p maggiore di 0,05 indica che la differenza tra le varianti non è statisticamente significativa.

I dati dell'esperimento vengono aggiornati una volta al giorno e l'ora dell'ultimo aggiornamento viene visualizzata nella parte superiore della pagina dei risultati dell'esperimento.

Il grafico dei risultati dell'esperimento mostra i valori medi cumulativi della metrica selezionata. Ad esempio, se stai monitorando le entrate pubblicitarie per utente come metrica, mostra le entrate osservate per utente e se stai monitorando gli utenti senza arresti anomali, tiene traccia della percentuale di utenti che non hanno riscontrato un arresto anomalo. Questi dati sono cumulativi dall'inizio dell'esperimento.

I risultati sono suddivisi in dati osservati e dati di inferenza . I dati osservati vengono calcolati direttamente dai dati di Google Analytics e i dati di inferenza forniscono valori p e intervalli di confidenza per aiutarti a valutare la significatività statistica dei dati osservati.

Per ogni metrica vengono visualizzate le seguenti statistiche:

Dati osservati

  • Valore totale per la metrica monitorata (numero di utenti fidelizzati, numero di utenti che hanno subito un arresto anomalo, entrate totali)
  • Tasso specifico per metrica (tasso di fidelizzazione, tasso di conversione, entrate per utente)
  • Differenza percentuale (incremento) tra la variante e il riferimento

Dati di inferenza

  • L'IC al 95% (differenza nelle medie) visualizza un intervallo che contiene il valore "vero" della metrica tracciata con una confidenza del 95%. Ad esempio, se l'esperimento genera un CI del 95% per le entrate totali stimate comprese tra $ 5 e $ 10, esiste una probabilità del 95% che la vera differenza nelle medie sia compresa tra $ 5 e $ 10. Se l'intervallo CI include 0, non è stata rilevata una differenza statisticamente significativa tra la variante e il basale.

    I valori dell'intervallo di confidenza vengono visualizzati nel formato che corrisponde alla metrica tracciata. Ad esempio, il tempo (in HH:MM:SS ) per la fidelizzazione degli utenti, i dollari statunitensi per le entrate pubblicitarie per utente e la percentuale per il tasso di conversione.

  • Valore P , che rappresenta la probabilità che non vi sia alcuna vera differenza tra la variante e il basale; in altre parole, qualsiasi differenza osservata è probabilmente dovuta al caso. Più basso è il valore p, maggiore è la fiducia che la performance osservata rimanga vera in futuro. Un valore pari o inferiore a 0,05 indica una differenza significativa e una bassa probabilità che i risultati siano dovuti al caso. I valori P si basano su un test a una coda , in cui il valore della variante è maggiore del valore della linea di base. Firebase utilizza un test t della varianza disuguale per variabili continue (valori numerici, come le entrate) e un test z delle proporzioni per i dati di conversione (valori binari, come fidelizzazione degli utenti, utenti senza arresti anomali, utenti che attivano un evento di Google Analytics).

I risultati dell'esperimento forniscono informazioni importanti per ciascuna variante dell'esperimento, tra cui:

  • Quanto è più alta o più bassa ciascuna metrica dell'esperimento rispetto al valore di riferimento, come misurato direttamente (ovvero i dati effettivamente osservati)
  • La probabilità che la differenza osservata tra la variante e il riferimento possa essersi verificata a causa del caso casuale (valore p)
  • Un intervallo che probabilmente conterrà la "vera" differenza di rendimento tra la variante e il valore di riferimento per ogni metrica dell'esperimento: un modo per comprendere gli scenari di rendimento del "caso migliore" e del "caso peggiore"

Interpreta i risultati degli esperimenti forniti da Google Optimize

I risultati dei test A/B di Firebase per gli esperimenti iniziati prima del 23 ottobre 2023 sono stati forniti da Google Optimize. Google Optimize ha utilizzato l'inferenza bayesiana per generare statistiche approfondite dai dati dell'esperimento.

I risultati sono suddivisi in "dati osservati" e "dati modellati". I dati osservati sono stati calcolati direttamente dai dati analitici e i dati modellati sono stati derivati ​​dall'applicazione del nostro modello bayesiano ai dati osservati.

Per ogni metrica vengono visualizzate le seguenti statistiche:

Dati osservati

  • Valore totale (somma della metrica per tutti gli utenti nella variante)
  • Valore medio (valore medio della metrica per gli utenti nella variante)
  • Differenza percentuale rispetto al basale

Dati modellati

  • Probabilità di superare il riferimento: quanto è probabile che la metrica sia più alta per questa variante rispetto al riferimento
  • Differenza percentuale rispetto al riferimento: basata sulle stime del modello mediano della metrica per la variante e il riferimento
  • Intervalli metrici: gli intervalli in cui è più probabile che venga trovato il valore della metrica, con una certezza del 50% e del 95%

Nel complesso, i risultati dell'esperimento ci forniscono tre informazioni importanti per ciascuna variante dell'esperimento:

  1. Quanto è più alta o più bassa ciascuna metrica dell'esperimento rispetto alla linea di base, come misurata direttamente (ovvero, i dati effettivamente osservati)
  2. Quanto è probabile che ogni metrica dell'esperimento sia superiore al valore di riferimento/migliore in generale, in base all'inferenza bayesiana (rispettivamente probabilità di essere migliore/migliore)
  3. Gli intervalli plausibili per ciascuna metrica dell'esperimento in base all'inferenza bayesiana: scenari "caso migliore" e "caso peggiore" (intervalli credibili)

Determinazione del leader

Per gli esperimenti che utilizzano l'inferenza frequentista , Firebase dichiara che una variante è leader se esiste una differenza di rendimento statisticamente significativa tra la variante e il riferimento sulla metrica dell'obiettivo. Se più varianti soddisfano questo criterio, viene scelta la variante con il valore p più basso.

Per gli esperimenti che utilizzavano Google Optimize , Firebase ha dichiarato che una variante è un "leader chiaro" se aveva una probabilità superiore al 95% di essere migliore della variante di base nella metrica primaria. Se più varianti soddisfacevano i criteri di "leader chiaro", solo la variante con il miglior rendimento complessivo veniva etichettata come "leader chiaro".

Poiché la determinazione del leader si basa solo sull'obiettivo primario, dovresti considerare tutti i fattori rilevanti ed esaminare i risultati delle metriche secondarie prima di decidere se implementare o meno una variante principale. Potresti voler considerare il vantaggio atteso della modifica, il rischio di ribasso (come il limite inferiore dell'intervallo di confidenza per il miglioramento) e l'impatto su parametri diversi dall'obiettivo primario.

Ad esempio, se la tua metrica principale riguarda gli utenti senza arresti anomali e la Variante A è chiaramente leader rispetto alla base di riferimento, ma le metriche di fidelizzazione degli utenti della Variante A seguono la fidelizzazione degli utenti di base, potresti voler effettuare ulteriori indagini prima di implementare la Variante A su più ampia scala.

Puoi implementare qualsiasi variante, non solo quella principale, in base alla valutazione complessiva del rendimento in base alle metriche primarie e secondarie.

Durata dell'esperimento

Firebase consiglia di continuare l'esecuzione di un esperimento finché non vengono soddisfatte le seguenti condizioni:

  1. L'esperimento ha raccolto dati sufficienti per fornire un risultato utile. Gli esperimenti e i dati dei risultati vengono aggiornati una volta al giorno. Potresti consultare un calcolatore online delle dimensioni del campione per valutare la dimensione del campione consigliata per il tuo esperimento.
  2. L'esperimento è durato abbastanza a lungo da garantire un campione rappresentativo dei tuoi utenti e misurare il rendimento a lungo termine. Due settimane è il tempo di esecuzione minimo consigliato per un tipico esperimento di Remote Config.

I dati dell'esperimento vengono elaborati per un massimo di 90 giorni dall'inizio dell'esperimento. Dopo 90 giorni, l'esperimento viene interrotto automaticamente. I risultati dell'esperimento non vengono più aggiornati nella console Firebase e l'esperimento smette di inviare valori dei parametri specifici dell'esperimento. A questo punto, i client iniziano a recuperare i valori dei parametri in base alle condizioni impostate nel modello Remote Config. I dati storici dell'esperimento vengono conservati finché non elimini l'esperimento.

Schema BigQuery

Oltre a visualizzare i dati degli esperimenti di test A/B nella console Firebase, puoi controllare e analizzare i dati degli esperimenti in BigQuery. Sebbene il test A/B non disponga di una tabella BigQuery separata, le appartenenze agli esperimenti e alle varianti vengono archiviate su ogni evento di Google Analytics all'interno delle tabelle degli eventi di Analytics.

Le proprietà utente che contengono informazioni sull'esperimento sono nel formato userProperty.key like "firebase_exp_%" o userProperty.key = "firebase_exp_01" dove 01 è l'ID esperimento e userProperty.value.string_value contiene l'indice (in base zero) dell'esperimento variante dell'esperimento.

Puoi utilizzare queste proprietà utente dell'esperimento per estrarre i dati dell'esperimento. Ciò ti dà la possibilità di suddividere i risultati dell'esperimento in molti modi diversi e di verificare in modo indipendente i risultati dei test A/B.

Per iniziare, completa le seguenti operazioni come descritto in questa guida:

  1. Abilita l'esportazione BigQuery per Google Analytics nella console Firebase
  2. Accedi ai dati dei test A/B utilizzando BigQuery
  3. Esplora query di esempio

Abilita l'esportazione BigQuery per Google Analytics nella console Firebase

Se disponi del piano Spark, puoi utilizzare la sandbox BigQuery per accedere a BigQuery senza alcun costo, soggetto ai limiti della sandbox . Per ulteriori informazioni, consulta Prezzi e sandbox BigQuery .

Innanzitutto, assicurati di esportare i dati di Analytics in BigQuery:

  1. Apri la scheda Integrazioni , a cui puoi accedere utilizzando > Impostazioni progetto nella console Firebase .
  2. Se utilizzi già BigQuery con altri servizi Firebase, fai clic su Gestisci . In caso contrario, fare clic su Collegamento .
  3. Consulta Informazioni sul collegamento di Firebase a BigQuery , quindi fai clic su Avanti .
  4. Nella sezione Configura integrazione , attiva l'interruttore Google Analytics .
  5. Seleziona una regione e scegli le impostazioni di esportazione.

  6. Fai clic su Collega a BigQuery .

A seconda di come hai scelto di esportare i dati, potrebbe essere necessario fino a un giorno prima che le tabelle diventino disponibili. Per ulteriori informazioni sull'esportazione dei dati del progetto in BigQuery, consulta Esportare i dati del progetto in BigQuery .

Accedi ai dati dei test A/B in BigQuery

Prima di eseguire una query sui dati per un esperimento specifico, ti consigliamo di ottenere alcuni o tutti i seguenti elementi da utilizzare nella query:

  • ID esperimento: puoi ottenerlo dall'URL della pagina di panoramica dell'esperimento . Ad esempio, se il tuo URL è simile a https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 , l'ID esperimento è 25 .
  • ID proprietà di Google Analytics : questo è il tuo ID proprietà di Google Analytics a 9 cifre. Puoi trovarlo in Google Analytics; viene visualizzato anche in BigQuery quando espandi il nome del progetto per mostrare il nome della tabella eventi di Google Analytics ( project_name.analytics_000000000.events ).
  • Data dell'esperimento: per comporre una query più rapida ed efficiente, è buona norma limitare le query alle partizioni della tabella degli eventi giornalieri di Google Analytics che contengono i dati dell'esperimento, ovvero tabelle identificate con un suffisso YYYYMMDD . Pertanto, se l'esperimento si è svolto dal 2 febbraio 2024 al 2 maggio 2024, dovresti specificare un _TABLE_SUFFIX between '20240202' AND '20240502' . Per un esempio, consulta Selezionare i valori di un esperimento specifico .
  • Nomi eventi: in genere corrispondono alle metriche dell'obiettivo configurate nell'esperimento. Ad esempio, eventi in_app_purchase , ad_impression o eventi user_retention .

Dopo aver raccolto le informazioni necessarie per generare la query:

  1. Apri BigQuery nella console Google Cloud.
  2. Seleziona il tuo progetto, quindi seleziona Crea query SQL .
  3. Aggiungi la tua domanda. Per le query di esempio da eseguire, consulta Esplora le query di esempio .
  4. Fare clic su Esegui .

Esegui query sui dati dell'esperimento utilizzando la query generata automaticamente dalla console Firebase

Se utilizzi il piano Blaze, la pagina Panoramica dell'esperimento fornisce una query di esempio che restituisce il nome dell'esperimento, le varianti, i nomi degli eventi e il numero di eventi per l'esperimento che stai visualizzando.

Per ottenere ed eseguire la query generata automaticamente:

  1. Dalla console Firebase, apri A/B Testing e seleziona l'esperimento A/B Testing su cui desideri eseguire query per aprire la panoramica dell'esperimento .
  2. Nel menu Opzioni, sotto Integrazione BigQuery , seleziona Interroga dati esperimento . Questo apre il tuo progetto in BigQuery all'interno della console della console Google Cloud e fornisce una query di base che puoi utilizzare per eseguire query sui dati dell'esperimento.

L'esempio seguente mostra una query generata per un esperimento con tre varianti (inclusa la baseline) denominata "Esperimento di benvenuto invernale". Restituisce il nome dell'esperimento attivo, il nome della variante, l'evento univoco e il conteggio degli eventi per ciascun evento. Tieni presente che il generatore di query non specifica il nome del tuo progetto nel nome della tabella, poiché si apre direttamente all'interno del tuo progetto.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

Per ulteriori esempi di query, vai a Esplorare query di esempio .

Esplora query di esempio

Le sezioni seguenti forniscono esempi di query che puoi utilizzare per estrarre i dati degli esperimenti di test A/B dalle tabelle eventi di Google Analytics.

Estrai i valori di deviazione standard dell'acquisto e dell'esperimento da tutti gli esperimenti

Puoi utilizzare i dati dei risultati dell'esperimento per verificare in modo indipendente i risultati del Firebase A/B Testing. La seguente istruzione SQL BigQuery estrae le varianti dell'esperimento, il numero di utenti unici in ciascuna variante e somma le entrate totali derivanti dagli eventi in_app_purchase ed ecommerce_purchase e le deviazioni standard per tutti gli esperimenti nell'intervallo di tempo specificato come date di inizio e fine _TABLE_SUFFIX . Puoi utilizzare i dati ottenuti da questa query con un generatore di significatività statistica per test t a una coda per verificare che i risultati forniti da Firebase corrispondano alla tua analisi.

Per ulteriori informazioni su come il test A/B calcola l'inferenza, consulta Interpretare i risultati del test .

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

Seleziona i valori di un esperimento specifico

La seguente query di esempio illustra come ottenere dati per un esperimento specifico in BigQuery. Questa query di esempio restituisce il nome dell'esperimento, i nomi delle varianti (inclusa la linea di base), i nomi degli eventi e i conteggi degli eventi.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName

Limiti

Il test A/B è limitato a 300 esperimenti totali, 24 esperimenti in corso e 24 bozze di esperimenti.

  • Se raggiungi il limite totale di 300 esperimenti o il limite di 24 bozze di esperimenti, devi eliminare un esperimento esistente prima di crearne uno nuovo.

  • Se raggiungi il limite di 24 esperimenti in esecuzione, devi interrompere un esperimento in esecuzione prima di avviarne uno nuovo.

Un esperimento può avere un massimo di 8 varianti (inclusa la baseline) e fino a 25 parametri per ciascuna variante. Un esperimento può avere una dimensione fino a circa 200 KiB. Ciò include nomi di varianti, parametri di variante e altri metadati di configurazione.