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

1. Introduzione

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

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

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

Questa è l'essenza del test A/B: ti consente di prendere codice strumentato per Remote Config e avviare esperimenti che controllano i valori ricevuti dai clienti, in base alle condizioni di Remote Config (comprese le proprietà utente di Google Analytics), implementazioni percentuali, eventi di conversione di Analytics, e 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. Successivamente, creerai un esperimento di test A/B che utilizza le proprietà utente di Google Analytics per determinare quali clienti sono inclusi nell'esperimento. E, infine, utilizzerai questi dati per capire di più sul tuo pubblico.

Cosa imparerai

  • Come impostare il test A/B 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

Di cosa avrai bisogno

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

2. Abilitazione del menu Debug

C'è un menu di debug nascosto nel progetto e il pulsante per accedere a questo menu esiste nel gioco ma non è attualmente abilitato. È necessario abilitare il pulsante per accedervi dal menu principale prefabbricato.

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

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. Nella gerarchia prefabbricata, trova il sottooggetto disabilitato denominato DebugMenuButton e fai clic su di esso per aprirlo nella scheda Ispettore .

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

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

The Inspector tab for DebugMenuButton\nwith checkbox

  1. Salva il prefabbricato.

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

3. Abilitare il sottomenu Configurazione remota

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

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. Nella scheda Gerarchia , espandere la gerarchia e fare clic sul sottooggetto in DebugMenu > Panel , denominato Remote Config Actions .

Remote Config Actions nested under\nCanvas, DebugMenu

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

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

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

4. Ripristina la sostituzione dei sottotitoli sull'impostazione predefinita in-app

Nel codelab precedente , hai sovrascritto il valore predefinito di un parametro come JSON e hai utilizzato le condizioni per servire varianti diverse. Nell'ambito di questo codelab, eliminerai la condizione che hai creato e reintrodurrai l'impostazione predefinita in-app, sovrascrivendola 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 della matita accanto al parametro subtitle_override per aprire il pannello laterale Modifica parametro .
  2. Fare clic sull'icona X accanto alla condizione per eliminarla.
  3. Accanto al valore predefinito rimanente, attiva l'interruttore Utilizza impostazione predefinita in-app .

Deleting a condition from the Remote\nConfig parameter editor

  1. Fare clic su Salva per salvare le modifiche, quindi fare clic su Pubblica modifiche per pubblicare le modifiche. Publish\nchanges option on the Remote Config page

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 puoi trovare in Asset > Hamster > Script > Stati).

Queste funzioni impostano le proprietà dell'utente , che sono modi per descrivere segmenti della tua base utenti e vengono utilizzate per registrare le sensazioni dell'utente riguardo ai sottotitoli del gioco.

Implementa SetUserBoredOfSubtitle e SetUserEnjoysSubtitle trovando le loro versioni esistenti in DebugMenu.cs e sovrascrivendole come segue:

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 alle condizioni di Remote Config. Per chiamare SetUserBoredOfSubtitle da un dispositivo mobile, avvia il gioco e premi il pulsante Menu Debug nel menu principale, quindi premi Set Bored of Subtitle .

6. Crea una dimensione personalizzata

Successivamente, imposterai varie varianti di sottotitoli per subtitle_override per vedere quale sottotitolo funziona meglio. Ma, nel tuo test A/B, servirai queste varianti solo agli utenti i cui sentimenti riguardo al sottotitolo corrente (come registrato in subtitle_sentiment ) includono la parola "annoiato".

Utilizzerai una dimensione personalizzata per creare e monitorare parametri personalizzati sugli eventi Analytics. Per ulteriori informazioni, consulta Dimensioni e metriche personalizzate .

Per creare una nuova dimensione personalizzata:

  1. Apri la console Firebase , espandi il menu Analisi 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 "Sentimento sottotitoli" e, dal menu a discesa Ambito , seleziona Utente .
  4. Per il campo Proprietà utente , seleziona subtitle_sentiment.

7. Configura l'esperimento A/B Testing

Successivamente, 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 sul parametro subtitle_override nella pagina Configurazione remota della console Firebase:

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. Dalla finestra di dialogo Modifica parametro visualizzata, fare clic su Aggiungi nuovo .

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. Dall'elenco visualizzato, seleziona Esperimento .

Remote Config parameter page: Add new\nexperiment

  1. Inserisci un nome e una descrizione per il tuo esperimento.

Experiment name and description\nsection

  1. Successivamente, scegli le condizioni di targeting. Innanzitutto, seleziona la tua app dal menu a discesa.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. Successivamente, fai clic su E per aggiungere una nuova condizione, quindi seleziona Proprietà utente e scegli subtitle_sentiment . Se non appare, inseriscilo manualmente.
  2. Poiché desideri impostare un sottotitolo solo per coloro la cui opinione corrente sui sottotitoli include "annoiato", scegli contiene e digita bored .
  3. Facoltativamente, scegli quale percentuale del pubblico che corrisponde ai criteri di cui sopra esporre al test. Seleziona 100% per evitare casualità che non puoi controllare facilmente.

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. Successivamente, seleziona un obiettivo per il quale il test tenterà di massimizzare. Scegli Conservazione (2-3 giorni) .

A/B Testing Goals section

  1. Successivamente, imposta i parametri dell'esperimento e crea diverse varianti di sottotitoli . Queste varianti sono i diversi valori che il test A/B offrirà agli utenti il ​​cui subtitle_sentiment contiene "annoiato" e il test A/B determinerà quale variante è la migliore per massimizzare la fidelizzazione.
  2. Immettere 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. Immettere 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 : 1
    • Variante A : 100
    • Variante B : 100
    Ciò si tradurrà in pesi totali dello 0,5% per la Baseline, del 49,8% per la Variante A e del 49,8% per la Variante B. Variant weights configuration\nsection Queste varianti specificano che una volta su 201, il test A/B serve per impostazione predefinita a coloro che sono annoiati dai sottotitoli, ma 200/201 volte servirà uno dei due nuovi valori e sovrascriverà la schermata del titolo.
  5. Salva e invia facendo clic su Avvia esperimento , quindi su Avvia nel popup di conferma. Click Start to start the\nexperiment

8. Eseguire il metodo Imposta proprietà utente e aggiornare

Ora hai impostato varie proprietà sull'utente, che possono quindi essere utilizzate per dirigere la logica o la presentazione del tuo gioco.

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

Se lo hai impostato su bored (prima di recuperare), dovresti vedere uno dei nuovi valori in un rapporto di circa 50/50.

Una volta che un dispositivo ha partecipato a un esperimento di test A/B, i valori che riceve da tale esperimento non cambieranno e saranno persistenti per ogni installazione . Di conseguenza, per ricevere uno degli altri valori sperimentali, è necessario creare una nuova installazione reinstallando il gioco sullo stesso dispositivo/simulatore o installando il gioco su un nuovo dispositivo/simulatore.

In un vero test A/B lanciato sulla tua base utenti, dovresti dare alla linea di base un peso simile a quello delle altre varianti. Ma in questo caso, assegni probabilità molto distorte per verificare che l’esperimento stia funzionando. Se (nel caso 1/201) ricevi ancora il valore predefinito, prova a reinstallare il gioco sul tuo dispositivo/simulatore.

Un altro effetto di ciò è che riportare la proprietà utente su enjoys non riporterà il valore alla linea di base ma, ancora una volta, puoi farlo passando a enjoys e reinstallando.

9. Congratulazioni!

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

Di cosa abbiamo parlato

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

Prossimi passi

Una volta terminato l'esperimento, puoi selezionarne uno dall'elenco degli esperimenti nel tuo progetto per decidere cosa vuoi farne. Vuoi sceglierne uno come "vincitore" o condurre più esperimenti?