Implementa i test A/B per il tuo gioco Unity con Firebase Remote Config

1. Introduzione

In questo codelab, imparerai a creare un esperimento Remote Config utilizzando A/B Testing per il gioco di esempio, MechaHamster: Level Up with Firebase Edition, che hai modificato in Strumenti del gioco con Firebase Remote Config.

Il test A/B con Remote Config ti consente di testare le modifiche apportate all'interfaccia utente, alle funzionalità o alle campagne di coinvolgimento della tua app su un pubblico di destinazione prima di renderle disponibili a un pubblico più ampio. Puoi anche utilizzare i risultati dell'esperimento per:

  • Determina quali varianti del valore del parametro migliorano le metriche chiave come entrate e fidelizzazione.
  • Scopri quali sottogruppi di utenti preferiscono le varianti.
  • Raccogli e archivia i dati dell'esperimento per eseguire ulteriori analisi sugli effetti dell'impostazione di diversi valori parametro.

Questa è l'essenza dei test A/B: ti consente di utilizzare il codice instrumentato per Remote Config e lanciare esperimenti che controllano i valori ricevuti dai client in base alle condizioni di Remote Config (incluse le proprietà utente di Google Analytics), alle implementazioni percentuali, agli eventi di conversione di Analytics e a una combinazione di questi.

Innanzitutto, implementerai una condizione che determina chi verrà incluso nell'esperimento impostando le proprietà utente in base alle azioni dell'utente. Poi, creerai un esperimento di test A/B che utilizza le proprietà utente di Google Analytics per determinare quali clienti sono inclusi nell'esperimento. Infine, utilizzerai questi dati per capire meglio il tuo pubblico.

Obiettivi didattici

  • Come configurare A/B Testing utilizzando i valori di Remote Config sottostanti
  • Come utilizzare le proprietà utente di Google Analytics nell'ambito delle condizioni per l'ammissione ai test A/B

Prerequisiti

Che cosa ti serve

  • Unity 2019.1.0f1 o versione successiva con supporto per le build per iOS e/o Android

2. Attivare il menu di debug

Nel progetto è nascosto un menu di debug e il pulsante per accedere a questo menu esiste nel gioco, ma al momento non è abilitato. Devi attivare il pulsante per accedervi dal prefab MainMenu.

  1. Nell'editor Unity, seleziona la scheda Progetto, poi in Asset espandi Hamster > Prefab > Menu e fai clic su MainMenu.

La scheda Progetto dell'editor Unity che mostra\ngli asset. Criceto, prefabbricati, menu

  1. Nella gerarchia del prefab, individua l'oggetto secondario disattivato denominato DebugMenuButton e fai clic per aprirlo nella scheda Inspector (Ispettore).

L'editor Unity mostra il menu principale,\ncon DebugMenu disabilitato

  1. Nella scheda Ispezione, seleziona la casella nell'angolo in alto a sinistra accanto al campo di testo contenente DebugMenuButton per attivarlo.

La scheda Inspector per DebugMenuButton\ncon la casella di controllo

  1. Salva il prefabbricato.

Se esegui il gioco nell'editor o sul dispositivo, il menu dovrebbe essere ora accessibile.

3. Attiva il sottomenu Remote Config

  1. Nella scheda Progetto nell'editor Unity, espandi Asset > Criceto > Prefab > Menu e fai doppio clic sull'oggetto DebugMenu per aprirlo nella scheda Gerarchia dell'editor.

    Voce DebugMenu nidificata in Asset,\nHamster, Prefab, Menu
  2. Nella scheda Gerarchia, espandi la gerarchia e fai clic sull'oggetto secondario in DebugMenu > Riquadro, denominato Remote Config Actions (Azioni di configurazione remota).

Azioni di Remote Config nidificate in\nCanvas, DebugMenu

  1. Nella scheda Inspector di Unity, abilita Azioni di configurazione remota selezionando la casella a sinistra del campo di testo contenente il nome dell'oggetto.

Editor Unity con Remote Config\nAzioni attivate in DebugMenu, Riquadro

Contiene due GameObject secondari denominati Set Bored Of Subtitle e Set Enjoys Subtitle, entrambi configurati per chiamare metodi esistenti, ma non implementati, in DebugMenu.cs.

4. Ripristinare l'impostazione di override dei sottotitoli codificati predefinita in-app

Nel codelab precedente, hai sostituito il valore predefinito di un parametro come JSON e hai utilizzato le condizioni per pubblicare varianti diverse. Nell'ambito di questo codelab, eliminerai la condizione che hai creato e reintrodurrai la condizione predefinita in-app. La sovrascriverai solo con il risultato del test A/B.

Per riattivare l'impostazione predefinita in-app:

  1. Apri la pagina Remote Config nella Console Firebase e fai clic sull'icona a forma di matita accanto al parametro subtitle_override per aprire il riquadro laterale Modifica parametro.
  2. Fai clic sull'icona X accanto alla condizione per eliminarla.
  3. Accanto al valore predefinito rimanente, attiva l'opzione di attivazione/disattivazione Usa valore predefinito in-app.

Eliminazione di una condizione dall'editor dei parametri Remote\nConfig

  1. Fai clic su Salva per salvare le modifiche e poi su Pubblica modifiche per pubblicarle.Opzione Pubblica\nmodifiche nella pagina Remote Config

5. Impostare le proprietà utente nelle funzioni di debug

Ora dovrai scrivere i corpi delle funzioni per alcune funzioni di Google Analytics preconfigurate, ma non implementate, in DebugMenu.cs (che puoi trovare in Asset > Hamster > Script > Stati).

Queste funzioni impostano le proprietà utente, che permettono di descrivere segmenti della base utenti e vengono utilizzate per registrare le impressioni dell'utente nei confronti dei sottotitoli del gioco.

Implementa SetUserBoredOfSubtitle e SetUserEnjoysSubtitle individuando le versioni esistenti in DebugMenu.cs e sovrascrivendole nel seguente modo:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Se la tua app è configurata correttamente con Google Analytics, puoi chiamare una di queste funzioni per rendere la proprietà disponibile per le condizioni di Remote Config. Per chiamare SetUserBoredOfSubtitle da un dispositivo mobile, avvia il gioco e premi il pulsante Menu di debug nel menu principale, quindi premi Imposta annoiato per sottotitoli.

6. Creare una dimensione personalizzata

In seguito, configurerai varie varianti di sottotitoli in modo che l'subtitle_override sia in grado di individuare i sottotitoli migliori. Tuttavia, nel tuo test A/B pubblicherai queste varianti solo per gli utenti che ritenevano che il sottotitolo corrente (registrato in subtitle_sentiment) includa la parola "annoiato".

Utilizzerai una dimensione personalizzata per creare e monitorare parametri personalizzati negli eventi Analytics. Per saperne di più, consulta Dimensioni e metriche personalizzate.

Per creare una nuova dimensione personalizzata:

  1. Apri la console Firebase, espandi il menu Analytics e seleziona Definizioni personalizzate.
  2. Nella pagina Definizioni personalizzate, fai clic su Crea dimensioni personalizzate.
  3. Nella finestra Nuova dimensione personalizzata, imposta Nome dimensione su "Sentiment sottotitoli". e seleziona Utente dall'elenco a discesa Ambito.
  4. Nel campo Proprietà utente, seleziona subtitle_sentiment.

7. Configurare l'esperimento di test A/B

Poi, crea un esperimento di test A/B per impostare valori diversi per subtitle_override da testare l'uno con l'altro al fine di ottimizzare la fidelizzazione utenti di due o tre giorni.

  1. Innanzitutto, seleziona Modifica nel parametro subtitle_override nella pagina Remote Config della console Firebase:

Il parametro subtitle_override della\npagina Remote Config, in cui è visualizzata l'opzione Modifica.

  1. Nella finestra di dialogo Modifica parametro visualizzata, fai clic su Aggiungi nuovo.

L'opzione Aggiungi nuovo esperimento nella pagina\nModifica parametro di Remote Config.

  1. Nell'elenco visualizzato, seleziona Esperimento.

Pagina dei parametri di Remote Config: aggiungi nuovo\nesperimento

  1. Inserisci un nome e una descrizione per l'esperimento.

Nome e descrizione dell'esperimento\nsezione

  1. Poi scegli le condizioni di targeting. Per prima cosa, seleziona l'app dal menu a discesa.

Il passaggio Targeting di una configurazione di A/B Testing, con un'app selezionata

  1. Poi, fai clic su E per aggiungere una nuova condizione, seleziona Proprietà utente e scegli subtitle_sentiment. Se non viene visualizzato, inseriscilo manualmente.
  2. Dal momento che vuoi impostare un sottotitolo solo per coloro il cui attuale sentiment dei sottotitoli include "annoiato", scegli contiene e digita bored.
  3. Se vuoi, scegli la percentuale di pubblico che soddisfa i criteri precedenti da sottoporre al test. Seleziona 100% per evitare una casualità che non puoi controllare facilmente.

Sezione del targeting per test A/B con\nsubtitle_sentiment selezionato

  1. Quindi, seleziona un obiettivo in base al quale il test cercherà di massimizzare. Seleziona Fidelizzazione (2-3 giorni).

Sezione Scopi dei test A/B

  1. In seguito, imposta i parametri dell'esperimento e crea diverse varianti dei sottotitoli . Queste varianti sono i diversi valori che i test A/B mostreranno agli utenti il cui subtitle_sentiment contiene "annoiato" e il test A/B determinerà quale variante è la migliore per massimizzare la fidelizzazione.
  2. Inserisci il seguente valore del parametro per la variante A:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Inserisci il seguente valore del parametro per la variante B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Imposta i rapporti delle varianti con numeri interi come segue:
    • Base di riferimento: 1
    • Variante A: 100
    • Variante B: 100
    Il risultato sarà una ponderazione totale dello 0,5% per la Baseline, del 49,8% per la Variante A e del 49,8% per la Variante B.Sezione di configurazione delle ponderazioni delle variantiQueste varianti specificano che una volta su 201, il Test A/B viene mostrato per impostazione predefinita a coloro che si annoiano dei sottotitoli, ma 200/201 volte, pubblicherà uno dei due nuovi valori e sovrascriverà la schermata del titolo.
  5. Salva e invia facendo clic su Avvia esperimento, poi su Avvia nel popup di conferma.Fai clic su Avvia per avviare l'esperimento.

8. Esegui il metodo Imposta proprietà utente e aggiorna

Ora hai impostato varie proprietà relative all'utente, che possono essere utilizzate per indirizzare la logica o la presentazione del gioco.

Se non hai mai eseguito il metodo SetUserProperty o lo hai impostato su enjoys, dovresti comunque vedere il sottotitolo predefinito quando apri il gioco.

Se lo hai impostato su bored (prima del nuovo recupero), dovresti vedere uno dei nuovi valori in una proporzione approssimativa del 50/50.

Una volta che un dispositivo ha eseguito un esperimento di test A/B, i valori che riceve dall'esperimento non cambieranno e sono persistenti per installazione. Di conseguenza, per ricevere uno degli altri valori sperimentali, devi creare una nuova installazione reinstallando il gioco sullo stesso dispositivo/simulatore o su un nuovo dispositivo/simulatore.

In un test A/B reale lanciato nella tua base utenti, devi assegnare alla linea di base un peso simile a quello delle altre varianti. Tuttavia, in questo caso, devi assegnare probabilità molto distorte per verificare che l'esperimento funzioni. Se (nel caso 1/201) continui a ricevere il valore predefinito, prova a reinstallare il gioco sul dispositivo/simulatore.

Un altro effetto di ciò è che il ripristino della proprietà utente su enjoys non riporterà il valore al valore di riferimento, ma puoi farlo anche in questo caso passando a enjoys e reinstallando.

9. Complimenti!

Hai utilizzato i test A/B di Remote Config per fare esperimenti con diversi valori di Remote Config e stabilire in che modo ciascuno influisce sulle metriche di Analytics.

Argomenti trattati

  • Come configurare A/B Testing utilizzando valori Remote Config con strumentazione
  • Come utilizzare le proprietà utente di Google Analytics nell'ambito delle condizioni di ammissione agli esperimenti A/B

Passaggi successivi

Al termine dell'esperimento, puoi selezionarne uno dall'elenco degli esperimenti nel tuo progetto per decidere cosa farne. Vuoi sceglierne uno come "vincitore"? o condurre altri esperimenti?