AdMob+Firebase 101 Unity: configurazione e Nozioni di base su Analytics

1. Introduzione

Gli annunci sono una parte fondamentale dell'esperienza utente complessiva della tua app. Implementazioni di annunci efficaci possono contribuire a migliorare l'esperienza complessiva con l'app e persino la fidelizzazione e il coinvolgimento degli utenti. Ad esempio, gli annunci con premio ti consentono di premiare gli utenti che hanno guardato gli annunci video con valuta in-app o articoli, in modo che possano raggiungere nuove vette dove altrimenti potrebbero bloccarsi e abbandonare il canale.

Tuttavia, creare un'esperienza pubblicitaria eccellente non è facile. Potresti avere domande come: Con quale frequenza dovresti mostrare questi annunci? Dove e quando dovresti mostrarli? Quale dovrebbe essere il premio? Purtroppo, la risposta varia a seconda dell'app e del posizionamento. Non esiste una risposta universale.

Con Google Analytics per Firebase, AdMob e molti altri strumenti potenti ma intuitivi offerti da Firebase, ottimizzare la tua app in base ai dati è diventato molto più semplice e semplificato. Oggi, ti mostreremo come iniziare.

Cosa creerai

Questo codelab è il primo dei tre codelab che ti guideranno nella creazione di un'app chiamata Awesome Drawing Quiz, un gioco che consente ai giocatori di indovinare il nome del disegno. Dimostra come incorporare gli annunci con premio e i servizi Firebase nel tuo gioco.

In questo codelab, integrerai Google Analytics per Firebase per registrare alcuni eventi app importanti. Inoltre, imparerai a leggere i dati e le analisi dell'app visualizzati nella Console Firebase.

Cosa imparerai a fare

  • Come configurare Google Analytics per Firebase nella tua app
  • Come registrare gli eventi dell'app
  • Come leggere i dati e le analisi dell'app visualizzati nella Console Firebase

Che cosa ti serve

  • Unity 2018.4.4f1 o versione successiva
  • Xcode 10 o successivo (per creare il target per iOS)
  • Un Account Google
  • Un dispositivo di test con Android 5.0 o versioni successive dotato di un cavo USB per collegare il dispositivo oppure un emulatore Android che esegue AVD(Android Virtual Device) con un'immagine di sistema che supporti le API del Play Store/Google
  • Un dispositivo iOS o un simulatore con iOS 8.0 o versioni successive

Come giudichi il tuo livello di esperienza con AdMob?

Principiante Livello intermedio Eccellente

Come giudichi il tuo livello di esperienza con Firebase?

Principiante Livello intermedio Eccellente

2. Configura l'ambiente di sviluppo

Scarica il codice

Fai clic sul pulsante seguente per scaricare tutto il codice per questo codelab:

Apri il file ZIP scaricato. Verrà decompressa una cartella principale 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:

  • android_studio_folder.png101-base: codice iniziale che creerai in questo codelab.
  • android_studio_folder.png101-complete_and_102-base: codice completato per questo codelab e per il codelab 102.
  • android_studio_folder.png102-complete: codice completato per il codelab 102.

Prepara i file richiesti

Awesome Drawing Quiz utilizza diversi codici open source, necessari per compilare ed eseguire il progetto.

Apri il terminale e passa alla directory root del repository. Quindi, esegui ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles su Windows) dal terminale per copiare i file necessari nel progetto.

Importa l'app iniziale

Avvia Unity e scegli "Apri" nella schermata di benvenuto. Quindi seleziona la directory 101-base dal codice che hai scaricato.

Ora il progetto dovrebbe essere aperto in Unity.

3. (Facoltativo) Configura l'unità pubblicitaria video con premio

L'app iniziale include già un'unità pubblicitaria video con premio dedicata per tua comodità. Se non vuoi crearne uno nuovo nel tuo account AdMob, puoi saltare questo passaggio.

Configurazione per Android

Per creare una nuova app AdMob nel tuo account:

  1. Vai alla Console AdMob.
  2. Dal menu App, fai clic su "Aggiungi app".
  3. Quando ti viene chiesto "Hai pubblicato la tua app su Google Play o nell'App Store?", Rispondi "NO".
  4. Assegna all'app il nome "Quiz su Disegni Affascinanti" Scegli "Android" come Piattaforma e fai clic su "Aggiungi".

Una volta creata un'app AdMob nel tuo account, segui la procedura descritta di seguito per creare una nuova unità pubblicitaria video con premio.

  1. Fai clic sul menu App nel frontend di AdMob, poi seleziona "Awesome Drawing Quiz" dall'elenco delle app.
  2. Fai clic sul menu Unità pubblicitarie e poi su AGGIUNGI UNITÀ PUBBLICITARIA per creare una nuova unità pubblicitaria video con premio.
  3. Seleziona Con premio come formato dell'annuncio.

7672f41ec611101b.png

  1. Specifica il nome dell'unità pubblicitaria che preferisci. Dopodiché imposta l'importo del premio su 1 e premia l'articolo su "hint" (si tratta del premio attualmente offerto dall'app agli utenti). Fai clic su CREA UNITÀ PUBBLICITARIA per creare una nuova unità pubblicitaria video con premio.

6d067814a2c38264.png

  1. Una volta creata correttamente, verranno visualizzate istruzioni come la seguente.

4bc1b3b341a5a81c.png

  1. Torna al progetto Unity e aggiorna l'ID app e l'ID unità pubblicitaria di AdMob con quelli che hai creato nel passaggio precedente.

Ads/AdManager.cs

namespace AwesomeDrawingQuiz.Ads {
    public class AdManager {

        public const string APP_ID_ANDROID = "YOUR_ADMOB_APP_ID";
        
        ...

        #elif UNITY_ANDROID
        private const string APP_ID = APP_ID_ANDROID;
        public const string AD_UNIT_ID = "<YOUR_AD_UNIT_ID>";

        ...
    }
}

Configurazione per iOS

Per creare una nuova app AdMob nel tuo account:

  1. Vai alla Console AdMob.
  2. Dal menu App, fai clic su "Aggiungi app".
  3. Quando ti viene chiesto "Hai pubblicato la tua app su Google Play o nell'App Store?", Rispondi "NO".
  4. Assegna all'app il nome "Quiz su Disegni Affascinanti" Scegli "iOS" come Piattaforma e fai clic su "Aggiungi".

Una volta creata un'app AdMob nel tuo account, segui la procedura descritta di seguito per creare una nuova unità pubblicitaria video con premio.

  1. Fai clic sul menu App nel frontend di AdMob, poi seleziona "Awesome Drawing Quiz" dall'elenco delle app.
  2. Fai clic sul menu Unità pubblicitarie e poi su AGGIUNGI UNITÀ PUBBLICITARIA per creare una nuova unità pubblicitaria video con premio.
  3. Seleziona Con premio come formato dell'annuncio.

7672f41ec611101b.png

  1. Specifica il nome dell'unità pubblicitaria che preferisci. Dopodiché imposta l'importo del premio su 1 e premia l'articolo su "hint" (si tratta del premio attualmente offerto dall'app agli utenti). Fai clic su CREA UNITÀ PUBBLICITARIA per creare una nuova unità pubblicitaria video con premio.

6d067814a2c38264.png

  1. Una volta creata correttamente, verranno visualizzate istruzioni come la seguente.

4bc1b3b341a5a81c.png

  1. Torna al progetto Unity e aggiorna l'ID app e l'ID unità pubblicitaria di AdMob con quelli che hai creato nel passaggio precedente.

Ads/AdManager.cs

namespace AwesomeDrawingQuiz.Ads {
    public class AdManager {

        public const string APP_ID_IOS = "YOUR_ADMOB_APP_ID";
        
        ...

        #elif UNITY_IOS
        private const string APP_ID = APP_ID_IOS;
        public const string AD_UNIT_ID = "<YOUR_AD_UNIT_ID>";

        ...
    }
}

4. Aggiungi il plug-in Unity degli annunci per dispositivi mobili di Google

Importa il plug-in

Per pubblicare annunci AdMob nell'app Unity, devi aggiungere al progetto il plug-in Unity degli annunci per dispositivi mobili Google.

  1. Scarica il pacchetto del plug-in Unity 3.18.1 di Google Mobile Ads. (Tieni presente che questo codelab potrebbe non essere compatibile con l'altra versione del plug-in)
  2. Nel progetto Unity con Awesome Drawing Quiz. Nel progetto, vai ad Asset > Importa pacchetto > Pacchetto personalizzato.
  3. Importa GoogleMobileAds.unitypackage nel progetto che hai scaricato.

Configura l'ID app AdMob

Nell'editor Unity, seleziona Assets > (Asset >) Annunci per cellulari di Google > Impostazioni dal menu.

44fc84fe88235c1f.png

Per attivare AdMob, fai clic sulla 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

a6ad7402d4daf330.png

5. Configura progetto Firebase

Creare un nuovo progetto dalla Console Firebase

  1. Vai alla Console Firebase.
  2. Seleziona Aggiungi progetto e assegna al progetto il nome "Quiz di Disegno Affascinante".

Aggiungere l'app Unity

  1. Nella schermata della panoramica del nuovo progetto, fai clic su Aggiungi Firebase all'app Unity.
  2. Seleziona la casella di controllo Registra come app per iOS.
  3. Inserisci l'ID pacchetto iOS come: com.codelab.awesomedrawingquiz.unity
  4. Fornisci un nickname per l'app come: Awesome Drawing Quiz (Unity su iOS)
  5. Seleziona la casella di controllo Registra come app Android.
  6. Inserisci il nome del pacchetto Android come: com.codelab.awesomedrawingquiz.unity
  7. Fornisci il nickname dell'app: Awesome Drawing Quiz (Unity su Android)
  8. Seleziona Registra app per registrare le app per Android e iOS.

Aggiungi i file di configurazione di Firebase al progetto Unity

Viene visualizzata una schermata in cui puoi scaricare un file di configurazione contenente tutti i metadati Firebase necessari per la tua app. Scarica i file google-service.json e GoogleService-Info.plist, quindi spostali entrambi nella cartella android_studio_folder.pngAsset del progetto Unity.

331c165d80ba105e.png

Aggiungi l'SDK Firebase Analytics

  1. Scarica l'SDK Firebase Unity 5.5.0 e decomprimilo in una posizione comoda.
  2. Apri il progetto Unity Awesome Drawing Quiz, vai ad Assets > Importa pacchetto > Pacchetto personalizzato.
  3. Dall'SDK non compresso, importa l'SDK Remote Config (dotnet4/FirebaseAnalytics.unitypackage).
  4. Nella finestra Importa pacchetto Unity, fai clic su Importa.

6. Collega AdMob al progetto Firebase

Per collegare le tue app a Firebase, procedi nel seguente modo.

  1. Accedi al tuo account AdMob alla pagina https://apps.admob.com.
  2. Fai clic su App nella barra laterale.
  3. Seleziona "Quiz su disegni fantastici". Se non la vedi nell'elenco delle app recenti, puoi fare clic su Visualizza tutte le app per cercare un elenco di tutte le app che hai aggiunto ad AdMob.
  4. Fai clic su Impostazioni app nella barra laterale.
  5. Fai clic su Collega a Firebase.
  6. Seleziona l'opzione "Collega a un progetto Firebase esistente e crea una nuova app Firebase". Quindi seleziona il progetto "Awesome Drawing Quiz" dal menu a discesa.
  7. Dopo aver fatto clic sul pulsante "CONTINUA", visualizzerai il messaggio "Collegamento riuscito". Fai clic sul pulsante "FINE" per terminare.

Una volta collegata l'app AdMob al progetto Firebase, verranno sbloccate alcune funzionalità aggiuntive sia sulla console AdMob sia sulla console Firebase, come indicato di seguito:

Scheda delle entrate (AdMob)

Nella scheda Entrate puoi esaminare una panoramica globale di tutti i possibili flussi di entrate in un unico posto. Le fonti di entrate supportate sono le seguenti:

  • AdMob (stima)
  • Reti pubblicitarie con mediazione (osservate)
  • Acquisti in-app
  • Acquisti e-commerce

10fe118249e11150.png

Scheda Metriche utente (AdMob)

Nella scheda Metriche utente, puoi vedere in che modo le modifiche all'esperienza pubblicitaria potrebbero influire sul comportamento degli utenti.

5f56366f1b31d4a1.png

Report sugli annunci con premio (AdMob)

Il report sugli annunci con premio offre una serie di metriche che aiutano i publisher a capire in che modo gli utenti interagiscono con i loro annunci con premio.

658a2868777690ea.png

Scheda Entrate totali (Firebase)

Una volta collegata l'app AdMob a Firebase, nella scheda Entrate totali nella dashboard di Firebase verranno visualizzate le entrate generate da AdMob insieme agli acquisti in-app e agli acquisti e-commerce.

98cb283977b023a.png

Report sugli eventi relativi agli annunci (Firebase)

Gli eventi specifici per gli annunci (eventi di clic, impressioni e premio) vengono raccolti automaticamente e sono disponibili per l'utilizzo in Google Analytics per Firebase.

bf77bd8c00c1441b.png

7. Esegui il progetto

Dopo aver compilato ed eseguito il progetto, vedrai la seguente schermata all'avvio dell'app.

f5fbf4565c5d8647.png

Dopo aver fatto clic su "INIZIA UN GIOCO", sullo schermo visualizzerai un disegno. La tua missione è indovinare il nome del disegno utilizzando il suggerimento visualizzato nella parte superiore, da cui puoi dedurre la prima lettera e la lunghezza del nome del disegno.

bbdf4d23fb08a519.png ad82d7e657945c4d.png

Se non hai idea del nome del disegno, puoi saltare il livello facendo clic sul pulsante "SALTA".

Potresti volere un ulteriore indizio che ti aiuti a indovinare la risposta. Puoi avere un indizio in più facendo clic sul pulsante "HINT" e guardando un annuncio video con premio. Una volta completata la visione dell'annuncio, verrà visualizzata un'ulteriore lettera come premio.

8c33687361f83a13.png b048d6587c10e9df.png

8. Aggiungi eventi app

Per comprendere a fondo il percorso dell'utente nel Quiz di Awesome Drawing, definirai alcuni eventi personalizzati che monitorano il comportamento dell'utente nel gioco, come indicato di seguito:

Nome evento

Attivato...

Parametri

game_start

Quando un utente inizia una nuova partita.

nessuno

level_start

Quando un utente inizia un nuovo livello (un nuovo quiz con disegno) all'interno di una fase. (ci sono 6 livelli in una fase)

level_name

level_wrong_answer

Quando un utente invia una risposta sbagliata.

level_name

ad_reward_prompt

Quando un utente tocca il pulsante del suggerimento e gli viene chiesto di guardare un annuncio video con premio.

ad_unit_id

ad_reward_impression

Quando un utente inizia a guardare un annuncio video con premio.

ad_unit_id

level_success

Quando un utente invia una risposta corretta (cancella un livello)

level_name, number_of_attempts, collaborato_time_sec, hint_used

level_fail

Quando un utente salta un livello.

level_name, number_of_attempts, collaborato_time_sec, hint_used

game_complete

quando la partita è finita

number_of_correct_answers

La descrizione di ciascun parametro associato a ciascun evento è la seguente:

Nome evento

Nome parametro

Descrizione

level_start

level_name

Nome del disegno mostrato nel livello (ad es. "banana")

level_wrong_answer

level_name

Nome del disegno mostrato nel livello (ad es. "banana")

ad_reward_prompt

ad_unit_id

Un ID unità pubblicitaria utilizzato per mostrare un annuncio video con premio

ad_reward_impression

ad_unit_id

Un ID unità pubblicitaria utilizzato per mostrare un annuncio video con premio

level_success

level_name

Nome del disegno mostrato nel livello (ad es. "banana")

level_success

number_of_attempts

Numero di tentativi effettuati per cancellare un livello

level_success

elapsed_time_sec

Tempo trascorso per cancellare un livello, in secondi

level_success

hint_used

Indica se un utente ha utilizzato un suggerimento (ha guardato un annuncio video con premio) o non ha cancellato un livello (1: è stato utilizzato un suggerimento / 0: ha cancellato un livello senza un suggerimento)

level_fail

level_name

Nome del disegno mostrato nel livello (ad es. "banana")

level_fail

number_of_attempts

Numero di tentativi effettuati per cancellare un livello

level_fail

elapsed_time_sec

Tempo trascorso per cancellare un livello, in secondi

level_fail

hint_used

Indica se un utente ha utilizzato un suggerimento (ha guardato un annuncio video con premio) o non ha cancellato un livello (1: è stato utilizzato un suggerimento / 0: ha cancellato un livello senza un suggerimento)

game_complete

number_of_correct_answers

Numero di livelli cancellati nel gioco

Creare una classe helper per il logging degli eventi personalizzati

Per registrare facilmente l'evento di dati e analisi, creerai una classe helper per gestire gli eventi personalizzati.

Innanzitutto, crea una nuova cartella nella cartella Assets/Scripts e assegnale il nome Analytics. Quindi crea un nuovo script C# e assegnagli il nome QuizAnalytics.cs nella cartella Analytics.

Aggiungi il codice seguente al file QuizAnalytics.cs.

Analytics/QuizAnalytics.cs

using Firebase.Analytics;

namespace AwesomeDrawingQuiz.Analytics {

    public class QuizAnalytics {

        private const string EVENT_AD_REWARD_PROMPT = "ad_reward_prompt";

        private const string EVENT_AD_REWARD_IMPRESSION = "ad_reward_impression";

        private const string EVENT_LEVEL_FAIL = "level_fail";

        private const string EVENT_LEVEL_SUCCESS = "level_success";

        private const string EVENT_LEVEL_WRONG_ANSWER = "level_wrong_answer";

        private const string EVENT_GAME_START = "game_start";

        private const string EVENT_GAME_COMPLETE = "game_complete";

        private const string PARAM_AD_UNIT_ID = "ad_unit_id";

        private const string PARAM_ELAPSED_TIME_SEC = "elapsed_time_sec";

        private const string PARAM_HINT_USED = "hint_used";

        private const string PARAM_NUMBER_OF_ATTEMPTS = "number_of_attempts";

        private const string PARAM_NUMBER_OF_CORRECT_ANSWERS = "number_of_correct_answers";

        public const string SCREEN_MAIN = "main";

        public const string SCREEN_GAME = "game";

        public static void LogGameStart() {
            FirebaseAnalytics.LogEvent(EVENT_GAME_START);
        }

        public static void LogLevelStart(string levelName) {
            FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelStart, 
                FirebaseAnalytics.ParameterLevelName, levelName);
        }

        public static void LogLevelWrongAnswer(string levelName) {
            FirebaseAnalytics.LogEvent(EVENT_LEVEL_WRONG_ANSWER, 
                FirebaseAnalytics.ParameterLevelName, levelName);
        }

        public static void LogAdRewardPrompt(string adUnitId) {
            FirebaseAnalytics.LogEvent(EVENT_AD_REWARD_PROMPT, PARAM_AD_UNIT_ID, adUnitId);
        }

        public static void LogAdRewardImpression(string adUnitId) {
            FirebaseAnalytics.LogEvent(EVENT_AD_REWARD_IMPRESSION, PARAM_AD_UNIT_ID, adUnitId);
        }

        public static void LogLevelSuccess(
            string levelName, int numberOfAttemps, int elapsedTimeInSec, bool hintUsed
        ) {
            FirebaseAnalytics.LogEvent(EVENT_LEVEL_SUCCESS, new Parameter[] {
                new Parameter(FirebaseAnalytics.ParameterLevelName, levelName),
                new Parameter(PARAM_NUMBER_OF_ATTEMPTS, numberOfAttemps),
                new Parameter(PARAM_ELAPSED_TIME_SEC, elapsedTimeInSec),
                new Parameter(PARAM_HINT_USED, hintUsed ? 1 : 0)
            });
        }

        public static void LogLevelFail(
            string levelName, int numberOfAttempts, int elapsedTimeInSec, bool hintUsed
        ) {
            FirebaseAnalytics.LogEvent(EVENT_LEVEL_FAIL, new Parameter[] {
                new Parameter(FirebaseAnalytics.ParameterLevelName, levelName),
                new Parameter(PARAM_NUMBER_OF_ATTEMPTS, numberOfAttempts),
                new Parameter(PARAM_ELAPSED_TIME_SEC, elapsedTimeInSec),
                new Parameter(PARAM_HINT_USED, hintUsed ? 1 : 0)
            });
        }

        public static void LogGameComplete(int numberOfCorrectAnswers) {
            FirebaseAnalytics.LogEvent(EVENT_GAME_COMPLETE, 
                PARAM_NUMBER_OF_CORRECT_ANSWERS, numberOfCorrectAnswers);
        }

        public static void SetScreenName(string screenName) {
            FirebaseAnalytics.SetCurrentScreen(screenName, null);
        }
    }
}

Registra gli eventi di analisi nel gioco

Apri il file Game.cs nella cartella Assets/Scripts/Scenes. Per utilizzare la classe QuizAnalytics, che si trova nello spazio dei nomi AwesomeDrawingQuiz.Analytics, aggiungi l'istruzione using come segue.

Scene/Game.cs

using AwesomeDrawingQuiz.Ads;

// TODO: Import AwesomeDrawingQuiz.Analytics (101)
using AwesomeDrawingQuiz.Analytics;

...

namespace AwesomeDrawingQuiz.Scene {
   ...
}

Successivamente, nella funzione Start(), chiama QuizAnalytics.SetScreenName() per modificare il nome della schermata attuale. Inoltre, chiama QuizAnalytics.LogGameStart() per indicare che una partita è iniziata.

Scene/Game.cs

void Start () {
    // TODO: Log screen name (101)
    QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_GAME);

    ...

    SetHintButtonEnabled(false);

    // TODO: Log game_start event (101)
    QuizAnalytics.LogGameStart();
    
    ...
}

Successivamente, nelle funzioni di callback, aggiungi le chiamate per registrare gli eventi personalizzati nel seguente modo:

Scene/Game.cs

public void OnClickHint() {
    // TODO: Log ad_reward_prompt event (101)
    QuizAnalytics.LogAdRewardPrompt(AdManager.AD_UNIT_ID);

    ...
}

...
  
public void OnAdStarted(object sender, EventArgs args) {
    // TODO: Log ad_reward_impression event (101)
    QuizAnalytics.LogAdRewardImpression(AdManager.AD_UNIT_ID);
}

...

public void OnGameOver(object sender, GameOverEventArgs args) {
    // TODO: Log game_complete event (101)
    QuizAnalytics.LogGameComplete(args.NumCorrectAnswers);

    ...
}

public void OnLevelCleared(object sender, LevelClearEventArgs args) {
    // TODO: Log level_success event (101)
    QuizAnalytics.LogLevelSuccess(
        args.Drawing.word, args.NumAttempts, args.ElapsedTimeInSeconds, args.IsHintUsed);

    ...
}

public void OnLevelSkipped(object sender, LevelSkipEventArgs args) {
    // TODO: Log level_fail event (101)
    QuizAnalytics.LogLevelFail(
        args.Drawing.word, args.NumAttempts, args.ElapsedTimeInSeconds, args.IsHintUsed);
}

public void OnNewLevel(object sender, NewLevelEventArgs args) {
    // TODO: Log level_start event (101)
    QuizAnalytics.LogLevelStart(args.Drawing.word);

    ...
}

public void OnWrongAnwser(object sender, WrongAnswerEventArgs args) {
    // TODO: Log level_wrong_answer event (101)
    QuizAnalytics.LogLevelWrongAnswer(args.Drawing.word);

    ...
}

Infine, aggiorna il file Main.cs nella cartella Assets/Scripts/Scenes. Prima di chiamare un metodo nell'SDK Firebase, devi assicurarti che Firebase sia pronto.

Scene/Main.cs

using AwesomeDrawingQuiz.Ads;

// TODO: Import AwesomeDrawingQuiz.Analytics (101)
using AwesomeDrawingQuiz.Analytics;

...

namespace AwesomeDrawingQuiz.Scene {
    public class Main : MonoBehaviour {

        ...

        void Start () {
            Screen.sleepTimeout = SleepTimeout.SystemSetting;

            #if UNITY_ANDROID
            // Disable 'Start a game' button until
            // Firebase dependencies are ready to use on the Android
            buttonStartGame.interactable = false;

            // TODO: Check Google Play Services on Android (101)
            // Check Google Play Services on Android device is up to date
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available) {
                    Debug.Log("All Firebase services are available");
                    
                    // TODO: Set screen name (101)
                    QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
                } else {
                    throw new System.InvalidOperationException(System.String.Format(
                        "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
                }
            }).ContinueWith(task => {
                // Enable 'Start a game' button
                UnityMainThreadDispatcher.Instance()
                    .Enqueue(() => buttonStartGame.interactable = true);
            });
            #else
            
            // TODO: Set screen name (101)
            QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
            #endif
        }

        ...
    }
}   

9. Debug degli eventi di analisi

Puoi utilizzare DebugView per verificare che gli eventi vengano registrati correttamente. DebugView ti consente di visualizzare i dati non elaborati sugli eventi registrati dalla tua app sui dispositivi di sviluppo quasi in tempo reale.

Ciò è molto utile per la convalida durante la fase di strumentazione dello sviluppo e può aiutarti a scoprire errori ed errori nell'implementazione dell'analisi.

Attivare la modalità di debug su Android

In genere, gli eventi registrati nell'app vengono raggruppati in un periodo di circa un'ora e caricati insieme. Per convalidare l'implementazione immediata dell'analisi, devi attivare la modalità di debug sul dispositivo di sviluppo in modo da caricare gli eventi con ritardi minimi.

Innanzitutto, apri lo strumento Terminale in Android Studio. Si trova nella barra degli strumenti in basso.

c8dc1b4f08a224b8.png

Quindi esegui questo comando (assicurati che il dispositivo Android di prova sia collegato al tuo computer o che l'emulatore Android sia in esecuzione):

adb shell setprop debug.firebase.analytics.app com.google.codelab.awesomedrawingquiz

Questo comportamento persiste finché la modalità di debug non viene disattivata esplicitamente tramite il seguente comando:

adb shell setprop debug.firebase.analytics.app .none.

Attivare la modalità di debug su iOS

Per attivare la modalità di debug di Analytics sul tuo dispositivo di sviluppo, specifica il seguente argomento della riga di comando in Xcode:

-FIRDebugEnabled

Questo comportamento persiste finché la modalità di debug non viene disattivata esplicitamente tramite il seguente argomento della riga di comando:

-FIRDebugDisabled

Eseguire il debug degli eventi di Analytics con DebugView

Una volta attivata la modalità di debug sul dispositivo di test, vai alla console di Firebase e seleziona DebugView dal menu. Dopodiché, sul dispositivo di test, gioca per vedere gli eventi registrati e mostrati nel report DebugView.

827059255d09ac00.png

Puoi accedere a informazioni dettagliate su ciascun evento facendo clic sul nome dell'evento. Ad esempio, il seguente screenshot mostra i dettagli dei parametri associati all'evento level_start.

475db00d05d03ab8.png

Per ulteriori dettagli, consulta l'articolo del Centro assistenza DebugView.

10. Attiva report sui parametri

Google Analytics for Firebase raccoglierà il numero totale di conteggi degli eventi per impostazione predefinita, ma i report per i parametri personalizzati devono essere attivati esplicitamente per ogni parametro evento che ti interessa. Una volta attivato, Google Analytics for Firebase mostra schede aggiuntive per mostrare le statistiche per i parametri personalizzati.

Per registrare i parametri personalizzati per un evento:

  1. Vai alla console Firebase e seleziona il progetto Awesome Drawing Quiz che hai creato in precedenza.
  2. Fai clic su Eventi nel menu di navigazione.
  1. Nella riga corrispondente all'evento da modificare, fai clic su 73afe611adf58774.png>. Report sui parametri di modifica.

aad40de06ee0c3ad.png

  1. Nel campo Inserisci nome parametro, inserisci il nome del parametro da registrare.

Nota: se non viene trovata alcuna corrispondenza, inserisci il nome del parametro e poi fai clic su AGGIUNGI.e066c761aae4797f.png 5. Fai riferimento alla tabella seguente e imposta il campo Tipo su Testo o Numero di conseguenza. Per i parametri numerici, assicurati di impostare anche il campo Unità di misura. 6. Fai clic sul pulsante SALVA per terminare la configurazione.

Attiva i report sui parametri per ciascun evento elencato di seguito.

Nome evento

Nome parametro

Tipo di parametro

Unità di misura

level_start

level_name

Testo

N/D

level_wrong_answer

level_name

Testo

N/D

level_success

level_name

Testo

N/D

level_success

number_of_attempts

Numero

Standard

level_success

elapsed_time_sec

Numero

Secondi

level_success

hint_used

Numero

Standard

level_fail

level_name

Testo

N/D

level_fail

number_of_attempts

Numero

Standard

level_fail

elapsed_time_sec

Numero

Secondi

level_fail

hint_used

Numero

Standard

game_complete

number_of_correct_answers

Numero

Standard

L'esempio seguente mostra la configurazione dei report sui parametri personalizzati per l'evento level_success:

6d569c8c27df2914.png

Una volta completata la configurazione dei report sui parametri, potrai visualizzare i parametri associati a ogni evento per cui sono attivati i report sui parametri.

d1a37589d54bca6b.png

11. Ottieni approfondimenti dal report Eventi

Dato che hai aggiunto alcuni eventi nel gioco, dovresti essere in grado di rispondere alle domande relative al comportamento degli utenti nel gioco. Ecco alcuni approfondimenti che puoi ottenere dal report Eventi Firebase.

Quale livello ha il maggior numero di risposte sbagliate?

Per rispondere a questa domanda, devi scoprire quanti eventi level_wrong_answer sono stati attivati per ogni livello.

Fai clic sulla level_wrong_answer nel report sugli eventi. Nel report sugli eventi level_wrong_answer, trova la scheda level_name. I valori associati al parametro level_name vengono visualizzati in questa scheda come segue.

25da426bbc0c612c.png

Secondo lo screenshot riportato sopra, puoi scoprire facilmente che l'orizzonte contiene il maggior numero di risposte sbagliate, il che significa che è difficile per gli utenti rispetto agli altri livelli.

Utilizzando le informazioni ottenute qui, puoi decidere di non fornire livelli difficili agli utenti inesperti per mantenere un tasso di fidelizzazione elevato.

Quanti tentativi in media sono stati effettuati per superare un livello?

Con il Quiz su Disegni epici, gli utenti possono inviare le risposte a ogni livello tutte le volte che vogliono.

Poiché hai attivato i report sui parametri per il parametro number_of_attempts nell'evento level_success, puoi visualizzare le metriche dettagliate per quel parametro.

Fai clic sull'evento level_success dal report Eventi. Nel report sugli eventi level_success, trova la scheda number_of_attemps. Il numero medio di tentativi su questa scheda sarà il seguente:

43de290f9f1a0ac9.png

Puoi utilizzare queste informazioni per ottimizzare la difficoltà media del gioco. Ad esempio, se il numero medio di tentativi è troppo vicino a 1, puoi considerare l'idea di rendere il gioco un po' più impegnativo.

Gli utenti hanno cercato di risolvere la domanda ricevendo un suggerimento, anche se alla fine non sono riusciti a superare un livello?

Quando un utente decide di saltare un livello, viene attivato un evento level_fail. I motivi per cui l'utente prende una decisione possono essere diversi.

Tuttavia, poiché il gioco può fornire loro un suggerimento dopo che hanno guardato un annuncio video con premio, è importante sapere se l'utente ha provato a cancellare il livello almeno con l'aiuto del suggerimento.

Fai clic sull'evento level_fail dal report Eventi. Nel report sugli eventi level_fail, trova la scheda hint_used. Viene visualizzato il numero medio di parametri evento (hint_used). Tieni presente che quando un hint viene utilizzato, viene impostato su 1, mentre su 0 quando un hint non è stato utilizzato.

313814372cd7c8a4.png

Se i numeri nella scheda hint_used sono vicini a 0, significa che il premio (suggerimento) non è molto interessante per gli utenti. Inoltre, stai perdendo l'opportunità di aumentare le entrate provenienti dagli annunci video con premio.

Dovresti quindi considerare l'idea di rendere il premio più utile per gli utenti, in modo che possano interagire con il gioco più a fondo e aumentare le entrate generate dagli annunci video con premio.

Quanti livelli sono stati superati in ogni partita, in media?

Nel quiz di Awesome Drawing Quiz ci sono un totale di 6 livelli per ogni gioco. Una volta che l'utente termina i sei livelli (indipendentemente dal fatto che abbia superato o meno ogni livello), viene attivato un evento game_complete con number_of_correct_answers come parametro.

Poiché number_of_correct_answers indica quanti livelli sono stati cancellati dall'utente (fornita una risposta corretta), puoi trovare la risposta esaminando le metriche del parametro number_of_correct_answers.

Fai clic su game_complete evento dal report sugli eventi. Nel report sugli eventi game_complete, trova la scheda number_of_correct_answers. Viene visualizzato il numero medio di parametri evento (number_of_correct_answers).

d9eeaa019d1bceb4.png

Se il numero medio di livelli superati è troppo basso, dovresti prendere in considerazione la riorganizzazione del gioco per aiutare le persone a superare un livello, in modo che possano continuare a giocare senza perdere l'interesse.

12. Operazione completata.

Hai completato il codelab Unity 101 di AdMob e Firebase. Il codice completo di questo codelab è disponibile nella cartella android_studio_folder.png101-complete_and_102-base.

Nella parte successiva del codelab AdMob e Firebase, imparerai a utilizzare una canalizzazione per visualizzare il flusso degli eventi app. Inoltre, illustreremo come utilizzare Remote Config e A/B Testing per ottimizzare il valore del parametro nel gioco senza un aggiornamento dell'app.