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

1. Introduzione

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

I test A/B con Remote Config ti consentono di testare le modifiche alla UI, alle funzionalità o alle campagne di coinvolgimento della tua app su un segmento di pubblico mirato prima di implementarle su un pubblico più ampio. Puoi anche utilizzare i risultati degli esperimenti per:

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

Questa è l'essenza del test A/B: ti consente di prendere il codice strumentato 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 A/B Testing che utilizza le proprietà utente di Google Analytics per determinare quali client sono inclusi nell'esperimento. Infine, utilizzerai questi dati per saperne di più sul tuo pubblico.

Obiettivi didattici

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

Prerequisiti

Che cosa ti serve

  • Unity 2019.1.0f1 o versioni successive con supporto per la compilazione di iOS e/o Android

2. Attivare il menu di debug

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

  1. Nell'editor Unity, seleziona la scheda Progetto, poi espandi Hamster > Prefabs > Menus e fai clic su MainMenu.

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

  1. Nella gerarchia del prefab, individua il sotto-oggetto disattivato denominato DebugMenuButton e fai clic per aprirlo nella scheda Inspector.

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

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

La scheda Strumento di controllo per DebugMenuButton\ncon casella di controllo

  1. Salva il prefab.

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

3. Attiva il sottomenu Remote Config

  1. Nella scheda Project (Progetto) dell'editor Unity, espandi Assets (Asset) > Hamster > Prefabs (Prefab) > Menus (Menu) e fai doppio clic sull'oggetto DebugMenu per aprirlo nella scheda Hierarchy (Gerarchia) dell'editor.

    Elemento DebugMenu nidificato in Asset, Hamster, Prefab, Menus
  2. Nella scheda Gerarchia, espandi la gerarchia e fai clic sul sotto-oggetto in DebugMenu > Panel, etichettato Remote Config Actions.

Azioni di Remote Config nidificate in\nCanvas, DebugMenu

  1. Nella scheda Inspector di Unity, attiva Remote Config Actions selezionando la casella a sinistra del campo di testo contenente il nome dell'oggetto.

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

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

4. Ripristinare la sostituzione dei sottotitoli codificati con il valore predefinito 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 il valore predefinito in-app, che verrà sostituito solo dal risultato del test A/B.

Per riattivare il valore predefinito 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 il pulsante di attivazione/disattivazione Usa predefinito in-app.

Eliminazione di una condizione dall'editor dei parametri Remote Config

  1. Fai clic su Salva per salvare le modifiche, poi fai clic su Pubblica modifiche per pubblicarle.Opzione Pubblica modifiche nella pagina Remote Config

5. Impostare le proprietà utente nelle funzioni di debug

Ora scriverai i corpi delle funzioni per alcune funzioni di Google Analytics preconfigurate ma non implementate in DebugMenu.cs (che si trova in Asset > Hamster > Scripts > States).

Queste funzioni impostano le proprietà utente, che sono modi per descrivere i segmenti della base utenti e vengono utilizzate per registrare l'opinione dell'utente sui sottotitoli del gioco.

Implementa SetUserBoredOfSubtitle e SetUserEnjoysSubtitle trovando 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, poi premi Imposta annoiato dai sottotitoli.

6. Creare una dimensione personalizzata

Successivamente, configurerai varie varianti di sottotitoli per il subtitle_override per vedere quali funzionano meglio. Tuttavia, nel test A/B, mostrerai queste varianti solo agli utenti i cui sentimenti relativi al sottotitolo attuale (registrati in subtitle_sentiment) includono la parola "annoio".

Utilizzerai una dimensione personalizzata per creare e monitorare i parametri personalizzati negli eventi Analytics. Per ulteriori informazioni, 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 il nome della dimensione su "Sentiment sottotitoli" e seleziona Utente dal menu a discesa Ambito.
  4. Nel campo Proprietà utente, seleziona subtitle_sentiment..

7. Configura 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 rispetto all'altro al fine di ottimizzare la fidelizzazione degli utenti per due o tre giorni.

  1. Innanzitutto, seleziona Modifica per il parametro subtitle_override nella pagina Remote Config della Console Firebase:

Il parametro subtitle_override nella\npagina Remote Config, che mostra l'opzione Modifica.

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

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

  1. Dall'elenco visualizzato, seleziona Esperimento.

Pagina dei parametri di Remote Config: aggiungi un nuovo esperimento

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

Sezione Nome e descrizione dell'esperimento

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

Il passaggio Targeting di una configurazione di test A/B, 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. Poiché vuoi impostare un sottotitolo solo per gli utenti il cui sentimento attuale dei sottotitoli include "annoio", scegli contiene e digita bored.
  3. Se vuoi, scegli la percentuale di pubblico che corrisponde ai criteri riportati sopra da esporre al test. Seleziona 100% per evitare la casualità che non puoi controllare facilmente.

Sezione Targeting del test A/B con\nsubtitle_sentiment selezionato

  1. Poi, seleziona un obiettivo che il test cercherà di massimizzare. Scegli Fidelizzazione (2-3 giorni).

Sezione Obiettivi del test A/B

  1. Successivamente, configura i parametri dell'esperimento e crea diverse varianti di sottotitoli codificati . Queste varianti sono i diversi valori che il test A/B mostrerà agli utenti il cui subtitle_sentiment contiene "annoio". 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 tra le varianti con numeri interi nel seguente modo:
    • Base di riferimento: 1
    • Variante A: 100
    • Variante B: 100
    In questo modo, i pesi totali saranno pari allo 0,5% per la base di riferimento, al 49,8% per la variante A e al 49,8% per la variante B.Sezione Configurazione ponderazioni delle variantiQueste varianti specificano che una volta su 201, i test A/B mostrano il valore predefinito a chi è annoiato dai sottotitoli, ma 200 volte su 201 mostreranno uno dei due nuovi valori e sostituiranno la schermata del titolo.
  5. Salva e invia facendo clic su Avvia esperimento, poi fai clic su Avvia nel popup di conferma.Fai clic su Avvia per iniziare l'esperimento.

8. Esegui il metodo Set User Property e aggiorna

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

Se non hai eseguito in precedenza il metodo SetUserProperty o l'hai impostato su enjoys, dovresti comunque visualizzare il sottotitolo predefinito all'apertura del gioco.

Se hai impostato bored (prima del recupero), dovresti visualizzare uno dei nuovi valori in un rapporto approssimativo di 50/50.

Una volta che un dispositivo è stato incluso in un esperimento di test A/B, i valori che riceve da quell'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 installandolo su un nuovo dispositivo/simulatore.

In un test A/B reale lanciato sulla tua base utenti, devi assegnare alla baseline un peso simile a quello delle altre varianti. In questo caso, però, assegni probabilità molto distorte per verificare che l'esperimento funzioni. Se (nel caso 1/201) ricevi ancora il valore predefinito, prova a reinstallare il gioco sul dispositivo/simulatore.

Un altro effetto è che se imposti di nuovo la proprietà utente su enjoys, il valore non verrà ripristinato alla baseline, ma puoi farlo passando a enjoys e reinstallando.

9. Complimenti!

Hai utilizzato i test A/B di Remote Config per sperimentare diversi valori di Remote Config e determinare in che modo ciascuno influisce sulle metriche di Analytics.

Argomenti trattati

  • Come configurare A/B Testing utilizzando i valori di Remote Config strumentati
  • Come utilizzare le proprietà utente di Google Analytics come parte delle condizioni di ammissione agli esperimenti di test 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?