1. Einführung
In diesem Codelab erfahren Sie, wie Sie einen Remote Config-Test mit A/B Testing für das Beispielspiel MechaHamster: Level Up with Firebase edition erstellen, das Sie in Firebase Remote Config in Ihr Spiel einbinden geändert haben.
Mit A/B-Tests mit Remote Config können Sie Änderungen an der Benutzeroberfläche, den Funktionen oder den Interaktionen Ihrer App an einer bestimmten Zielgruppe testen, bevor Sie sie für eine größere Zielgruppe einführen. Sie können die Testergebnisse auch für Folgendes verwenden:
- Ermitteln Sie, welche Varianten von Parameterwerten wichtige Messwerte wie Umsatz und Kundenbindung verbessern.
- Herausfinden, welche Untergruppen von Nutzern welche Varianten bevorzugen.
- Erheben und speichern Sie Testdaten, um zusätzliche Analysen zu den Auswirkungen verschiedener Parameterwerte durchzuführen.
Das ist das Wesen von A/B-Tests: Sie können Code, der für Remote Config instrumentiert wurde, verwenden, um Tests zu starten, mit denen die Werte gesteuert werden, die Clients basierend auf Remote Config-Bedingungen (einschließlich Google Analytics-Nutzereigenschaften), prozentualen Roll-outs, Analytics-Conversion-Ereignissen und einer Kombination aus diesen erhalten.
Zuerst implementieren Sie eine Bedingung, mit der festgelegt wird, wer in den Test aufgenommen wird. Dazu legen Sie Nutzerattribute basierend auf Nutzeraktionen fest. Anschließend erstellen Sie einen A/B-Test, in dem anhand von Google Analytics-Nutzereigenschaften bestimmt wird, welche Clients in den Test einbezogen werden. Schließlich nutzen Sie diese Daten, um mehr über Ihre Zielgruppe zu erfahren.
Lerninhalte
- A/B Testing mit instrumentierten Remote Config-Werten einrichten
- Google Analytics-Nutzereigenschaften als Teil von Bedingungen für die Aufnahme in A/B-Tests verwenden
Vorbereitung
- Firebase Remote Config in Ihr Spiel einbinden abgeschlossen
Voraussetzungen
- Unity 2019.1.0f1 oder höher mit Unterstützung für iOS- und/oder Android-Builds
2. Menü zur Fehlerbehebung aktivieren
Im Projekt ist ein Debug-Menü verborgen. Die Schaltfläche für den Zugriff auf dieses Menü ist im Spiel vorhanden, aber derzeit nicht aktiviert. Sie müssen die Schaltfläche aktivieren, um über das MainMenu-Prefab darauf zuzugreifen.
- Wählen Sie im Unity-Editor den Tab Project aus. Erweitern Sie dann unter Assets die Optionen Hamster > Prefabs > Menus und klicken Sie auf MainMenu.
- Suchen Sie in der Prefab-Hierarchie nach dem deaktivierten Unterobjekt mit dem Namen DebugMenuButton und klicken Sie darauf, um es auf dem Tab Inspector (Inspector) zu öffnen.
- Setzen Sie auf dem Tab Inspector (Prüftool) links oben neben dem Textfeld mit DebugMenuButton ein Häkchen, um die Schaltfläche zu aktivieren.
- Speichern Sie das Prefab.
Wenn Sie das Spiel entweder im Editor oder auf Ihrem Gerät ausführen, sollte das Menü jetzt zugänglich sein.
3. Untermenü „Remote Config“ aktivieren
- Erweitern Sie im Unity-Editor auf dem Tab Project (Projekt) Assets > Hamster > Prefabs > Menus und doppelklicken Sie auf das Objekt DebugMenu, um es im Editor auf dem Tab Hierarchy (Hierarchie) zu öffnen.
- Maximieren Sie auf dem Tab Hierarchie die Hierarchie und klicken Sie auf das Unterobjekt unter DebugMenu > Panel mit dem Label Remote Config Actions (Remote-Konfigurationsaktionen).
- Aktivieren Sie auf dem Tab Inspector (Inspector) in Unity Remote Config Actions (Remote Config-Aktionen), indem Sie das Kästchen links neben dem Textfeld mit dem Namen des Objekts anklicken.
Dieses hat zwei untergeordnete GameObjects mit den Namen „Set Bored Of Subtitle“ und „Set Enjoys Subtitle“, die beide so konfiguriert sind, dass vorhandene, aber nicht implementierte Methoden in DebugMenu.cs
aufgerufen werden.
4. Untertitelüberschreibung auf In-App-Standardwert zurücksetzen
Im vorherigen Codelab haben Sie den Standardwert eines Parameters als JSON überschrieben und Bedingungen verwendet, um verschiedene Varianten bereitzustellen. Im Rahmen dieses Codelabs löschen Sie die von Ihnen erstellte Bedingung und führen die In-App-Standardeinstellung wieder ein. Sie überschreiben sie nur mit dem Ergebnis des A/B-Tests.
So aktivieren Sie den In-App-Standardwert wieder:
- Öffnen Sie die Remote Config-Seite in der Firebase Console und klicken Sie neben dem Parameter
subtitle_override
auf das Stiftsymbol, um die Seitenleiste Parameter bearbeiten zu öffnen. - Klicken Sie neben der Bedingung auf das Symbol X, um sie zu löschen.
- Aktivieren Sie neben dem verbleibenden Standardwert die Ein/Aus-Schaltfläche In-App-Standardwert verwenden.
- Klicken Sie auf Speichern, um die Änderungen zu speichern, und dann auf Änderungen veröffentlichen, um die Änderungen zu veröffentlichen.
5. Nutzereigenschaften in Debug-Funktionen festlegen
Sie schreiben nun Funktionsrümpfe für einige vorkonfigurierte, aber nicht implementierte Google Analytics-Funktionen in DebugMenu.cs
(unter „Assets“ > „Hamster“ > „Scripts“ > „States“).
Mit diesen Funktionen werden Nutzereigenschaften festgelegt, mit denen Segmente Ihrer Nutzerbasis beschrieben werden. Sie werden verwendet, um aufzuzeichnen, wie der Nutzer den Untertitel des Spiels findet.
Implementieren Sie SetUserBoredOfSubtitle
und SetUserEnjoysSubtitle
, indem Sie die vorhandenen Versionen in DebugMenu.cs
suchen und sie so überschreiben:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
Wenn Ihre App richtig für Google Analytics konfiguriert ist, können Sie eine dieser Funktionen aufrufen, um die Property für die Bedingungen von Remote Config verfügbar zu machen. Wenn du SetUserBoredOfSubtitle
auf einem Mobilgerät anrufen möchtest, starte das Spiel, drücke im Hauptmenü auf die Schaltfläche Debug Menu (Debug-Menü) und dann auf Set Bored of Subtitle (Langeweile des Untertitels festlegen).
6. Benutzerdefinierte Dimension erstellen
Als Nächstes richten Sie verschiedene Untertitelvarianten für subtitle_override
ein, um herauszufinden, welcher Untertitel am besten funktioniert. In Ihrem A/B-Test werden diese Varianten jedoch nur Nutzern präsentiert, deren Gefühle in Bezug auf den aktuellen Untertitel (wie in subtitle_sentiment
aufgezeichnet) das Wort „langweilig“ enthalten.
Mit einer benutzerdefinierten Dimension können Sie benutzerdefinierte Parameter für Analytics-Ereignisse erstellen und erfassen. Weitere Informationen finden Sie unter Benutzerdefinierte Dimensionen und Messwerte.
So erstellen Sie eine neue benutzerdefinierte Dimension:
- Öffnen Sie die Firebase Console, maximieren Sie das Menü Analytics und wählen Sie Benutzerdefinierte Definitionen aus.
- Klicken Sie auf der Seite „Benutzerdefinierte Definitionen“ auf Benutzerdefinierte Dimensionen erstellen.
- Legen Sie im Fenster Neue benutzerdefinierte Dimension den Namen der Dimension auf „Sentiment des Untertitels“ fest und wählen Sie im Drop-down-Menü Umfang die Option Nutzer aus.
- Wählen Sie für das Feld Nutzereigenschaft die Option
subtitle_sentiment.
aus.
7. A/B-Test einrichten
Erstellen Sie als Nächstes ein A/B-Test-Experiment, um verschiedene Werte für subtitle_override
festzulegen, die miteinander verglichen werden sollen, um die Nutzerbindung nach zwei bis drei Tagen zu optimieren.
- Wählen Sie zuerst auf der Seite Remote Config in der Firebase Console für den Parameter
subtitle_override
die Option Bearbeiten aus:
- Klicken Sie im angezeigten Dialogfeld Parameter bearbeiten auf Neu hinzufügen.
- Wählen Sie in der angezeigten Liste Test aus.
- Geben Sie einen Namen und eine Beschreibung für den Test ein.
- Wählen Sie als Nächstes die Targeting-Bedingungen aus. Wählen Sie zuerst Ihre App aus dem Drop-down-Menü aus.
- Klicken Sie als Nächstes auf Und, um eine neue Bedingung hinzuzufügen. Wählen Sie dann Nutzerattribut und
subtitle_sentiment
aus. Wenn es nicht angezeigt wird, geben Sie es manuell ein. - Da Sie nur für die Videos, deren aktuelle Untertitelstimmung „bored“ enthält, einen Untertitel festlegen möchten, wählen Sie contains aus und geben Sie
bored
ein. - Optional können Sie auswählen, welcher Prozentsatz der Zielgruppe, die die oben genannten Kriterien erfüllt, dem Test ausgesetzt werden soll. Wählen Sie 100% aus, um Zufälligkeit zu vermeiden, die Sie nicht einfach steuern können.
- Wählen Sie als Nächstes ein Ziel aus, das mit dem Test maximiert werden soll. Wählen Sie Bindung (2–3 Tage) aus.
- Richten Sie als Nächstes die Parameter des Tests ein und erstellen Sie verschiedene Untertitelvarianten . Diese Varianten sind die verschiedenen Werte, die bei A/B-Tests für Nutzer mit
subtitle_sentiment
mit dem Begriff „bored“ (langweilig) verwendet werden. Bei A/B-Tests wird ermittelt, welche Variante am besten geeignet ist, um die Kundenbindung zu maximieren. - Geben Sie den folgenden Parameterwert für Variante A ein:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- Geben Sie den folgenden Parameterwert für Variante B ein:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- Legen Sie die Variantenverhältnisse mit ganzen Zahlen so fest:
- Ausgangswert: 1
- Variante A: 100
- Variante B: 100
Bei diesen Varianten wird der Standardwert einmal von 201 Mal für Nutzer bereitgestellt, die Untertitel nicht mehr sehen möchten. 200 von 201 Mal wird jedoch einer von zwei neuen Werten bereitgestellt und der Titelbildschirm überschrieben.
- Klicken Sie zum Speichern und Senden auf Test starten und dann im Bestätigungs-Pop-up auf Starten.
8. Methode „Set User Property“ ausführen und aktualisieren
Sie haben jetzt verschiedene Eigenschaften für den Nutzer festgelegt, die dann verwendet werden können, um die Logik oder Darstellung Ihres Spiels zu steuern.
Wenn Sie die Methode SetUserProperty
noch nicht ausgeführt oder auf enjoys
festgelegt haben, sollte beim Öffnen des Spiels weiterhin der Standarduntertitel angezeigt werden.
Wenn Sie den Wert auf bored
festgelegt haben (bevor Sie die Daten noch einmal abrufen), sollten Sie einen der neuen Werte in einem Verhältnis von etwa 50/50 sehen.
Sobald ein Gerät an einem A/B-Test teilnimmt, ändern sich die Werte, die es aus diesem Test erhält, nicht mehr. Sie sind dauerhaft pro Installation. Wenn Sie einen der anderen Testwerte erhalten möchten, müssen Sie eine neue Installation erstellen. Dazu müssen Sie das Spiel entweder auf demselben Gerät/Simulator neu installieren oder auf einem neuen Gerät/Simulator installieren.
Bei einem echten A/B-Test, der für alle Nutzer gestartet wird, sollten Sie der Baseline ein ähnliches Gewicht wie den anderen Varianten geben. In diesem Fall weisen Sie jedoch sehr ungleichmäßige Wahrscheinlichkeiten zu, um zu prüfen, ob der Test funktioniert. Wenn Sie (im Fall 1/201) weiterhin den Standardwert erhalten, versuchen Sie, das Spiel auf Ihrem Gerät/Simulator neu zu installieren.
Ein weiterer Effekt ist, dass das Zurücksetzen der Nutzer-Property auf enjoys
den Wert nicht auf den Baseline-Wert zurücksetzt. Sie können dies jedoch tun, indem Sie auf enjoys
umstellen und die App neu installieren.
9. Glückwunsch!
Sie haben Remote Config A/B Testing verwendet, um verschiedene Remote Config-Werte zu testen und zu ermitteln, wie sich die einzelnen Werte auf Analytics-Messwerte auswirken.
Behandelte Themen
- A/B Testing mit instrumentierten Remote Config-Werten einrichten
- Google Analytics-Nutzerattribute als Teil von Bedingungen für die Aufnahme in A/B-Tests verwenden
Nächste Schritte
Nach dem Test können Sie einen Test aus der Liste der Tests in Ihrem Projekt auswählen, um zu entscheiden, was Sie damit tun möchten. Möchten Sie eine als „Gewinner“ auswählen oder weitere Tests durchführen?