Implementuj testy A/B dla swojej gry Unity za pomocą Firebase Remote Config

1. Wstęp

Podczas tych zajęć z programowania dowiesz się, jak utworzyć eksperyment zdalnej konfiguracji przy użyciu testów A/B dla przykładowej gry MechaHamster: Level Up w wersji Firebase , którą zmodyfikowałeś w części Instrumentuj swoją grę za pomocą zdalnej konfiguracji Firebase .

Testowanie A/B za pomocą zdalnej konfiguracji umożliwia testowanie zmian w interfejsie użytkownika, funkcjach lub kampaniach budujących zaangażowanie aplikacji na docelowej grupie odbiorców, zanim udostępnisz je szerszemu gronu odbiorców. Wyniki eksperymentu możesz także wykorzystać do:

  • Określ, które warianty wartości parametrów poprawiają kluczowe wskaźniki, takie jak przychody i utrzymanie.
  • Odkryj, które podgrupy użytkowników preferują które warianty.
  • Zbieraj i przechowuj dane eksperymentalne, aby przeprowadzić dodatkową analizę skutków ustawienia różnych wartości parametrów.

Na tym polega istota testów A/B: umożliwiają one wykorzystanie kodu na potrzeby zdalnej konfiguracji i rozpoczęcie eksperymentów kontrolujących wartości otrzymywane przez klientów w oparciu o warunki zdalnej konfiguracji (w tym właściwości użytkownika Google Analytics), odsetek wdrożeń, zdarzenia konwersji Analytics, i jakąś ich kombinację.

Najpierw zaimplementujesz warunek określający, kto zostanie objęty eksperymentem, ustawiając właściwości użytkownika na podstawie jego działań. Następnie utworzysz eksperyment testu A/B, który użyje właściwości użytkownika Google Analytics, aby określić, którzy klienci zostaną objęci eksperymentem. I na koniec, wykorzystasz te dane, aby lepiej poznać swoich odbiorców.

Czego się dowiesz

  • Jak skonfigurować testy A/B przy użyciu wartości przyrządów zdalnej konfiguracji
  • Jak wykorzystać właściwości użytkownika Google Analytics w ramach warunków dopuszczenia do testów A/B

Warunki wstępne

Co będziesz potrzebował

  • Unity 2019.1.0f1 lub nowsza wersja z obsługą kompilacji na iOS i/lub Androida

2. Włączanie menu debugowania

W projekcie ukryte jest menu debugowania, a przycisk umożliwiający dostęp do tego menu istnieje w grze, ale obecnie nie jest włączony. Musisz włączyć przycisk, aby uzyskać do niego dostęp z prefabrykatu MainMenu.

  1. W edytorze Unity wybierz kartę Projekt , następnie w obszarze Zasoby rozwiń Chomik > Prefabrykaty > Menu i kliknij Menu główne .

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. W hierarchii prefabrykatów znajdź wyłączony podobiekt o nazwie DebugMenuButton i kliknij go, aby otworzyć go w zakładce Inspektor .

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

  1. Na karcie Inspektor zaznacz pole w lewym górnym rogu obok pola tekstowego zawierającego przycisk DebugMenuButton , aby go włączyć.

The Inspector tab for DebugMenuButton\nwith checkbox

  1. Zapisz prefabrykat.

Jeśli uruchomisz grę w edytorze lub na swoim urządzeniu, menu powinno być teraz dostępne.

3. Włącz podmenu Zdalna konfiguracja

  1. Na karcie Projekt w Edytorze Unity rozwiń Zasoby > Chomik > Prefabrykaty > Menu i kliknij dwukrotnie obiekt DebugMenu , aby otworzyć go na karcie Hierarchia edytora.

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. Na karcie Hierarchia rozwiń hierarchię i kliknij podobiekt w obszarze DebugMenu > Panel oznaczony etykietą Działania zdalnej konfiguracji .

Remote Config Actions nested under\nCanvas, DebugMenu

  1. Na karcie Unity Inspector włącz Akcje zdalnej konfiguracji , zaznaczając pole po lewej stronie pola tekstowego zawierającego nazwę obiektu.

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

Ma to dwa elementy podrzędne GameObject o nazwach Set Bored Of Subtitle i Set Enjoys Subtitle, które są skonfigurowane do wywoływania istniejących, ale niezaimplementowanych metod w DebugMenu.cs .

4. Zresetuj zastąpienie napisów do ustawień domyślnych w aplikacji

W poprzednich ćwiczeniach z programowania zastąpiłeś domyślną wartość parametru w formacie JSON i użyłeś warunków do obsługi różnych wariantów. W ramach tych ćwiczeń z kodowania usuniesz utworzony warunek i ponownie wprowadzisz wartość domyślną w aplikacji, a zastąpisz ją jedynie wynikami testów A/B.

Aby ponownie włączyć ustawienie domyślne w aplikacji:

  1. Otwórz stronę Zdalna konfiguracja w konsoli Firebase i kliknij ikonę ołówka obok parametru subtitle_override , aby otworzyć panel boczny Edytuj parametr .
  2. Kliknij ikonę X obok warunku, aby go usunąć.
  3. Obok pozostałej wartości domyślnej włącz przełącznik Użyj wartości domyślnej w aplikacji .

Deleting a condition from the Remote\nConfig parameter editor

  1. Kliknij Zapisz , aby zapisać zmiany, a następnie kliknij Opublikuj zmiany , aby opublikować zmiany. Publish\nchanges option on the Remote Config page

5. Ustaw Właściwości użytkownika w funkcjach debugowania

Teraz napiszesz treści funkcji dla niektórych wstępnie skonfigurowanych, ale niezaimplementowanych funkcji Google Analytics w DebugMenu.cs (które można znaleźć w Zasoby > Hamster > Skrypty > Stany).

Funkcje te ustawiają właściwości użytkownika , które służą do opisywania segmentów bazy użytkowników i służą do rejestrowania opinii użytkownika na temat podtytułu gry.

Zaimplementuj SetUserBoredOfSubtitle i SetUserEnjoysSubtitle , znajdując ich istniejące wersje w DebugMenu.cs i nadpisując je w następujący sposób:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Jeśli Twoja aplikacja jest poprawnie skonfigurowana z Google Analytics, możesz wywołać jedną z tych funkcji, aby udostępnić właściwość warunkom Remote Config. Aby wywołać SetUserBoredOfSubtitle z urządzenia mobilnego, uruchom grę i wciśnij przycisk Debug Menu w menu głównym, a następnie wciśnij Set Bored of Subtitle .

6. Utwórz wymiar niestandardowy

Następnie skonfigurujesz różne warianty napisów dla subtitle_override , aby zobaczyć, które podtytuły sprawdzają się najlepiej. Jednak w teście A/B będziesz udostępniać te warianty tylko użytkownikom, których odczucia dotyczące bieżącego napisu (jak zapisano w subtitle_sentiment ) zawierają słowo „nudny”.

Wymiaru niestandardowego będziesz używać do tworzenia i śledzenia parametrów niestandardowych w zdarzeniach Analytics. Więcej informacji znajdziesz w artykule Niestandardowe wymiary i dane .

Aby utworzyć nowy wymiar niestandardowy:

  1. Otwórz konsolę Firebase , rozwiń menu Analytics i wybierz Definicje niestandardowe.
  2. Na stronie Definicje niestandardowe kliknij opcję Utwórz wymiary niestandardowe .
  3. W oknie Nowy wymiar niestandardowy ustaw nazwę wymiaru na „Nastroje napisów” i z listy rozwijanej Zakres wybierz opcję Użytkownik .
  4. W polu Właściwość użytkownika wybierz opcję subtitle_sentiment.

7. Skonfiguruj eksperyment testowania A/B

Następnie utwórz eksperyment testowania A/B, aby ustawić różne wartości parametru subtitle_override i przetestować je względem siebie, aby zoptymalizować utrzymanie użytkowników przez dwa do trzech dni.

  1. Najpierw wybierz opcję Edytuj w parametrze subtitle_override na stronie zdalnej konfiguracji konsoli Firebase:

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. W wyświetlonym oknie dialogowym Edytuj parametr kliknij opcję Dodaj nowy .

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. Z wyświetlonej listy wybierz opcję Eksperyment .

Remote Config parameter page: Add new\nexperiment

  1. Wprowadź nazwę i opis eksperymentu.

Experiment name and description\nsection

  1. Następnie wybierz warunki kierowania. Najpierw wybierz aplikację z listy rozwijanej.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. Następnie kliknij I , aby dodać nowy warunek, następnie wybierz Właściwość użytkownika i wybierz subtitle_sentiment . Jeśli się nie pojawi, wprowadź go ręcznie.
  2. Ponieważ chcesz ustawić napisy tylko dla tych, których obecny nastrój napisów zawiera „znudzony”, wybierz zawiera i wpisz bored .
  3. Opcjonalnie wybierz, jaki procent odbiorców spełniających powyższe kryteria ma zostać poddany testowi. Wybierz 100% , aby uniknąć losowości, nad którą nie możesz łatwo zapanować.

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. Następnie wybierz cel, dla którego test będzie próbował maksymalizować. Wybierz zatrzymanie (2-3 dni) .

A/B Testing Goals section

  1. Następnie ustaw parametry eksperymentu i utwórz różne warianty napisów. Te warianty to różne wartości, które Testowanie A/B będzie służyć użytkownikom, których subtitle_sentiment zawiera „znudzony”, a Testowanie A/B określi, który wariant jest najlepszy pod kątem maksymalizacji retencji.
  2. Wprowadź następującą wartość parametru dla Wariantu A:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Wprowadź następującą wartość parametru dla Wariantu B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Ustaw współczynniki wariantów z liczbami całkowitymi w następujący sposób:
    • Linia bazowa : 1
    • Wariant A : 100
    • Wariant B : 100
    W rezultacie całkowite wagi będą wynosić 0,5% dla linii bazowej, 49,8% dla wariantu A i 49,8% dla wariantu B. Variant weights configuration\nsection Warianty te określają, że raz na 201 testów A/B służy domyślnie tym, którym znudziły się napisy, ale 200/201 razy wyświetli jedną z dwóch nowych wartości i zastąpi ekran tytułowy.
  5. Zapisz i prześlij, klikając Rozpocznij eksperyment , a następnie kliknij Rozpocznij w wyskakującym okienku z potwierdzeniem. Click Start to start the\nexperiment

8. Uruchom metodę Set User Property i odśwież

Ustawiłeś teraz różne właściwości użytkownika, które można następnie wykorzystać do kierowania logiką lub prezentacją gry.

Jeśli wcześniej nie uruchomiłeś metody SetUserProperty lub ustawiłeś ją na enjoys , podczas otwierania gry powinieneś nadal widzieć domyślne napisy.

Jeśli ustawiłeś go na bored (przed ponownym pobraniem), powinieneś zobaczyć jedną z nowych wartości w przybliżeniu w stosunku 50/50.

Gdy urządzenie przystąpi do eksperymentu testu A/B, wartości otrzymane w wyniku tego eksperymentu nie ulegną zmianie i będą trwałe w każdej instalacji . W rezultacie, aby otrzymać jedną z pozostałych wartości eksperymentalnych, musisz utworzyć nową instalację, instalując grę ponownie na tym samym urządzeniu/symulatorze lub instalując grę na nowym urządzeniu/symulatorze.

W prawdziwym teście A/B przeprowadzonym wśród całej bazy użytkowników powinieneś nadać wartości bazowej podobną wagę jak pozostałym wariantom. Ale w tym przypadku przypisujesz bardzo wypaczone prawdopodobieństwa, aby sprawdzić, czy eksperyment działa. Jeśli (w przypadku 1/201) nadal otrzymujesz wartość domyślną, spróbuj ponownie zainstalować grę na swoim urządzeniu/symulatorze.

Innym skutkiem tego jest to, że przełączenie właściwości użytkownika z powrotem na enjoys nie spowoduje zmiany wartości z powrotem do wartości bazowej, ale znowu można to zrobić, przełączając się na enjoys i instalując ponownie.

9. Gratulacje!

Korzystałeś z testów A/B zdalnej konfiguracji, aby poeksperymentować z różnymi wartościami Zdalnej konfiguracji i określić, jak każda z nich wpływa na dane Analytics.

Co omówiliśmy

  • Jak skonfigurować testy A/B przy użyciu wartości przyrządów zdalnej konfiguracji
  • Jak korzystać z Właściwości użytkownika Google Analytics w ramach warunków dopuszczenia do eksperymentów testów A/B

Następne kroki

Po zakończeniu eksperymentu możesz wybrać jeden z listy eksperymentów w projekcie i zdecydować, co chcesz z nim zrobić. Czy chcesz wybrać jednego jako „zwycięzcę”, czy przeprowadzić więcej eksperymentów?