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.
- Nell'editor Unity, seleziona la scheda Progetto, poi espandi Hamster > Prefabs > Menus e fai clic su MainMenu.
- Nella gerarchia del prefab, individua il sotto-oggetto disattivato denominato DebugMenuButton e fai clic per aprirlo nella scheda Inspector.
- Nella scheda Inspector, seleziona la casella nell'angolo in alto a sinistra accanto al campo di testo contenente DebugMenuButton per abilitarlo.
- Salva il prefab.
Se esegui il gioco nell'editor o sul dispositivo, il menu dovrebbe ora essere accessibile.
3. Attiva il sottomenu Remote Config
- 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.
- Nella scheda Gerarchia, espandi la gerarchia e fai clic sul sotto-oggetto in DebugMenu > Panel, etichettato Remote Config Actions.
- Nella scheda Inspector di Unity, attiva Remote Config Actions selezionando la casella a sinistra del campo di testo contenente il nome dell'oggetto.
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:
- 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. - Fai clic sull'icona X accanto alla condizione per eliminarla.
- Accanto al valore predefinito rimanente, attiva il pulsante di attivazione/disattivazione Usa predefinito in-app.
- Fai clic su Salva per salvare le modifiche, poi fai clic su Pubblica modifiche per pubblicarle.
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:
- Apri la console Firebase, espandi il menu Analytics e seleziona Definizioni personalizzate.
- Nella pagina Definizioni personalizzate, fai clic su Crea dimensioni personalizzate.
- Nella finestra Nuova dimensione personalizzata, imposta il nome della dimensione su "Sentiment sottotitoli" e seleziona Utente dal menu a discesa Ambito.
- 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.
- Innanzitutto, seleziona Modifica per il parametro
subtitle_override
nella pagina Remote Config della Console Firebase:
- Nella finestra di dialogo Modifica parametro visualizzata, fai clic su Aggiungi nuovo.
- Dall'elenco visualizzato, seleziona Esperimento.
- Inserisci un nome e una descrizione per l'esperimento.
- Poi scegli le condizioni di targeting. Innanzitutto, seleziona l'app dal menu a discesa.
- Poi, fai clic su E per aggiungere una nuova condizione, seleziona Proprietà utente e scegli
subtitle_sentiment
. Se non viene visualizzato, inseriscilo manualmente. - Poiché vuoi impostare un sottotitolo solo per gli utenti il cui sentimento attuale dei sottotitoli include "annoio", scegli contiene e digita
bored
. - 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.
- Poi, seleziona un obiettivo che il test cercherà di massimizzare. Scegli Fidelizzazione (2-3 giorni).
- 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. - 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}}
- 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}}
- Imposta i rapporti tra le varianti con numeri interi nel seguente modo:
- Base di riferimento: 1
- Variante A: 100
- Variante B: 100
Queste 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.
- Salva e invia facendo clic su Avvia esperimento, poi fai clic su Avvia nel popup di conferma.
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?