Wdrażanie testów A/B w grze na Unity dzięki Zdalnej konfiguracji Firebase

1. Wprowadzenie

W tym laboratorium kodowania dowiesz się, jak utworzyć eksperyment Zdalnej konfiguracji za pomocą Testów A/B na potrzeby przykładowej gry MechaHamster: Level Up with Firebase edition, którą zmodyfikowano w artykule Instrumentowanie gry za pomocą Zdalnej konfiguracji Firebase.

Testy A/B ze Zdalną konfiguracją umożliwiają testowanie zmian interfejsu, funkcji lub kampanii promujących związanych z aplikacją w przypadku określonych odbiorców przed wprowadzeniem ich na szerszą skalę. Wyniki eksperymentów możesz też wykorzystać do:

  • Określ, które warianty wartości parametrów poprawiają kluczowe dane, takie jak przychody i utrzymanie użytkowników.
  • Sprawdź, które podgrupy użytkowników preferują poszczególne warianty.
  • Zbieraj i przechowuj dane eksperymentu, aby przeprowadzać dodatkowe analizy wpływu ustawienia różnych wartości parametrów.

To jest istota testów A/B: umożliwiają one korzystanie z kodu skonfigurowanego pod kątem Zdalnej konfiguracji i przeprowadzanie eksperymentów, które kontrolują wartości otrzymywane przez klientów na podstawie warunków Zdalnej konfiguracji (w tym właściwości użytkownika Google Analytics), stopniowego wdrażania, zdarzeń konwersji Analytics i ich kombinacji.

Najpierw wdrożysz warunek, który określi, kto zostanie uwzględniony w eksperymencie, ustawiając właściwości użytkownika na podstawie jego działań. Następnie utworzysz eksperyment testów A/B, który będzie używać właściwości użytkownika Google Analytics do określania, którzy klienci są uwzględniani w eksperymencie. Na koniec wykorzystasz te dane, aby dowiedzieć się więcej o swoich odbiorcach.

Czego się nauczysz

  • Konfigurowanie testów A/B za pomocą wartości Zdalnej konfiguracji
  • Jak używać właściwości użytkownika Google Analytics jako części warunków dopuszczenia do testów A/B

Wymagania wstępne

Czego potrzebujesz

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

2. Włączanie menu debugowania

W projekcie jest ukryte menu debugowania, a przycisk dostępu do niego istnieje w grze, ale nie jest obecnie włączony. Aby uzyskać do niego dostęp z prefabrykatu MainMenu, musisz włączyć przycisk.

  1. W edytorze Unity wybierz kartę Project (Projekt), a następnie w sekcji Assets (Komponenty) rozwiń Hamster (Chomik) > Prefabs (Prefabrykaty) > Menus (Menu) i kliknij MainMenu (Menu główne).

Karta Projekt w edytorze Unity z wyświetlonymi zasobami. Chomik, gotowe elementy, menu

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

Edytor Unity wyświetla menu główne z wyłączonym menu debugowania.

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

Karta Inspekcja w przypadku elementu DebugMenuButton z polem wyboru

  1. Zapisz prefabrykat.

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

3. Włącz podmenu Zdalnej konfiguracji.

  1. Na karcie Project (Projekt) w edytorze Unity rozwiń Assets (Zasoby) > Hamster (Chomik) > Prefabs (Prefabrykaty) > Menus (Menu) i kliknij dwukrotnie obiekt DebugMenu (Menu debugowania), aby otworzyć go w edytorze na karcie Hierarchy (Hierarchia).

    Element DebugMenu zagnieżdżony w folderach Assets, Hamster, Prefabs, Menus
  2. Na karcie Hierarchia rozwiń hierarchię i kliknij obiekt podrzędny w sekcji DebugMenu > Panel, który ma etykietę Remote Config Actions (Działania Remote Config).

Zagnieżdżone działania Zdalnej konfiguracji w sekcjach Canvas i DebugMenu

  1. Na karcie Inspektor w Unity włącz Działania Remote Config, zaznaczając pole po lewej stronie pola tekstowego zawierającego nazwę obiektu.

Edytor Unity ze Zdalną konfiguracją\nAkcje włączone w menu DebugMenu, Panel

Zawiera 2 obiekty GameObject o nazwach Set Bored Of Subtitle i Set Enjoys Subtitle, które są skonfigurowane tak, aby wywoływać istniejące, ale niewdrożone metody w DebugMenu.cs.

4. Przywracanie domyślnych ustawień napisów w aplikacji

W poprzednim laboratorium zastąpiliśmy wartość domyślną parametru w formacie JSON i użyliśmy warunków do wyświetlania różnych wariantów. W ramach tego samouczka usuniesz utworzony warunek i ponownie wprowadzisz domyślny warunek w aplikacji. Zastąpisz go tylko wynikiem testu A/B.

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

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

Usuwanie warunku w edytorze parametrów Zdalnej konfiguracji

  1. Aby zapisać zmiany, kliknij Zapisz, a potem kliknij Opublikuj zmiany.Opcja publikowania zmian na stronie Zdalnej konfiguracji

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

Teraz napiszesz treści funkcji dla niektórych wstępnie skonfigurowanych, ale niewdrożonych funkcji Google Analytics w DebugMenu.cs (które można znaleźć w sekcji Assets > Hamster > Scripts > States).

Te funkcje ustawiają właściwości użytkownika, które służą do opisywania segmentów użytkowników i rejestrowania ich opinii o napisach do gry.

Wdróż elementy SetUserBoredOfSubtitleSetUserEnjoysSubtitle, wyszukując ich istniejące wersje w DebugMenu.cs i zastępując je w ten 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 prawidłowo skonfigurowana pod kątem Google Analytics, możesz wywołać jedną z tych funkcji, aby udostępnić usługę warunkom Zdalnej konfiguracji. Aby zadzwonić do SetUserBoredOfSubtitle z urządzenia mobilnego, uruchom grę i w menu głównym naciśnij przycisk Debug Menu, a potem Set Bored of Subtitle.

6. Tworzenie wymiaru niestandardowego

Następnie skonfigurujesz różne warianty napisów do subtitle_override, aby sprawdzić, które z nich działają najlepiej. W teście A/B będziesz jednak wyświetlać te warianty tylko użytkownikom, których opinie o obecnym podtytule (zarejestrowane w subtitle_sentiment) zawierają słowo „znudzony”.

Wymiaru niestandardowego użyjesz do tworzenia i śledzenia parametrów niestandardowych w zdarzeniach Analytics. Więcej informacji znajdziesz w sekcji Wymiary i dane niestandardowe.

Aby utworzyć nowy wymiar niestandardowy:

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

7. Konfigurowanie eksperymentu Testy A/B

Następnie utwórz eksperyment testów A/B, aby ustawić różne wartości parametru subtitle_override, które będą testowane względem siebie w celu optymalizacji utrzymania użytkowników przez 2–3 dni.

  1. Najpierw kliknij Edytuj przy parametrze subtitle_override na stronie Zdalnej konfiguracji w konsoli Firebase:

Parametr subtitle_override na stronie Zdalnej konfiguracji z widoczną opcją Edytuj.

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

Opcja Dodaj nowy eksperyment na stronie Edytowanie parametru Zdalnej konfiguracji.

  1. Z wyświetlonej listy wybierz Eksperyment.

Strona parametrów Zdalnej konfiguracji: dodawanie nowego eksperymentu

  1. Wpisz nazwę i opis eksperymentu.

Sekcja Nazwa i opis eksperymentu

  1. Następnie wybierz warunki kierowania. Najpierw wybierz aplikację z menu.

Etap Kierowanie w konfiguracji Testów A/B z wybraną aplikacją

  1. Następnie kliknij I, aby dodać nowy warunek, a potem wybierz Właściwość użytkownika i kliknij subtitle_sentiment. Jeśli się nie pojawi, wpisz ją ręcznie.
  2. Chcesz ustawić napisy tylko dla tych użytkowników, których obecne nastawienie do napisów obejmuje słowo „znudzony”, więc wybierz zawiera i wpisz bored.
  3. Opcjonalnie możesz wybrać odsetek odbiorców spełniających powyższe kryteria, którzy będą widzieć test. Wybierz 100%, aby uniknąć losowości, nad którą nie masz łatwej kontroli.

Sekcja Kierowanie w testach A/B z wybranym podtytułem_sentiment

  1. Następnie wybierz cel, który test będzie próbował maksymalizować. Wybierz Utrzymanie (2–3 dni).

Sekcja Cele testów A/B

  1. Następnie skonfiguruj parametry eksperymentu i utwórz różne warianty napisów . Te warianty to różne wartości, które testy A/B będą wyświetlać użytkownikom, których subtitle_sentiment zawiera słowo „bored”. Testy A/B określą, który wariant najlepiej zwiększa utrzymanie użytkowników.
  2. Wpisz tę wartość parametru 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. Wpisz tę wartość parametru 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 proporcje wariantów za pomocą liczb całkowitych w ten sposób:
    • Punkt odniesienia: 1
    • Wariant A: 100
    • Wariant B: 100
    W rezultacie wariant podstawowy będzie miał wagę 0,5%, a warianty A i B – po 49,8%.Sekcja konfiguracji wag wariantówTe warianty określają, że w 1 przypadku na 201 testy A/B wyświetlają domyślne ustawienia użytkownikom, którzy są znudzeni napisami, ale w 200 przypadkach na 201 testy wyświetlają jedną z 2 nowych wartości i zastępują ekran tytułowy.
  5. Zapisz i prześlij zmiany, klikając Rozpocznij eksperyment, a potem w wyskakującym okienku z potwierdzeniem kliknij Rozpocznij.Kliknij Rozpocznij, aby rozpocząć eksperyment.

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

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

Jeśli metoda SetUserProperty nie została wcześniej uruchomiona lub ma wartość enjoys, po otwarciu gry nadal powinien być widoczny domyślny napis.

Jeśli ustawisz wartość bored (przed ponownym pobraniem), powinna się pojawić jedna z nowych wartości w proporcji mniej więcej 50/50.

Gdy urządzenie weźmie udział w eksperymencie testów A/B, wartości, które z niego otrzymuje, nie będą się zmieniać i będą trwałe w przypadku danej instalacji. W związku z tym, aby otrzymać jedną z pozostałych wartości eksperymentalnych, musisz utworzyć nową instalację, ponownie instalując grę na tym samym urządzeniu lub symulatorze albo instalując ją na nowym urządzeniu lub symulatorze.

W przypadku prawdziwego testu A/B uruchomionego w całej bazie użytkowników wartość bazową należy traktować podobnie jak inne warianty. W tym przypadku przypisujesz jednak bardzo zniekształcone 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 urządzeniu lub symulatorze.

Innym skutkiem tego jest to, że przywrócenie właściwości użytkownika do wartości enjoys nie spowoduje przywrócenia wartości do poziomu bazowego. Możesz to jednak zrobić, przełączając się na enjoys i ponownie instalując aplikację.

9. Gratulacje!

Używasz testów A/B Zdalnej konfiguracji, aby eksperymentować z różnymi wartościami Zdalnej konfiguracji i określać, jak każda z nich wpływa na dane Analytics.

Omówione zagadnienia

  • Konfigurowanie testów A/B za pomocą wartości Zdalnej konfiguracji
  • Jak używać właściwości użytkownika Google Analytics jako części warunków dopuszczenia do eksperymentów testów A/B

Następne kroki

Po zakończeniu eksperymentu możesz wybrać go z listy eksperymentów w projekcie, aby zdecydować, co z nim zrobić. Czy chcesz wybrać jedną z nich jako „zwycięską” czy przeprowadzić więcej eksperymentów?