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 aktualizacje aplikacji nie będą 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ę.
Jeśli podczas wykonywania tego laboratorium napotkasz jakiekolwiek problemy (błędy w kodzie, błędy gramatyczne, niejasne sformułowania itp.), zgłoś je, klikając link Zgłoś błąd w lewym dolnym rogu laboratorium.
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
- Android Studio w wersji 4.1 lub nowszej
- 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.
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-android-master.
…lub sklonuj repozytorium GitHub z poziomu wiersza poleceń.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-android
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.
Importowanie aplikacji startowej
Uruchom Android Studio i na ekranie powitalnym wybierz „Import project” (Importuj projekt). Następnie wybierz katalog 101-complete_and_102-base z pobranego kodu.
Projekt powinien być teraz otwarty w Android Studio.
Dodawanie pliku konfiguracyjnego Firebase do projektu aplikacji na Androida
- Na ekranie przeglądu projektu Awesome Drawing Quiz kliknij ikonę Ustawienia.

- Na karcie Ogólne wybierz aplikację na Androida, aby pobrać plik google-service.json.
- Przenieś plik konfiguracyjny do katalogu
app w projekcie. 
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żki 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.
Dodaj Zdalną konfigurację do zależności aplikacji
Zacznijmy od dodania Zdalnej konfiguracji Firebase do zależności aplikacji.
app/build.gradle
apply plugin: 'com.android.application'
android {
...
}
dependencies {
...
// TODO: Add Firebase Remote Config dependency (102)
implementation 'com.google.firebase:firebase-config-ktx'
...
}
...
Synchronizowanie projektu z plikami Gradle
Aby mieć pewność, że wszystkie zależności są dostępne dla aplikacji, zsynchronizuj projekt z plikami Gradle. Aby zsynchronizować projekt z plikami Gradle, wybierz menu File > Sync Project with Gradle Files (Plik > Synchronizuj projekt z plikami Gradle).
Ustawianie domyślnej wartości parametru Zdalnej konfiguracji
Pobieranie wartości ze Zdalnej konfiguracji wymaga połączenia sieciowego. Jeśli sieć jest niedostępna, musisz zdefiniować wartość domyślną każdego parametru Zdalnej konfiguracji.
Utwórz plik remote_config_defaults.xml w folderze res/xml. Następnie ustaw domyślną wartość kwoty nagrody (reward_amount)):
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>reward_amount</key>
<value>1</value>
</entry>
</defaultsMap>
Pamiętaj, że reward_amount to nazwa parametru w Zdalnej konfiguracji.
Pobierz kwotę nagrody ze Zdalnej konfiguracji
Zmodyfikuj klasę AwesomeDrawingQuiz.kt, aby klasa GameSettings zawierała odwołanie do instancji RemoteConfig.
Pamiętaj, że instancja RemoteConfig jest skonfigurowana tak, aby w trybie debugowania pobierać z serwera najnowsze wartości, co ułatwia proces programowania. (Ustaw minimalny interwał pobierania na 0 sekund, wywołując funkcję fetch(0L)).
AwesomeDrawingQuiz.kt
class AwesomeDrawingQuiz : Application() {
...
// COMPLETE: Provide FirebaseRemoteConfig instance (102)
private fun provideGameSettings() = GameSettings(provideRemoteConfig())
// COMPLETE: Add a function that provides a FirebaseRemoteConfig instance (102)
private fun provideRemoteConfig(): FirebaseRemoteConfig {
val rc = Firebase.remoteConfig.apply {
setDefaultsAsync(R.xml.remote_config_defaults)
}
val fetchTask = if (BuildConfig.DEBUG) rc.fetch(0L) else rc.fetch()
fetchTask.addOnCompleteListener {
if (it.isSuccessful) {
Log.d("AwesomeDrawingQuiz", "Remote config value fetched")
rc.activate()
}
}
return rc
}
}
Następnie zmień klasę GameSettings, aby pobrać kwotę nagrody ze Zdalnej konfiguracji.
GameSettings.kt
// TODO: Add FirebaseRemoteConfig as a class member
class GameSettings(private val rc: FirebaseRemoteConfig) {
...
// TODO: Apply reward amount from the Remote Config (102)
val rewardAmount: Int
get() = rc.getLong(KEY_REWARD_AMOUNT).toInt()
companion object {
...
// TODO: Add a key for 'reward_amount' Remote Config parameter (102)
private const val KEY_REWARD_AMOUNT = "reward_amount"
}
}
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 ujawniał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.
Zaprojektuj eksperyment
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
Sprawdź postępy 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 na Androida. Ukończony kod tego ćwiczenia znajdziesz w folderze
102-complete.

