1. Wprowadzenie
Załóżmy, że po opublikowaniu aplikacji w Sklepie Play musisz dostosować wartości niektórych parametrów. Zwykle należy ponownie opublikować nową wersję aplikacji, a użytkownicy powinni zaktualizować aplikację na swoich telefonach.
Aktualizacja aplikacji sprawdzi się, jeśli chcesz wprowadzić w niej trwałe zmiany. Co jednak zrobić, jeśli chcesz często dostosowywać wartości niektórych parametrów w aplikacji? A może chcesz przeprowadzić eksperymenty, aby znaleźć optymalną konfigurację aplikacji?
W takich przypadkach aktualizacja aplikacji nie będzie działać prawidłowo. Zastosowanie aktualizacji na wszystkich kontach użytkowników może trochę potrwać. Przeprowadzanie eksperymentów w kilku wersjach aplikacji jest też dość trudne.
Jak możesz też sprawdzić, czy ścieżka użytkownika w aplikacji działa zgodnie z oczekiwaniami? Możesz polegać na komentarzach użytkowników w Konsoli Play. Może jednak nie być wystarczająco precyzyjna, aby podjąć jednoznaczną decyzję.
Czego się nauczysz
- Tworzenie ścieżki w Google Analytics dla Firebase
- Jak korzystać ze Zdalnej konfiguracji Firebase
- Jak przeprowadzić test A/B w Firebase
Czego potrzebujesz
- Unity w wersji 2018.4.4f1 lub nowszej
- Xcode 10 lub nowsza wersja (do tworzenia wersji docelowej na iOS)
- konto Google,
- Urządzenie testowe z Androidem w wersji 5.0 lub nowszej i kabel USB do podłączenia urządzenia albo Android Emulator z urządzeniem wirtualnym z Androidem(AVD) z obrazem systemu, który obsługuje Sklep Play lub interfejsy API Google.
- urządzenie z iOS lub symulator z iOS 8.0 lub nowszym,
Jak oceniasz swoje doświadczenie z AdMob?
Jak oceniasz swoje doświadczenie z Firebase?
2. Konfigurowanie środowiska programistycznego
Pobieranie kodu
Aby pobrać cały kod do tych ćwiczeń, kliknij ten przycisk:
Rozpakuj pobrany plik ZIP. Spowoduje to rozpakowanie folderu głównego o nazwie admob-firebase-codelabs-unity-master.
…lub sklonuj repozytorium GitHub z poziomu wiersza poleceń.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity
Repozytorium zawiera 4 foldery:
101-base – kod początkowy, który będziesz rozwijać w tych ćwiczeniach z programowania.
101-complete_and_102-base – ukończony kod do tych ćwiczeń z programowania i kod początkowy do ćwiczeń z programowania 102.
102-complete – ukończony kod do ćwiczeń z programowania 102.
Przygotuj wymagane pliki
Awesome Drawing Quiz korzysta z kilku kodów open source, które są wymagane do skompilowania i uruchomienia projektu.
Otwórz terminal i przejdź do głównego katalogu repozytorium. Następnie uruchom ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles w systemie Windows) w terminalu, aby skopiować wymagane pliki do projektu.
Importowanie aplikacji startowej
Uruchom Unity i na ekranie powitalnym kliknij „Otwórz”. Następnie wybierz katalog 101-complete_and_102-base z pobranego kodu.
Projekt powinien być teraz otwarty w Unity.
Dodawanie wtyczki reklam mobilnych Google dla środowiska Unity
Aby wyświetlać reklamy AdMob w aplikacji Unity, musisz dodać do projektu wtyczkę reklam mobilnych Google dla środowiska Unity.
- Pobierz pakiet wtyczki reklam mobilnych Google dla środowiska Unity w wersji 3.18.1. (Pamiętaj, że ten Codelab może nie być zgodny z inną wersją wtyczki).
- W projekcie Unity Awesome Drawing Quiz. W projekcie kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet).
- Zaimportuj plik GoogleMobileAds.unitypackage do pobranego projektu.
Musisz też ustawić identyfikator aplikacji w AdMob. W edytorze Unity w menu kliknij Assets > Google Mobile Ads > Settings (Zasoby > Reklamy mobilne Google > Ustawienia).

Aby włączyć AdMob, w sekcji Google AdMob kliknij pole wyboru Włączono. Następnie wpisz identyfikator aplikacji w AdMob w ten sposób:
- System Android:
ca-app-pub-3940256099942544~3048611032 - System iOS:
ca-app-pub-3940256099942544~2753522596

Dodawanie plików konfiguracyjnych Firebase do projektu w Unity
- Na ekranie przeglądu projektu Awesome Drawing Quiz kliknij ikonę Ustawienia.

- Na karcie Ogólne wybierz każdą aplikację na Androida i iOS, aby pobrać plik google-service.json (w przypadku Androida) i GoogleService-Info.plist (w przypadku iOS).
- Przenieś oba pliki konfiguracyjne do folderu
Assets w projekcie Unity.

Dodawanie pakietu SDK Firebase Analytics
- Pobierz pakiet Firebase Unity SDK w wersji 5.5.0 i rozpakuj go w wygodnym miejscu. (pomiń ten krok, jeśli pakiet SDK został już pobrany)
- Otwórz projekt Unity Awesome Drawing Quiz i kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet).
- W rozpakowanym pakiecie SDK zaimportuj pakiet SDK Firebase Analytics (
dotnet4/FirebaseAnalytics.unitypackage). - W oknie Import Unity package (Importowanie pakietu dla Unity) kliknij Import (Importuj).
3. Otwieranie projektu w Firebase w konsoli
Zanim przejdziesz do następnego kroku, otwórz projekt w konsoli Firebase utworzony w kroku „Konfigurowanie projektu Firebase” w samouczku AdMob+Firebase 101.

4. Tworzenie ścieżki zdarzeń w aplikacji
Możesz dodać kilka zdarzeń w aplikacji, aby śledzić aktywność użytkowników w niej. Odczytując raport o każdym zdarzeniu w aplikacji, możesz uzyskać szczegółowe informacje z nim związane, takie jak łączna liczba zdarzeń, średnia liczba zdarzeń na użytkownika, dane demograficzne itp.
A co, jeśli zamiast skupiać się na konkretnym zdarzeniu, chcesz sprawdzić współczynnik ukończenia serii zdarzeń? W Google Analytics dla Firebase możesz używać ścieżek do wizualizowania i optymalizowania prędkości wykonywania serii zdarzeń w aplikacji.
Tworzenie ścieżki
Aby utworzyć ścieżkę:
- Otwórz konsolę Firebase i wybierz utworzony wcześniej projekt Awesome Drawing Quiz.
- Kliknij Ścieżki.
- Kliknij NOWA ŚCIEŻKA.
- Wpisz nazwę i opis ścieżki.
- Wybierz pierwsze dwa zdarzenia, których chcesz użyć jako kroków w ścieżce.
- Dla każdego dodatkowego kroku kliknij DODAJ KOLEJNE ZDARZENIE i wybierz zdarzenie.
- Kliknij UTWÓRZ.
Wykonaj powyższe kroki, aby utworzyć te ścieżki:
Nazwa ścieżki 1: Współczynnik sukcesu na poziomie Wydarzenia: level_start, level_success
2. Nazwa ścieżki: współczynnik ukończenia reklamy z nagrodą Wydarzenia: ad_reward_prompt, ad_reward_impression, ad_reward
#3 Nazwa ścieżki: odsetek ukończenia gry Zdarzenia: game_start, game_complete
Wyświetlanie analizy ścieżki
Po utworzeniu kilku ścieżek możesz uzyskać do nich dostęp w menu Ścieżki w konsoli Firebase. Klikając nazwę ścieżki w tym widoku, możesz wyświetlić szczegółową analizę każdej ścieżki.

Na przykład kliknij Współczynnik ukończenia poziomu. Szczegóły ścieżki będą wyglądać tak:

Na powyższym zrzucie ekranu widać odsetek użytkowników, którzy ukończyli poziom (wywołali zdarzenie level_success) po rozpoczęciu poziomu (wywołaniu zdarzenia level_start). Widać tu, że 46,2% użytkowników ukończyło poziom.
Gdy klikniesz Liczba zdarzeń, wyświetlą się te dane oparte na liczbie zdarzeń:

Na podstawie danych na powyższym zrzucie ekranu w danym okresie było 116 prób (wywołało zdarzenie level_start) i 57 ukończeń (wywołało zdarzenie level_success).
Ponieważ odsetek ukończeń na podstawie zdarzeń(49,1%) jest nieco wyższy niż odsetek na podstawie użytkowników(46,2%), można stwierdzić, że niektórzy użytkownicy radzą sobie lepiej od innych.
5. Zintegruj Zdalną konfigurację z aplikacją.
Ponieważ na podstawie zdarzeń w aplikacji i ścieżki możesz uzyskać pewne statystyki dotyczące aplikacji, możesz ją zoptymalizować. Zwykle obejmuje to dostosowanie wartości parametru w aplikacji. Aby zmodyfikować wartość tych parametrów, musisz zaktualizować aplikację, aby zmiany mogły zostać zastosowane u użytkowników.
Korzystając ze Zdalnej konfiguracji w Firebase, możesz dostosowywać te wartości bez aktualizowania aplikacji, co oznacza, że możesz zmieniać jej działanie bez konieczności zmuszania użytkowników do pobierania aktualizacji.
Z tego Codelabs dowiesz się, jak sprawić, aby kwota nagrody (liczba liter, które zostaną ujawnione po obejrzeniu reklamy wideo z nagrodą) była regulowana bez aktualizacji aplikacji za pomocą Zdalnej konfiguracji.
Dodawanie pakietu SDK Zdalnej konfiguracji Firebase
- Pobierz pakiet Firebase Unity SDK w wersji 5.5.0 i rozpakuj go w wygodnym miejscu.
- Otwórz projekt Unity Awesome Drawing Quiz i kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet).
- W rozpakowanym pakiecie SDK zaimportuj pakiet SDK Zdalnej konfiguracji (
dotnet4/FirebaseRemoteConfig.unitypackage). - W oknie Import Unity package (Importowanie pakietu dla Unity) kliknij Import (Importuj).
Importowanie Firebase.RemoteConfig
Zmodyfikuj plik Main.cs, aby umożliwić używanie typu z przestrzeni nazw Firebase.RemoteConfig bez konieczności używania pełnej i jednoznacznej nazwy.
Scenes/Main.cs
...
using AwesomeDrawingQuiz.Game;
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Scene {
...
}
Inicjowanie i pobieranie wartości Zdalnej konfiguracji
Zmodyfikuj metodę InitAndFetchRemoteConfig() w Main.cs, aby zainicjować instancję Zdalnej konfiguracji w ten sposób: Pamiętaj, że GameSettings.KEY_REWARD_AMOUNT zawiera nazwę parametru w Zdalnej konfiguracji. (To pole zadeklarujesz wkrótce w tych ćwiczeniach z programowania)
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();
}
}
Zobaczysz, że instancja FirebaseRemoteConfig jest skonfigurowana tak, aby pobierać najnowsze wartości z serwera w trybie debugowania, co ułatwia proces programowania. (IsDeveloperMode = true i FetchAsync(System.TimeSpan.Zero))
Aktywowanie pobranych wartości Zdalnej konfiguracji
Gdy pobierzesz wartości Zdalnej konfiguracji, musisz je aktywować, aby były dostępne w aplikacji. Zmodyfikuj metodę ActivateRemoteConfigValues() w ten sposób:
Scenes/Main.cs
private void ActivateRemoteConfigValues() {
// TODO: Activate fetched Remote Config values (102)
FirebaseRemoteConfig.ActivateFetched();
}
Zmodyfikuj metodę Start()
Aby aplikacja pobierała i aktywowała wartość Zdalnej konfiguracji podczas uruchamiania, zmodyfikuj metodę Start() w pliku Main.cs w ten sposób:
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
}
Pobierz kwotę nagrody ze Zdalnej konfiguracji
Zmodyfikuj klasę GameSettings, aby pobierać kwotę nagrody ze Zdalnej konfiguracji.
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 { }
}
}
}
Tworzenie parametru Zdalnej konfiguracji w konsoli
Następnie utworzysz nowy parametr Zdalnej konfiguracji dla kwoty nagrody, aby móc na bieżąco dostosowywać jego wartość.
Aby utworzyć nowy parametr, otwórz konsolę Firebase, a następnie wybierz utworzony wcześniej projekt Awesome Drawing Quiz. Kliknij przycisk Remote Config -> ADD YOUR FIRST PARAMETER (Zdalna konfiguracja –> DODAJ PIERWSZY PARAMETR).

Nazwij parametr reward_amount i ustaw jego wartość domyślną na 1. Następnie kliknij przycisk Dodaj parametr.

Kliknij przycisk Opublikuj zmiany, aby udostępnić zmiany użytkownikom.

6. Zmienianie zachowania aplikacji za pomocą Zdalnej konfiguracji
Wysokość nagrody w Awesome Drawing Quiz można teraz skonfigurować w konsoli Firebase bez konieczności aktualizowania kodu aplikacji.
W tej sekcji zmienisz kwotę nagrody z 1 na 2, aby po obejrzeniu reklamy z nagrodą aplikacja wyświetlała 2 dodatkowe znaki jako podpowiedź.
Zaktualizuj wartość domyślną parametru reward_amount
Otwórz konsolę Firebase, a potem wybierz utworzony wcześniej projekt Awesome Drawing Quiz. Kliknij Zdalna konfiguracja i na liście kliknij reward_amount. Następnie zmień wartość domyślną na 2 i kliknij przycisk Aktualizuj.

Aby udostępnić użytkownikom zmiany, kliknij przycisk Opublikuj zmiany.

Sprawdź, czy zachowanie aplikacji uległo zmianie
Aby potwierdzić zmianę działania aplikacji, ponownie uruchom projekt. Po obejrzeniu reklamy z nagrodą zauważysz, że aplikacja wyświetla teraz 2 litery jako nagrodę, zgodnie z konfiguracją w konsoli Zdalnej konfiguracji.
Przed obejrzeniem reklamy z nagrodą | Odsłonięto 2 dodatkowe litery jako nagrodę |
7. Tworzenie eksperymentu w celu optymalizacji kwoty nagrody
Możesz teraz zmienić kwotę nagrody bez konieczności publikowania aktualizacji aplikacji. Jak jednak określić, czy wprowadzona zmiana jest korzystna dla aplikacji?
Dzięki testom A/B w Firebase możesz przeprowadzać eksperymenty, aby optymalizować ogólne wrażenia użytkowników aplikacji bez konieczności aktualizowania aplikacji lub tworzenia osobnego narzędzia do przeprowadzania i śledzenia skuteczności poszczególnych eksperymentów.
Projektowanie eksperymentu
Zanim utworzysz nowy eksperyment, określ jego jasny cel. Zanim utworzysz nowy eksperyment, zapoznaj się z poniższą listą kontrolną.
- Co: co chcesz zoptymalizować? (np.poziom trudności gry, czas wyświetlania reklamy lub jej widoczność itp.).
- Dlaczego: jaki jest Twój cel biznesowy związany z przeprowadzeniem eksperymentu? (np. aby zmaksymalizować przychody z reklam lub zwiększyć utrzymanie użytkowników).
- Kto: kto może wziąć udział w eksperymencie? (np. Wszyscy użytkownicy, Lista odbiorców obejmująca konkretnych użytkowników itp.)
W tym laboratorium kodów utworzysz eksperyment, który pozwoli Ci zoptymalizować wartość nagrody, aby zmaksymalizować dzienne zaangażowanie użytkowników w Awesome Drawing Quiz.
Tworzenie eksperymentu
Otwórz projekt Awesome Drawing Quiz w konsoli Firebase. Wybierz menu Testy A/B, a potem kliknij przycisk Utwórz eksperyment.
Aby utworzyć eksperyment w Zdalnej konfiguracji, wybierz Zdalna konfiguracja.

Nazwij eksperyment „Wysokość nagrody”, jak pokazano na zrzucie ekranu poniżej.

Skonfiguruj opcje kierowania. W tym ćwiczeniu będziesz kierować reklamy na 100% użytkowników Awesome Drawing Quiz.

Głównym celem eksperymentu jest znalezienie optymalnej wartości, która zmaksymalizuje dzienne zaangażowanie użytkowników, więc jako podstawowe dane do śledzenia wybierz Dzienne zaangażowanie użytkowników.

Na koniec skonfiguruj grupę kontrolną i grupę wariantu, aby sprawdzić, która z nich jest skuteczniejsza. Wybierz reward_amount w grupie kontrolnej i pozostaw jego wartość bez zmian. Nazwij grupę wariantów „Mniejsza nagroda”, a następnie zmień wartość zmiennej reward_amount na 1.

W tej konfiguracji osoby z grupy „Mniejsza nagroda” otrzymają w nagrodę 1 literę, a osoby z grupy kontrolnej – 2 litery. Dzięki temu zobaczysz, jak wysokość nagrody wpływa na użytkowników.
Po kliknięciu przycisku Sprawdź zobaczysz podsumowanie eksperymentu.

Przeprowadź eksperyment
Aby uruchomić eksperyment, kliknij przycisk Rozpocznij eksperyment. Pamiętaj, że po rozpoczęciu eksperymentu nie możesz zmienić jego konfiguracji.

8. Zarządzanie eksperymentem
Wyświetlanie postępów eksperymentu
Postępy eksperymentu możesz sprawdzać w menu Testy A/B w konsoli Firebase. Będzie ono wyglądać jak na tym zrzucie ekranu. Na karcie możesz też sprawdzić liczbę użytkowników, którzy uczestniczyli w eksperymencie w ciągu ostatnich 30 minut.

Gdy klikniesz eksperyment na liście, zobaczysz jego szczegóły. Dopóki eksperyment nie będzie mógł wskazać lidera (czyli wariantu o najlepszych wynikach), będzie wyświetlany komunikat „Jest za wcześnie, aby wskazać lidera”.

Po pewnym czasie w sekcji Przegląd ulepszeń zaczną się wyświetlać dane zebrane podczas eksperymentu. Możesz porównać skuteczność poszczególnych wersji, aby sprawdzić, która z nich jest lepsza. Na zrzucie ekranu poniżej widać przykład sekcji Przegląd ulepszeń.

W tabeli pod sekcją Omówienie poprawy możesz sprawdzić szczegóły danych celu eksperymentu, a także dodatkowe dane śledzone w eksperymencie. Poniższy zrzut ekranu przedstawia przykład sekcji ze szczegółami danych.

Opublikuj najlepszy wariant dla wszystkich użytkowników
Gdy po przeprowadzeniu eksperymentu zidentyfikujesz najlepszy wariant, możesz wdrożyć eksperyment dla wszystkich użytkowników. Gdy testy A/B wyłonią wyraźnego lidera, zachęcimy Cię do wdrożenia tego wariantu u wszystkich użytkowników.

Możesz to zrobić także w przypadku, gdy eksperyment nie wyłoni zdecydowanego zwycięzcy.
Na ekranie szczegółów eksperymentu kliknij menu kontekstowe (
), a potem Wdróż wariant.

Wybierz wariant, który chcesz wdrożyć u wszystkich użytkowników, a potem kliknij przycisk Weryfikacja ze Zdalną konfiguracją, aby przejrzeć zmiany przed wprowadzeniem ich w Zdalnej konfiguracji.

Gdy potwierdzisz, że wersja robocza nie zawiera żadnych problemów, kliknij przycisk Opublikuj zmiany, aby wprowadzić zmianę dla wszystkich użytkowników.

9. Wszystko gotowe
Ukończono ćwiczenia AdMob+Firebase 102 Unity. Ukończony kod tego ćwiczenia znajdziesz w folderze
102-complete.

