1. Introduzione
Supponiamo che tu debba modificare i valori di alcuni parametri nella tua app dopo averla pubblicata sul Play Store. In genere, devi ripubblicare una nuova versione dell'app e gli utenti devono aggiornarla anche sul proprio smartphone.
In generale, l'aggiornamento dell'app funziona se vuoi apportare una modifica duratura alla tua app. Tuttavia, cosa succede se devi modificare spesso il valore di alcuni parametri dell'app? Oppure, cosa succede se vuoi eseguire alcuni esperimenti per trovare la configurazione ottimale dell'app?
In questi casi, l'aggiornamento dell'app non funzionerebbe correttamente. Perché è necessario un po' di tempo prima che l'aggiornamento venga propagato completamente agli utenti. Inoltre, è piuttosto difficile eseguire gli esperimenti su più versioni dell'app.
Inoltre, come puoi determinare se il percorso utente dell'app funziona come previsto? Puoi fare affidamento sui commenti degli utenti su Play Console. Tuttavia, potrebbe non essere abbastanza preciso per prendere una decisione chiara.
Cosa imparerai a fare
- Come creare un funnel in Google Analytics for Firebase
- Come utilizzare Firebase Remote Config
- Come eseguire il test A/B Firebase
Che cosa ti serve
- Unity 2018.4.4f1 o versioni successive
- Xcode 10 o versioni successive (per creare il target per iOS)
- Un Account Google
- Un dispositivo di test con Android 5.0 o versioni successive con un cavo USB per collegare il dispositivo o un emulatore Android che esegue AVD(Android Virtual Device) con un'immagine di sistema che supporta Play Store/API di Google
- Un dispositivo iOS o un simulatore con iOS 8.0 o versioni successive
Come valuteresti il tuo livello di esperienza con AdMob?
Come valuteresti il tuo livello di esperienza con Firebase?
2. Configurare l'ambiente di sviluppo
Scarica il codice
Fai clic sul pulsante seguente per scaricare tutto il codice per questo codelab:
Decomprimi il file ZIP scaricato. Verrà estratta una cartella radice denominata admob-firebase-codelabs-unity-master.
...o clona il repository GitHub dalla riga di comando.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity
Il repository contiene quattro cartelle:
101-base: codice iniziale che verrà creato in questo codelab.
101-complete_and_102-base: codice completato per questo codelab e codice iniziale per il codelab 102.
102-complete: codice completato per il codelab 102.
Preparare i file richiesti
Il quiz sui disegni fantastici utilizza diversi codici open source, necessari per compilare ed eseguire il progetto.
Apri il terminale e vai alla directory radice del repository. Quindi, esegui ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles su Windows) dal terminale per copiare i file richiesti nel progetto.
Importare l'app iniziale
Avvia Unity, scegli "Apri" nella schermata di benvenuto. Quindi seleziona la directory 101-complete_and_102-base dal codice che hai scaricato.
Ora dovresti avere il progetto aperto in Unity.
Aggiungere il plug-in Unity di Google Mobile Ads
Per pubblicare annunci AdMob nell'app Unity, devi aggiungere il plug-in Unity di Google Mobile Ads al progetto.
- Scarica il pacchetto Google Mobile Ads Unity Plugin 3.18.1. Tieni presente che questo codelab potrebbe non essere compatibile con l'altra versione del plug-in.
- Nel progetto Unity Awesome Drawing Quiz. Nel progetto, vai a Assets > Import Package > Custom Package (Risorse > Importa pacchetto > Pacchetto personalizzato).
- Importa GoogleMobileAds.unitypackage nel progetto che hai scaricato.
Devi impostare anche l'ID app AdMob. Nell'editor Unity, seleziona Asset > Google Mobile Ads > Impostazioni dal menu.

Attiva AdMob selezionando la casella di controllo Attivato nella sezione Google AdMob. Poi inserisci l'ID app AdMob nel seguente modo:
- Android:
ca-app-pub-3940256099942544~3048611032 - iOS:
ca-app-pub-3940256099942544~2753522596

Aggiungi i file di configurazione di Firebase al progetto Unity
- Nella schermata di panoramica del progetto Quiz di disegno fantastico, fai clic sull'icona Impostazioni.

- Nella scheda Generale, seleziona ogni app per Android e iOS per scaricare il file google-service.json (per Android) e il file GoogleService-Info.plist (per iOS).
- Sposta entrambi i file di configurazione nella cartella
Assets del progetto Unity.

Aggiungere l'SDK Firebase Analytics
- Scarica l'SDK Firebase Unity 5.5.0 e decomprimilo in un percorso semplice da raggiungere. Salta questo passaggio se hai già scaricato l'SDK.
- Apri il progetto Unity Awesome Drawing Quiz, vai a Assets > Import Package > Custom Package (Risorse > Importa pacchetto > Pacchetto personalizzato).
- Dall'SDK non compresso, importa l'SDK Firebase Analytics (
dotnet4/FirebaseAnalytics.unitypackage). - Nella finestra Import Unity package (Importa il pacchetto Unity), fai clic su Importa.
3. Apri il progetto Firebase dalla console
Prima di passare al passaggio successivo, apri il progetto dalla console Firebase che hai creato nel passaggio "Configura il progetto Firebase" del Codelab AdMob + Firebase 101.

4. Creare una canalizzazione di eventi in-app
Potresti aver aggiunto alcuni eventi app per monitorare l'attività utente all'interno dell'app. Leggendo il report di ogni evento app, puoi ottenere i dettagli associati all'evento, come conteggi totali, conteggi medi per utente, dati demografici e così via.
Tuttavia, cosa succede se vuoi visualizzare il tasso di completamento di una serie di eventi, anziché concentrarti su un evento specifico? In Google Analytics for Firebase, puoi utilizzare la canalizzazione per visualizzare e ottimizzare la percentuale di completamento di una serie di eventi dell'app.
Creare una canalizzazione
Per creare una canalizzazione:
- Vai alla console Firebase e seleziona il progetto Awesome Drawing Quiz che hai creato in precedenza.
- Fai clic su Funnel.
- Fai clic su NUOVA CANALIZZAZIONE.
- Inserisci un nome e una descrizione per la canalizzazione.
- Seleziona i primi due eventi da utilizzare come passaggi nella canalizzazione.
- Fai clic su AGGIUNGI UN ALTRO EVENTO per ogni passaggio aggiuntivo e seleziona un evento.
- Fai clic su CREA.
Seguendo i passaggi precedenti, crea i seguenti canalizzazioni:
Nome canalizzazione 1: tasso di successo del livello Eventi: level_start, level_success
#2 Nome canalizzazione: tasso di completamento degli annunci con premio Eventi: ad_reward_prompt, ad_reward_impression, ad_reward
3. Nome canalizzazione: percentuale di completamento della partita Eventi: game_start, game_complete
Visualizzare l'analisi della canalizzazione
Una volta creati alcuni canalizzazioni, puoi accedervi nel menu Canalizzazioni della Console Firebase. Se fai clic sul nome della canalizzazione nell'elenco, puoi visualizzare l'analisi dettagliata di ciascuna canalizzazione.

Ad esempio, fai clic su Tasso di completamento del livello. Mostrerà i dettagli della canalizzazione nel seguente modo:

Dallo screenshot precedente, puoi vedere la percentuale di utenti che hanno completato un livello (attivato l'evento level_success) dopo aver iniziato un livello (attivato l'evento level_start). Qui puoi vedere che il 46, 2% degli utenti ha completato il livello.
Una volta fatto clic su Conteggio eventi, verranno visualizzate le metriche basate sul numero di eventi nel seguente modo:

In base alle metriche nello screenshot precedente, nel periodo in esame sono stati effettuati 116 tentativi (che hanno attivato l'evento level_start) e 57 completamenti (che hanno attivato l'evento level_success).
Poiché il tasso di completamento basato sugli eventi(49,1%) è leggermente superiore a quello basato sull'utente(46,2%), puoi affermare che alcune persone hanno un rendimento migliore rispetto ad altre.
5. Integra Remote Config nell'app
Poiché puoi ottenere alcuni approfondimenti sulla tua app in base agli eventi e al funnel dell'app, potresti voler ottimizzare la tua app. In genere, ciò include una messa a punto del valore del parametro nell'app. Per modificare il valore di questi parametri, devi aggiornare l'app in modo che le modifiche possano essere applicate agli utenti.
Utilizzando Remote Config in Firebase, puoi modificare questi valori senza un aggiornamento dell'app, il che significa che puoi cambiare il comportamento dell'app senza disturbare gli utenti costringendoli a scaricare l'aggiornamento.
In questo codelab imparerai a rendere regolabile l'importo della ricompensa (numero di lettere da rivelare dopo aver guardato un annuncio video con premio) senza un aggiornamento dell'app utilizzando Remote Config.
Aggiungere l'SDK Firebase Remote Config
- Scarica l'SDK Firebase Unity 5.5.0 e decomprimilo in un percorso semplice da raggiungere.
- Apri il progetto Unity Awesome Drawing Quiz, vai a Assets > Import Package > Custom Package (Risorse > Importa pacchetto > Pacchetto personalizzato).
- Dall'SDK non compresso, importa l'SDK Remote Config (
dotnet4/FirebaseRemoteConfig.unitypackage). - Nella finestra Import Unity package (Importa il pacchetto Unity), fai clic su Importa.
Importa Firebase.RemoteConfig
Modifica Main.cs per consentirti di utilizzare il tipo da Firebase.RemoteConfig senza dover utilizzare il nome completo.
Scenes/Main.cs
...
using AwesomeDrawingQuiz.Game;
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Scene {
...
}
Inizializza e recupera i valori di Remote Config
Modifica il metodo InitAndFetchRemoteConfig() in Main.cs per inizializzare l'istanza Remote Config come segue. Tieni presente che GameSettings.KEY_REWARD_AMOUNT contiene il nome del parametro in Remote Config. (Dichiarerai questo campo a breve in questo codelab)
Scenes/Main.cs
private Task InitAndFetchRemoteConfig() {
// TODO: Initialize and Fetch values from the Remote Config (102)
Dictionary<string, object> defaults = new Dictionary<string, object>();
defaults.Add(GameSettings.KEY_REWARD_AMOUNT, 1);
FirebaseRemoteConfig.SetDefaults(defaults);
if (Debug.isDebugBuild) {
ConfigSettings config = new ConfigSettings();
config.IsDeveloperMode = true;
FirebaseRemoteConfig.Settings = config;
return FirebaseRemoteConfig.FetchAsync(System.TimeSpan.Zero);
} else {
return FirebaseRemoteConfig.FetchAsync();
}
}
Vedrai che l'istanza FirebaseRemoteConfig è configurata per recuperare i valori più recenti dal server in modalità di debug per facilitare il processo di sviluppo. (IsDeveloperMode = true e FetchAsync(System.TimeSpan.Zero))
Attiva i valori di Remote Config recuperati
Quando hai recuperato correttamente i valori di Remote Config, devi attivarli per renderli disponibili nell'app. Modifica il metodo ActivateRemoteConfigValues() come segue.
Scenes/Main.cs
private void ActivateRemoteConfigValues() {
// TODO: Activate fetched Remote Config values (102)
FirebaseRemoteConfig.ActivateFetched();
}
Modificare il metodo Start()
Per fare in modo che l'app recuperi e attivi il valore di Remote Config all'avvio, modifica il metodo Start() nel file Main.cs nel seguente modo.
Scenes/Main.cs
void Start () {
...
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
...
}).ContinueWith(task => {
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig();
}).ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
// Enable 'Start a game' button
UnityMainThreadDispatcher.Instance()
.Enqueue(() => buttonStartGame.interactable = true);
});
#else
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig().ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
});
#endif
}
Recupera l'importo del premio da Remote Config
Modifica la classe GameSettings per recuperare l'importo del premio da Remote Config.
Game/GameSettings.cs
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Game {
public class GameSettings {
...
// TODO: Apply reward amount from the Remote Config (102)
public const string KEY_REWARD_AMOUNT = "reward_amount";
public static GameSettings Instance {
get {
return instance;
}
}
...
public int RewardAmount {
get {
// TODO: Apply reward amount from the Remote Config (102)
return (int) FirebaseRemoteConfig.GetValue(KEY_REWARD_AMOUNT).LongValue;
}
private set { }
}
}
}
Creare un parametro Remote Config dalla console
Successivamente, creerai un nuovo parametro Remote Config per l'importo della ricompensa, in modo da poterlo modificare al volo.
Per creare un nuovo parametro, vai alla console Firebase, quindi seleziona il progetto Quiz di disegno fantastico che hai creato in precedenza. Fai clic sul pulsante Remote Config -> AGGIUNGI IL TUO PRIMO PARAMETRO.

Assegna al parametro il nome reward_amount e imposta il valore predefinito su 1. Poi, fai clic sul pulsante Aggiungi parametro.

Fai clic sul pulsante Pubblica modifiche per rendere effettiva la modifica per gli utenti.

6. Modificare il comportamento dell'app con Remote Config
L'importo del premio nel Quiz sul disegno fantastico ora può essere configurato nella console Firebase senza dover aggiornare il codice dell'app.
In questa sezione, modificherai l'importo del premio da 1 a 2 per fare in modo che l'app riveli altri due caratteri come suggerimento dopo aver guardato un annuncio con premio.
Aggiorna il valore predefinito del parametro reward_amount
Vai alla console Firebase, quindi seleziona il progetto Awesome Drawing Quiz che hai creato in precedenza. Fai clic su Remote Config e poi su reward_amount dall'elenco. Successivamente, modifica il valore predefinito in 2 e fai clic sul pulsante Aggiorna.

Fai clic sul pulsante Pubblica modifiche per rendere effettiva la modifica per gli utenti.

Verificare la modifica del comportamento dell'app
Per confermare la modifica del comportamento dell'app, esegui di nuovo il progetto. Una volta terminato di guardare un annuncio con premio, noterai che l'app ora rivela due lettere come premio, come abbiamo configurato nella console Remote Config.
Prima di guardare un annuncio con premio | Sono state rivelate due lettere aggiuntive come premio |
7. Crea l'esperimento per ottimizzare l'importo del premio
Ora puoi modificare l'importo della ricompensa senza dover pubblicare un aggiornamento dell'app. Tuttavia, come puoi determinare la quantità di modifiche che hai apportato e che sono utili per l'app?
Con i test A/B di Firebase, puoi eseguire gli esperimenti per ottimizzare l'esperienza utente complessiva dell'app senza dover aggiornare un'app o creare uno strumento separato per eseguire e monitorare il rendimento di ogni esperimento.
Progettare l'esperimento
Prima di creare un nuovo esperimento, devi impostare un obiettivo chiaro. Assicurati di esaminare il seguente elenco di controllo prima di creare un nuovo esperimento.
- Che cosa vuoi ottimizzare? (ad es. difficoltà del gioco, tempistica/visibilità dell'annuncio e così via)
- Perché: qual è il tuo obiettivo commerciale per l'esecuzione dell'esperimento? ad esempio, per massimizzare le entrate pubblicitarie, aumentare la fidelizzazione e così via.
- Chi: chi è soggetto a essere incluso nell'esperimento? (ad es. Tutti gli utenti, Segmento di pubblico di utenti specifici e così via)
In questo codelab, creerai un esperimento per ottimizzare il valore dell'importo della ricompensa in modo da massimizzare il coinvolgimento giornaliero degli utenti del quiz Awesome Drawing Quiz.
Creare l'esperimento
Apri il progetto Awesome Drawing Quiz dalla console Firebase. Seleziona il menu Test A/B e poi fai clic sul pulsante Crea esperimento.
Seleziona Remote Config per creare un esperimento Remote Config.

Assegna all'esperimento il nome "Importo della ricompensa", come mostrato nello screenshot seguente.

Configura le opzioni di targeting. In questo codelab, prenderai di mira il 100% degli utenti del Quiz di disegno fantastico.

Poiché l'obiettivo principale dell'esperimento è trovare un valore ottimale che massimizzi il coinvolgimento degli utenti giornaliero, seleziona Coinvolgimento degli utenti giornaliero come metrica principale da monitorare.

Infine, configura il gruppo di controllo e la variante in modo da poter capire quale gruppo ha un rendimento migliore. Seleziona reward_amount dal gruppo di controllo e lascia invariato il relativo valore. Per il gruppo di varianti, assegna il nome "Meno premi", quindi modifica il valore di reward_amount in 1.

Con questa configurazione, le persone del gruppo "Meno premi" riceveranno una lettera come premio, mentre le persone del gruppo di controllo riceveranno due lettere come premio. Di conseguenza, vedrai l'impatto dell'importo del premio sugli utenti.
Dopo aver fatto clic sul pulsante Rivedi, vedrai una panoramica dell'esperimento come segue.

Esegui l'esperimento
Fai clic sul pulsante Avvia esperimento per eseguire l'esperimento. Tieni presente che non puoi modificare la configurazione dell'esperimento una volta avviato.

8. Gestire l'esperimento
Visualizzare l'avanzamento dell'esperimento
Puoi controllare l'avanzamento dell'esperimento dal menu Test A/B nella console Firebase, che avrà l'aspetto dello screenshot seguente. Tieni presente che nella scheda puoi anche visualizzare il numero di utenti che partecipano all'esperimento negli ultimi 30 minuti.

Dopo aver fatto clic sull'esperimento nell'elenco, puoi visualizzarne i dettagli. Finché l'esperimento non può dichiarare un leader (ovvero la variante con il rendimento migliore), vedrai il messaggio "È troppo presto per dichiarare un leader".

Dopo un po' di tempo, l'esperimento inizierà a mostrare i dati raccolti finora nella sezione Panoramica del miglioramento. Puoi confrontare il rendimento di ogni variante per vedere quale ha un rendimento migliore. Lo screenshot seguente mostra un esempio della sezione Panoramica dei miglioramenti.

Dalla tabella sotto la sezione Panoramica del miglioramento, puoi controllare i dettagli delle metriche degli obiettivi dell'esperimento, nonché le metriche aggiuntive monitorate nell'esperimento. Lo screenshot seguente mostra un esempio della sezione dei dettagli delle metriche.

Implementare il leader per tutti gli utenti
Dopo che l'esperimento è stato eseguito per un periodo abbastanza lungo da ottenere una variante ottimale, o la variante migliore, puoi implementare l'esperimento per il 100% degli utenti. Una volta che il test A/B ha trovato un chiaro leader, ti incoraggerà a implementare la variante principale per tutti gli utenti.

Tuttavia, anche se l'esperimento non ha dichiarato un leader chiaro, puoi comunque scegliere di implementare una variante per tutti gli utenti.
Nella schermata dei dettagli dell'esperimento, fai clic sul menu contestuale (
) e poi su Implementa variante.

Scegli una variante da implementare per tutti gli utenti, poi fai clic sul pulsante Esamina con Remote Config per rivedere le modifiche prima di apportarne una in Remote Config.

Dopo aver confermato che la bozza non presenta problemi, fai clic sul pulsante Pubblica modifiche per rendere effettiva la modifica per tutti gli utenti.

9. Operazione completata.
Hai completato il Codelab AdMob+Firebase 102 Unity. Puoi trovare il codice completato per questo codelab nella cartella
102-complete.

