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

1. Wprowadzenie

Z tego ćwiczenia z programowania dowiesz się, jak utworzyć eksperyment w Zdalnej konfiguracji za pomocą Testów A/B w przykładowej grze MechaHamster: Level Up with Firebase (wersja) zmodyfikowana w funkcji Zdalnej konfiguracji Firebase.

Dzięki testom A/B w ramach Zdalnej konfiguracji możesz testować zmiany w interfejsie, funkcjach lub kampaniach budujących zaangażowanie w aplikację na grupie docelowych odbiorców, zanim trafią one do większej liczby odbiorców. Wyniki eksperymentu możesz też wykorzystać do:

  • Ustal, które warianty wartości parametrów poprawiają kluczowe dane, takie jak przychody i utrzymanie.
  • Dowiedz się, które podgrupy użytkowników preferują poszczególne warianty.
  • Zbieraj i przechowuj dane z eksperymentów, aby przeprowadzać dodatkowe analizy wpływu ustawienia różnych wartości parametrów.

To właśnie jest najistotniejszy aspekt testów A/B: pozwala wykorzystać kod przystosowany do Zdalnej konfiguracji i uruchamiać eksperymenty, 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), odsetka wdrożeń, zdarzeń konwersji Analytics i niektórych ich kombinacji.

Najpierw wdrożysz warunek, który ograniczy, którzy użytkownicy uwzględnią w eksperymencie, przez określenie właściwości użytkownika na podstawie jego działań. Następnie utwórz eksperyment w ramach Testów A/B, w którym wykorzystamy właściwości użytkownika Google Analytics, by określić, którzy klienci uwzględnią w eksperymencie. Dzięki tym danym możesz lepiej poznać swoich odbiorców.

Czego się nauczysz

  • Jak skonfigurować Testy A/B z wykorzystaniem wartości zinstrumentowanej Zdalnej konfiguracji.
  • Jak używać właściwości użytkownika z Google Analytics w ramach warunków udziału w testach A/B

Wymagania wstępne

Czego potrzebujesz

  • Unity w wersji 2019.1.0f1 lub nowszej z obsługą kompilacji na iOS lub Androida

2. Włączanie menu debugowania

W projekcie jest ukryte menu debugowania. Przycisk umożliwiający dostęp do tego menu znajduje się w grze, ale nie jest obecnie włączony. Musisz włączyć ten przycisk, aby uzyskać do niego dostęp z gotowego ustawienia Menu głównego.

  1. W edytorze Unity wybierz kartę Projekt, a następnie w sekcji Zasoby rozwiń Hamster > Prefabs > Menu i kliknij MainMenu.

Karta projektu edytora Unity z widoczną\nZasobyami. Chomik, prefabs, menu

  1. W hierarchii prefab znajdź wyłączony obiekt podrzędny o nazwie DebugMenuButton i kliknij go, aby otworzyć go na karcie Inspektor.

Edytor Unity wyświetla menu główne\nz wyłączonym menu DebugMenu

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

Karta Inspektor przycisku DebugMenuButton\nz polem wyboru

  1. Zapisz wstępnie.

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

3. Włączanie menu podrzędnego Zdalna konfiguracja

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

    Element DebugMenu zagnieżdżony w zasobach,\nHamster, Prefabs, Menus
  2. Na karcie Hierarchia rozwiń hierarchię i kliknij obiekt podrzędny w sekcji DebugMenu > Panel oznaczony jako Remote Config Actions (Działania Zdalnej konfiguracji).

Działania Zdalnej konfiguracji umieszczone w \nCanvas, DebugMenu

  1. Na karcie Inspektor Unity włącz Działania Zdalnej konfiguracji, zaznaczając pole tekstowe z nazwą obiektu po lewej stronie.

Edytor Unity ze Zdalną konfiguracją\nCzynności włączone w panelu DebugMenu

Ma on 2 elementy podrzędne obiektu GameObject o nazwach „Set Bored Of Subtitle” i „Set Explores Subtitle”, które są skonfigurowane do wywoływania istniejących, ale niezaimplementowanych metod w DebugMenu.cs.

4. Zresetuj zastąpienie napisów do wartości domyślnej w aplikacji

W poprzednich ćwiczeniach z programowania zastąpiliśmy domyślną wartość parametru w postaci kodu JSON i użyliśmy warunków do wyświetlenia różnych wariantów. W ramach tego ćwiczenia w Codelabs usuniesz utworzony warunek i przywrócisz domyślny warunek w aplikacji, zastępując go wyłącznie wynikiem testów A/B.

Aby ponownie włączyć domyślne ustawienia 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 domyślnej wartości w aplikacji.

Usuwanie warunku z edytora parametrów Zdalnej konfiguracji\n

  1. Kliknij Zapisz, aby zapisać zmiany, a potem kliknij Opublikuj zmiany, aby je opublikować.Opcja Opublikuj\nzmiany na stronie Zdalnej konfiguracji

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

Teraz w narzędziu DebugMenu.cs zapiszesz treści funkcji niektórych wstępnie skonfigurowanych, ale niezaimplementowanych funkcji Google Analytics (znajdziesz je w sekcji Zasoby > Chomik > Skrypty > Stany).

Te funkcje określają właściwości użytkownika, czyli sposoby opisu segmentów użytkowników i służą do rejestrowania opinii użytkowników o napisach w grze.

Zaimplementuj SetUserBoredOfSubtitle i SetUserEnjoysSubtitle, znajdują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 w Google Analytics, możesz wywołać jedną z tych funkcji, by udostępnić usługę w warunkach Zdalnej konfiguracji. Aby wywołać funkcję SetUserBoredOfSubtitle na urządzeniu mobilnym, uruchom grę i naciśnij przycisk Menu debugowania w menu głównym, a następnie naciśnij Znudzone napisy.

6. Utwórz wymiar niestandardowy

Następnie możesz skonfigurować różne warianty napisów dla: subtitle_override, aby sprawdzić, który sprawdza się najlepiej. Jednak w teście A/B będziesz wyświetlać takie warianty tylko użytkownikom, których odczucia dotyczące danego napisu (jak to jest w aplikacji subtitle_sentiment) zawierają słowo „nudne”.

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

Aby utworzyć nowy wymiar niestandardowy:

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

7. Konfiguracja eksperymentu Testy A/B

Następnie utwórz eksperyment A/B, aby ustawić różne wartości parametru subtitle_override, które będziemy ze sobą porównywać. Pozwoli to zoptymalizować utrzymanie użytkowników na przestrzeni 2–3 dni.

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

Parametr caption_override na stronie\nZdalna konfiguracja z widoczną opcją Edytuj.

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

Opcja Dodaj nowy eksperyment na stronie\nEdycja parametrów Zdalnej konfiguracji.

  1. Z wyświetlonej listy wybierz Eksperyment.

Strona parametrów Zdalnej konfiguracji: dodaj nowy\neksperyment

  1. Wpisz nazwę i opis eksperymentu.

Nazwa i opis eksperymentu\n

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

Etap kierowania w konfiguracji Testów A/B\nz wybraną aplikacją

  1. Następnie kliknij Oraz, aby dodać nowy warunek, a następnie wybierz Właściwość użytkownika i subtitle_sentiment. Jeśli jej nie ma, wpisz go ręcznie.
  2. Chcesz ustawić napisy tylko dla tych, których aktualne napisy zawierają słowo „nudne”, wybierz zawiera i wpisz bored.
  3. Opcjonalnie wybierz odsetek odbiorców spełniających powyższe kryteria, który chcesz udostępnić testowi. Wybierz 100%, aby uniknąć losowości, którego nie można łatwo zmienić.

Sekcja „Kierowanie testów A/B” z zaznaczonym\nelementem nastawienia

  1. Następnie wybierz cel, pod kątem którego test będzie dążyć do maksymalizacji skuteczności. 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 atrybut subtitle_sentiment zawiera słowo „nudne”, i Testy A/B pozwolą określić, który wariant jest najlepszy do maksymalizacji utrzymania użytkowników.
  2. Wpisz tę 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. Wpisz tę 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 jako liczby całkowite w ten sposób:
    • Punkt odniesienia: 1
    • Wariant A: 100
    • Wariant B: 100
    . Całkowita waga w przypadku wariantu A wyniesie 0,5%, a wariantu A – 49,8%.Sekcja konfiguracji\nwag wariantuTe warianty określają, że w przypadku wariantu B 1 na 201 razy testy A/B będą wyświetlane domyślnie osobom, które się znudziły, ale 200/201 razy wyświetli jedną z 2 nowych wartości i zastąpi ekran tytułowy.
  5. Zapisz i prześlij. Kliknij Rozpocznij eksperyment, a potem w wyskakującym okienku z potwierdzeniem kliknij Rozpocznij.Kliknij Rozpocznij, aby\nrozpocząć eksperyment

8. Uruchom metodę Ustaw właściwość użytkowników i odśwież

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

Jeśli metoda SetUserProperty nie była wcześniej uruchamiana lub została ustawiona na enjoys, napisy domyślne powinny być nadal widoczne po otwarciu gry.

Jeśli ustawisz wartość bored (przed ponownym pobraniem), powinna być widoczna jedna z nowych wartości w współczynniku około 50/50.

Gdy urządzenie bierze udział w eksperymencie w ramach Testów A/B, wartości uzyskane w ramach tego eksperymentu nie ulegną zmianie i stają się niezmienne od momentu każdej instalacji. Aby uzyskać jedną z pozostałych wartości eksperymentalnych, musisz zainstalować grę na tym samym urządzeniu lub symulatorze albo zainstalować ją na innym urządzeniu.

W prawdziwym teście A/B przeprowadzanym wśród użytkowników należy przypisać wagę bazową podobną do innych wariantów. W tym przypadku przypisujesz jednak bardzo zniekształcone prawdopodobieństwa, by sprawdzić, czy eksperyment działa. Jeśli (w przypadku dnia 1/201) nadal będziesz widzieć wartość domyślną, spróbuj ponownie zainstalować grę na urządzeniu lub symulatorze.

Kolejną konsekwencją jest to, że przełączenie właściwości użytkownika z powrotem na enjoys nie spowoduje zmiany wartości z powrotem na poziom odniesienia, ale znowu możesz to zrobić, przełączając się na enjoys i ponownie instalując.

9. Gratulacje!

Udało Ci się wykorzystać Testy A/B Zdalnej konfiguracji, aby poeksperymentować z różnymi wartościami Zdalnej konfiguracji i sprawdzić, jak każda z nich wpływa na wskaźniki Analytics.

Omówione zagadnienia

  • Jak skonfigurować Testy A/B z wykorzystaniem wartości zinstrumentowanej Zdalnej konfiguracji.
  • Jak używać właściwości użytkownika z Google Analytics jako elementu warunków udziału w eksperymentach przeprowadzanych w ramach testów A/B

Następne kroki

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