AdMob+Firebase 102 Unity: App-Verhalten ohne App-Update optimieren

1. Einführung

Angenommen, Sie müssen die Werte einiger Parameter in Ihrer App anpassen, nachdem Sie sie im Play Store veröffentlicht haben. In der Regel sollten Sie eine neue Version Ihrer App veröffentlichen und die Nutzer sollten die App auf ihren Smartphones aktualisieren.

Im Allgemeinen funktioniert das App-Update, wenn Sie eine dauerhafte Änderung an Ihrer App vornehmen möchten. Was aber, wenn Sie den Wert einiger Parameter in Ihrer App häufig anpassen möchten? Oder was, wenn Sie einige Tests durchführen möchten, um die optimale App-Konfiguration zu finden?

In diesen Fällen funktioniert die App-Aktualisierung nicht richtig. Es dauert einige Zeit, bis das Update vollständig auf die Nutzer übertragen wurde. Außerdem ist es ziemlich schwierig, die Tests für mehrere App-Versionen auszuführen.

Wie können Sie feststellen, ob der Nutzerpfad der App wie vorgesehen funktioniert? Sie können sich auf Nutzerkommentare in der Play Console verlassen. Sie ist jedoch möglicherweise nicht präzise genug, um eine klare Entscheidung zu treffen.

Lerninhalte

  • Trichter in Google Analytics for Firebase erstellen
  • Firebase Remote Config verwenden
  • Firebase A/B Testing ausführen

Voraussetzungen

  • Unity 2018.4.4f1 oder höher
  • Xcode 10 oder höher (zum Erstellen des Ziels für iOS)
  • Ein Google-Konto
  • Ein Testgerät mit Android 5.0 oder höher und ein USB-Kabel zum Verbinden des Geräts oder ein Android-Emulator mit einem AVD(Android Virtual Device) mit einem System-Image, das den Play Store bzw. Google APIs unterstützt
  • Ein iOS-Gerät oder ein Simulator mit iOS 8.0 oder höher

Wie würden Sie Ihre Erfahrung mit AdMob bewerten?

Anfänger Mittelstufe Fortgeschrittene

Wie würden Sie Ihre Erfahrung mit Firebase bewerten?

Anfänger Mittelstufe Fortgeschritten

2. Entwicklungsumgebung einrichten

Code herunterladen

Klicken Sie auf die folgende Schaltfläche, um den gesamten Code für dieses Codelab herunterzuladen:

Entpacken Sie die heruntergeladene ZIP-Datei. Dadurch wird ein Stammordner mit dem Namen admob-firebase-codelabs-unity-master entpackt.

… oder klonen Sie das GitHub-Repository über die Befehlszeile.

$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity

Das Repository enthält vier Ordner:

  • android_studio_folder.png101-base: Der Startcode, auf dem Sie in diesem Codelab aufbauen.
  • android_studio_folder.png101-complete_and_102-base: Der vollständige Code für dieses Codelab und der Starter für das Codelab 102.
  • android_studio_folder.png102-complete: Der vollständige Code für das Codelab 102.

Erforderliche Dateien vorbereiten

Für das Awesome Drawing Quiz werden mehrere Open-Source-Codes verwendet, die zum Kompilieren und Ausführen des Projekts erforderlich sind.

Öffnen Sie das Terminal und wechseln Sie zum Stammverzeichnis des Repositorys. Führen Sie dann ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles unter Windows) über das Terminal aus, um die erforderlichen Dateien in das Projekt zu kopieren.

Start-App importieren

Starten Sie Unity und wählen Sie auf dem Begrüßungsbildschirm Öffnen aus. Wählen Sie dann das Verzeichnis 101-complete_and_102-base aus dem heruntergeladenen Code aus.

Das Projekt sollte jetzt in Unity geöffnet sein.

Google Mobile Ads Unity-Plug-in hinzufügen

Wenn Sie AdMob-Anzeigen in der Unity-App ausliefern möchten, müssen Sie das Google Mobile Ads Unity-Plug-in in das Projekt einfügen.

  1. Laden Sie das Google Mobile Ads Unity-Plug-in 3.18.1-Paket herunter. Hinweis: Dieses Codelab ist möglicherweise nicht mit der anderen Version des Plug-ins kompatibel.
  2. Im Unity-Projekt Awesome Drawing Quiz. Rufen Sie im Projekt Assets > Import Package > Custom Package auf.
  3. Importieren Sie die Datei GoogleMobileAds.unitypackage in das heruntergeladene Projekt.

Sie müssen auch die AdMob-App-ID festlegen. Wählen Sie im Unity-Editor im Menü Assets > Google Mobile Ads > Einstellungen aus.

44fc84fe88235c1f.png

Aktivieren Sie AdMob, indem Sie im Bereich Google AdMob das Kästchen Aktiviert anklicken. Geben Sie dann die AdMob-App-ID so ein:

  • Android: ca-app-pub-3940256099942544~3048611032
  • iOS: ca-app-pub-3940256099942544~2753522596

a6ad7402d4daf330.png

Firebase-Konfigurationsdateien zum Unity-Projekt hinzufügen

  1. Klicken Sie auf dem Übersichtsdisplay des Projekts Awesome Drawing Quiz auf das Symbol „Einstellungen“ 9bacb5ada7cbaaf6.png.
  2. Wählen Sie auf dem Tab Allgemein jede Android- und iOS-App aus, um die Datei google-service.json (für Android) und die Datei GoogleService-Info.plist (für iOS) herunterzuladen.
  3. Verschieben Sie beide Konfigurationsdateien in den Ordner android_studio_folder.pngAssets im Unity-Projekt.

704aa8e97df63c4e.png

Firebase Analytics SDK hinzufügen

  1. Laden Sie das Firebase Unity SDK 5.5.0 herunter und entpacken Sie es an einem für Sie günstigen Ort. Überspringen Sie diesen Schritt, wenn Sie das SDK bereits heruntergeladen haben.
  2. Öffnen Sie das Unity-Projekt Awesome Drawing Quiz und rufen Sie Assets > Import Package > Custom Package auf.
  3. Importieren Sie aus dem entpackten SDK das Firebase Analytics SDK (dotnet4/FirebaseAnalytics.unitypackage).
  4. Klicken Sie im Fenster „Import Unity package“ (Unity-Paket importieren) auf Import (Importieren).

3. Firebase-Projekt in der Console öffnen

Bevor Sie mit dem nächsten Schritt fortfahren, öffnen Sie das Projekt aus der Firebase Console, das Sie im Schritt Firebase-Projekt einrichten des AdMob+Firebase 101-Codelab erstellt haben.

e0a028059c9e00cb.png

4. Trichter mit App-Ereignissen erstellen

Möglicherweise haben Sie einige App-Ereignisse hinzugefügt, um die Nutzeraktivitäten in der App zu erfassen. Wenn Sie den Bericht zu den einzelnen App-Ereignissen aufrufen, können Sie die zugehörigen Details wie Gesamtzahlen, durchschnittliche Anzahl pro Nutzer, demografische Daten usw. abrufen.

Was aber, wenn Sie sich nicht auf ein bestimmtes Ereignis konzentrieren, sondern die Abschlussrate einer Reihe von Ereignissen sehen möchten? In Google Analytics for Firebase können Sie mit Trichtern die Abschlussquote einer Reihe von App-Ereignissen visualisieren und optimieren.

Trichter erstellen

So erstellen Sie einen Trichter:

  1. Rufen Sie die Firebase Console auf und wählen Sie das Projekt Awesome Drawing Quiz aus, das Sie zuvor erstellt haben.
  2. Klicken Sie auf Trichter.
  3. Klicken Sie auf NEUER TRICHTER.
  4. Geben Sie einen Namen und eine Beschreibung für den Trichter ein.
  5. Wählen Sie die ersten beiden Ereignisse aus, die Sie als Schritte im Trichter verwenden möchten.
  6. Klicken Sie für jeden weiteren Schritt auf WEITERES EREIGNIS HINZUFÜGEN und wählen Sie ein Ereignis aus.
  7. Klicken Sie auf ERSTELLEN.

Erstellen Sie mit den oben genannten Schritten die folgenden Trichter:

1. Trichtername:Erfolgsrate auf Level-Ebene Ereignisse: level_start, level_successd3bc78ef61a261d7.png

2. Trichtername:Abschlussrate von Anzeigen mit Prämie Ereignisse: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

3. Trichtername:Abschlussrate des Spiels Ereignisse: game_start, game_completedab25e8501746d5f.png

Trichteranalyse ansehen

Nachdem Sie einige Trichter erstellt haben, können Sie in der Firebase Console über das Menü Trichter darauf zugreifen. Wenn Sie in der Liste auf den Namen eines Trichters klicken, wird die detaillierte Analyse des jeweiligen Trichters angezeigt.

620c0e84587c8ad4.png

Klicken Sie beispielsweise auf Erfolgsquote für Level. Die Trichterdetails werden so angezeigt:

c889f9b6ece15847.png

Im Screenshot oben sehen Sie den Prozentsatz der Nutzer, die ein Level abgeschlossen (level_success-Ereignis ausgelöst) haben, nachdem sie ein Level gestartet (level_start-Ereignis ausgelöst) haben. Hier sehen Sie, dass 46,2% der Nutzer das Level abgeschlossen haben.

Wenn Sie auf Ereignisanzahl klicken, werden die Messwerte basierend auf der Anzahl der Ereignisse so angezeigt:

d044fb7b07e6e0d9.png

Anhand der Messwerte im Screenshot oben lässt sich erkennen, dass es im Zeitraum 116 Versuche (durch das Ereignis „level_start“ ausgelöst) und 57 erfolgreiche Durchläufe (durch das Ereignis „level_success“ ausgelöst) gab.

Da die Abschlussrate basierend auf den Ereignissen(49,1%) etwas höher ist als die Rate basierend auf den Nutzern(46,2%), können Sie davon ausgehen, dass einige Nutzer besser abschneiden als andere.

5. Remote Config in die App einbinden

Da Sie anhand der App-Ereignisse und des Trichters einige Informationen zu Ihrer App erhalten, sollten Sie sie optimieren. Das umfasst in der Regel eine Feinabstimmung des Parameterwerts in der App. Wenn Sie den Wert dieser Parameter ändern möchten, müssen Sie die App aktualisieren, damit die Änderungen auf die Nutzer angewendet werden können.

Mit Remote Config in Firebase können Sie diese Werte ohne App-Update anpassen. Das bedeutet, dass Sie das App-Verhalten ändern können, ohne Ihre Nutzer zu stören, indem Sie sie zum Herunterladen des Updates zwingen.

In diesem Codelab erfahren Sie, wie Sie die Höhe der Prämie (Anzahl der Buchstaben, die nach dem Ansehen einer Anzeige mit Prämie enthüllt werden) ohne App-Update mithilfe von Remote Config anpassen können.

Firebase Remote Config SDK hinzufügen

  1. Laden Sie das Firebase Unity SDK 5.5.0 herunter und entpacken Sie es an einem für Sie günstigen Ort.
  2. Öffnen Sie das Unity-Projekt Awesome Drawing Quiz und rufen Sie Assets > Import Package > Custom Package auf.
  3. Importieren Sie das Remote Config SDK (dotnet4/FirebaseRemoteConfig.unitypackage) aus dem entpackten SDK.
  4. Klicken Sie im Fenster „Import Unity package“ (Unity-Paket importieren) auf Import (Importieren).

Firebase.RemoteConfig importieren

Ändern Sie „Main.cs“, damit Sie den Typ aus „Firebase.RemoteConfig“ verwenden können, ohne den voll qualifizierten Namen angeben zu müssen.

Scenes/Main.cs

...

using AwesomeDrawingQuiz.Game;

// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;

namespace AwesomeDrawingQuiz.Scene {
    ...
}

Remote Config-Werte initialisieren und abrufen

Ändern Sie die Methode InitAndFetchRemoteConfig() in Main.cs, um die Remote Config-Instanz so zu initialisieren: GameSettings.KEY_REWARD_AMOUNT enthält den Namen des Parameters in Remote Config. (Sie deklarieren dieses Feld bald in diesem 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();
    }
}

Die FirebaseRemoteConfig-Instanz ist so konfiguriert, dass im Debug-Modus die neuesten Werte vom Server abgerufen werden, um den Entwicklungsprozess zu unterstützen. (IsDeveloperMode = true und FetchAsync(System.TimeSpan.Zero))

Abgerufene Remote Config-Werte aktivieren

Nachdem Sie die Remote Config-Werte abgerufen haben, müssen Sie sie aktivieren, damit sie in der App verfügbar sind. Ändern Sie die ActivateRemoteConfigValues()-Methode wie folgt.

Scenes/Main.cs

private void ActivateRemoteConfigValues() {
    // TODO: Activate fetched Remote Config values (102)
    FirebaseRemoteConfig.ActivateFetched();
}

Start()-Methode ändern

Damit die App den Remote Config-Wert beim Start abruft und aktiviert, ändern Sie die Methode Start() in der Datei Main.cs so:

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
}

Prämienbetrag aus Remote Config abrufen

Ändern Sie die GameSettings-Klasse, um den Prämienbetrag aus der Remote Config abzurufen.

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 { }
        }
    }
}

Remote Config-Parameter über die Konsole erstellen

Als Nächstes erstellen Sie einen neuen Remote Config-Parameter für den Prämienbetrag, damit Sie seinen Wert spontan anpassen können.

Wenn Sie einen neuen Parameter erstellen möchten, rufen Sie die Firebase Console auf und wählen Sie das Projekt Awesome Drawing Quiz aus, das Sie zuvor erstellt haben. Klicken Sie auf die Schaltfläche Remote Config -> ADD YOUR FIRST PARAMETER (Remote Config -> ERSTEN PARAMETER HINZUFÜGEN).

7f52617141c53726.png

Geben Sie dem Parameter den Namen reward_amount und legen Sie als Standardwert 1 fest. Klicken Sie dann auf die Schaltfläche Parameter hinzufügen.

cbc771fd1685b29c.png

Klicken Sie auf die Schaltfläche Änderungen veröffentlichen, um die Änderung für die Nutzer zu veröffentlichen.

d6a6aa4a60e06ee9.png

6. App-Verhalten mit Remote Config ändern

Die Höhe der Prämie im Awesome Drawing Quiz kann jetzt in der Firebase-Konsole konfiguriert werden, ohne dass der App-Code aktualisiert werden muss.

In diesem Abschnitt ändern Sie den Belohnungsbetrag von 1 auf 2, damit in der App nach dem Ansehen einer Anzeige mit Prämie zwei weitere Zeichen als Hinweis angezeigt werden.

Standardwert des Parameters „reward_amount“ aktualisieren

Rufen Sie die Firebase Console auf und wählen Sie das Projekt Awesome Drawing Quiz aus, das Sie zuvor erstellt haben. Klicken Sie auf Remote Config und dann in der Liste auf reward_amount. Ändern Sie als Nächstes den Standardwert in „2“ und klicken Sie auf die Schaltfläche Aktualisieren.

9a9bd8a26a39bfe3.png

Klicken Sie auf die Schaltfläche Änderungen veröffentlichen, um die Änderung für die Nutzer zu veröffentlichen.

d6a6aa4a60e06ee9.png

Änderung des App-Verhaltens bestätigen

Führen Sie das Projekt noch einmal aus, um die Änderung des App-Verhaltens zu bestätigen. Nachdem Sie sich eine Anzeige mit Prämie angesehen haben, werden in der App nun zwei Buchstaben als Prämie angezeigt, wie wir in der Remote Config-Konsole konfiguriert haben.

Vor dem Ansehen einer Anzeige mit Prämie

Als Belohnung wurden zwei zusätzliche Buchstaben aufgedeckt.

7. Test zur Optimierung des Prämienbetrags erstellen

Sie können die Höhe der Prämie jetzt ändern, ohne ein App-Update veröffentlichen zu müssen. Wie können Sie jedoch feststellen, ob die Änderungen, die Sie vorgenommen haben, für die App von Vorteil sind?

Mit Firebase A/B Testing können Sie die Tests durchführen, um die allgemeine Nutzerfreundlichkeit der App zu optimieren, ohne dass Sie eine App aktualisieren oder ein separates Tool zum Ausführen und Nachverfolgen der Leistung der einzelnen Tests erstellen müssen.

Test konzipieren

Bevor Sie einen neuen Test erstellen, sollten Sie ein klares Ziel für den Test festlegen. Gehen Sie die folgende Checkliste durch, bevor Sie einen neuen Test erstellen.

  • Was: Was möchten Sie optimieren? z. B. Schwierigkeitsgrad des Spiels, Timing/Sichtbarkeit von Anzeigen
  • Warum: Welches Geschäftsziel verfolgen Sie mit dem Test? (z. B. um den Werbeumsatz zu maximieren oder die Nutzerbindung zu erhöhen)
  • Wer: Wer soll am Test teilnehmen? z. B. „Alle Nutzer“ oder „Bestimmte Nutzergruppe“

In diesem Codelab erstellen Sie einen Test, um den Wert für die Belohnung zu optimieren und so die tägliche Nutzerinteraktion des Awesome Drawing Quiz zu maximieren.

Test erstellen

Öffnen Sie das Projekt „Awesome Drawing Quiz“ in der Firebase Console. Wählen Sie das Menü A/B-Tests aus und klicken Sie dann auf die Schaltfläche Test erstellen.

Wählen Sie Remote Config aus, um einen Remote Config-Test zu erstellen.

f38a85328ab54e7e.png

Geben Sie dem Test den Namen Betrag der Prämie, wie im folgenden Screenshot dargestellt.

15d552adb61c0b08.png

Konfigurieren Sie die Targeting-Optionen. In diesem Codelab richten Sie die Kampagne auf 100% der Nutzer des Awesome Drawing Quiz aus.

61b316741a63050f.png

Da das Hauptziel des Tests darin besteht, einen optimalen Wert zu finden, mit dem die täglichen Nutzerinteraktionen maximiert werden, wählen Sie Tägliche Nutzerinteraktionen als primären Messwert aus, der erfasst werden soll.

694641b57d90ff65.png

Richten Sie schließlich eine Kontroll- und eine Variantengruppe ein, um herauszufinden, welche Gruppe besser abschneidet. Wählen Sie reward_amount aus der Kontrollgruppe aus und lassen Sie den Wert unverändert. Geben Sie für die Variantengruppe den Namen Weniger Prämie ein und ändern Sie den Wert von reward_amount in 1.

10ed7f5b06858519.png

Mit dieser Konfiguration erhalten Personen in der Gruppe Weniger Belohnung einen Buchstaben als Belohnung, während Personen in der Kontrollgruppe zwei Buchstaben als Belohnung erhalten. So können Sie sehen, wie sich die Höhe der Prämie auf die Nutzer auswirkt.

Wenn Sie auf den Button Überprüfen klicken, wird eine Übersicht des Tests angezeigt.

ae6477ce79f6265d.png

Test durchführen

Klicken Sie auf die Schaltfläche Test starten, um den Test auszuführen. Hinweis: Sobald der Test gestartet ist, können Sie die Konfiguration nicht mehr ändern.

7131bf9b4fa74fa5.png

8. Test verwalten

Fortschritt des Tests ansehen

Sie können den Fortschritt des Tests in der Firebase Console im Menü A/B-Tests verfolgen. Das sieht dann so aus wie im folgenden Screenshot. Auf der Karte sehen Sie auch die Anzahl der Nutzer, die in den letzten 30 Minuten am Test teilgenommen haben.

8a7009bdd8871d95.png

Wenn Sie in der Liste auf den Test klicken, werden die Testdetails angezeigt. Bis ein Gewinner (d.h. die leistungsstärkste Variante) ermittelt werden kann, wird die Meldung Es ist noch zu früh, um einen Gewinner zu ermitteln angezeigt.

a4e7ca3e3f4711cd.png

Nachdem der Test eine Weile läuft, werden die bisher erhobenen Daten im Bereich Übersicht der Verbesserungen angezeigt. Sie können die Leistung der einzelnen Varianten vergleichen, um zu sehen, welche besser abschneidet. Der folgende Screenshot zeigt ein Beispiel für den Abschnitt „Übersicht über Verbesserungen“.

e2d00fc27c053fd3.png

In der Tabelle unter dem Bereich Übersicht über die Verbesserung finden Sie die Details der Zielvorhabenmesswerte des Tests sowie zusätzliche Messwerte, die im Test erfasst werden. Der folgende Screenshot zeigt ein Beispiel für den Bereich mit Messwertdetails.

c3859d642f85cc52.png

Leader für alle Nutzer einführen

Sobald Sie die beste Variante ermittelt haben, können Sie den Test auf alle Nutzer ausweiten. Sobald beim A/B-Test eine klare beste Variante ermittelt wurde, werden Sie aufgefordert, diese Variante für alle Nutzer einzuführen.

86cb6a6c07516634.png

Das ist auch dann möglich, wenn keine Variante die beste ist.

Klicken Sie auf dem Bildschirm mit den Testdetails auf das Kontextmenü ( 73afe611adf58774.png) und dann auf Variante einführen.

374e1c72be1d0656.png

Wählen Sie eine Variante aus, die für alle Nutzer eingeführt werden soll, und klicken Sie dann auf die Schaltfläche In Remote Config überprüfen, um die Änderungen zu prüfen, bevor Sie eine Änderung in Remote Config vornehmen.

e176f6e6a72c754.png

Wenn Sie bestätigt haben, dass der Entwurf keine Probleme aufweist, klicken Sie auf die Schaltfläche Änderungen veröffentlichen, um die Änderung für alle Nutzer zu veröffentlichen.

d65d545620ce93f6.png

9. Fertig!

Sie haben das Codelab „AdMob+Firebase 102 Unity“ abgeschlossen. Den vollständigen Code für dieses Codelab finden Sie im Ordner android_studio_folder.png102-complete.