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ć ją również na telefonach.
Ogólnie rzecz biorąc, aktualizacja aplikacji sprawdza się, jeśli chcesz wprowadzić w aplikacji długotrwałe zmiany. Co jednak w sytuacji, gdy zamierzasz często zmieniać wartości niektórych parametrów w swojej aplikacji? A co, jeśli chcesz przeprowadzić eksperymenty, aby znaleźć optymalną konfigurację aplikacji?
W takich przypadkach aktualizacje aplikacji nie będą działać prawidłowo. Ponieważ pełne rozpowszechnienie aktualizacji na kontach użytkowników może trochę potrwać. Wykonywanie eksperymentów na kilku wersjach aplikacji jest też dość trudne.
Jak możesz też ocenić, czy ścieżka użytkownika podczas korzystania z aplikacji działa zgodnie z oczekiwaniami? Możesz polegać na komentarzach użytkowników w Konsoli Play. Odpowiedź może jednak być zbyt mało precyzyjne, by można było podjąć jednoznaczną decyzję.
Jeśli w trakcie wykonywania tych ćwiczeń natrafisz na błędy (błędy w kodzie, błędy gramatyczne, niejasne sformułowania itp.), zgłoś je, korzystając z linku Zgłoś błąd w lewym dolnym rogu ćwiczenia.
Czego się nauczysz
- Jak utworzyć ścieżkę w Google Analytics dla Firebase
- Jak korzystać ze Zdalnej konfiguracji Firebase
- Jak przeprowadzać testy A/B w Firebase
Czego potrzebujesz
- Android Studio w wersji 4.1 lub nowszej,
- konto Google,
- urządzenia testowego z Androidem 5.0 lub nowszym z kablem USB do podłączenia urządzenia lub emulatora Androida z AVD(urządzeniem wirtualnym z Androidem) z obrazem systemu obsługującym Sklep Play/interfejsy API Google
Jak oceniasz swój poziom znajomości AdMob?
Jak oceniasz swój poziom znajomości Firebase?
2. Skonfiguruj środowisko programistyczne
Pobierz kod
Kliknij przycisk, aby pobrać cały kod do tego ćwiczenia w programowaniu:
Rozpakuj pobrany plik ZIP. Spowoduje to rozpakowanie folderu głównego o nazwie admob-firebase-codelabs-android-master
.
...lub skopiuj repozytorium GitHub z poziomu wiersza poleceń.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-android
Repozytorium zawiera 4 te foldery:
101-base – rozpoczęcie kodu, który utworzysz w tym ćwiczeniu z programowania.
101-complete_and_102-base – ukończony kod do tego ćwiczenia z programowania lekcji z programowania.
102-complete – ukończony kod ćwiczenia ze 102 ćwiczeń z programowania.
Importowanie aplikacji startowej
Uruchom Android Studio i wybierz „Import project” (Importuj projekt) na ekranie powitalnym. 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 na Androida
- Na ekranie z omówieniem projektu Awesome Rysunkowy Quiz kliknij ikonę Ustawienia.
- Na karcie Ogólne wybierz aplikację na Androida, aby pobrać plik google-service.json.
- Przenieś plik konfiguracji do katalogu
aplikacji w projekcie.
3. Otwieranie projektu Firebase w konsoli
Zanim przejdziesz do następnego kroku, otwórz projekt z poziomu konsoli Firebase utworzony w kroku „Konfiguracja projektu Firebase” w Ćwiczeniach z programowania AdMob i Firebase.
4. Tworzenie ścieżki zdarzeń w aplikacji
Może być kilka dodanych zdarzeń w aplikacji, aby śledzić aktywność użytkowników w aplikacji. Czytając raport o poszczególnych zdarzeniach w aplikacji, możesz poznać związane z nim szczegóły, takie jak łączna liczba, średnia liczba na użytkownika czy dane demograficzne.
Co jednak w sytuacji, gdy chcesz poznać współczynnik ukończenia serii zdarzeń, zamiast skupiać się na jednym wydarzeniu? W Google Analytics dla Firebase możesz używać ścieżki, aby wizualizować i optymalizować współczynnik ukończenia serii zdarzeń w aplikacji.
Tworzenie ścieżki
Aby utworzyć ścieżkę:
- Otwórz konsolę Firebase i wybierz utworzony wcześniej projekt Niesamowite rysowanie.
- 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.
Wykonując powyższe czynności, utwórz następujące ścieżki:
1. Nazwa ścieżki: Wskaźnik sukcesu poziomu Zdarzenia: level_start
, level_success
2. Nazwa ścieżki: Współczynnik pełnych obejrzeń reklam z nagrodą Zdarzenia: ad_reward_prompt
, ad_reward_impression
, ad_reward
3. Nazwa ścieżki: Współczynnik ukończenia gry Zdarzenia: game_start
, game_complete
Wyświetlanie analizy ścieżki
Po utworzeniu ścieżek możesz uzyskać do nich dostęp w menu Ścieżki w konsoli Firebase. Aby wyświetlić szczegółową analizę każdej ścieżki, kliknij jej nazwę na liście.
Kliknij np. Wskaźnik sukcesu poziomu. Szczegóły ścieżki wyświetlą się w następujący sposób:
Na powyższym zrzucie ekranu możesz zobaczyć odsetek użytkowników, którzy ukończyli poziom (wywołali zdarzenie level_success
) po rozpoczęciu poziomu (wywołali zdarzenie level_start
). Tutaj widać, że 46,2% użytkowników ukończyło poziom.
Gdy klikniesz Liczba zdarzeń, wyświetlą się następujące dane dotyczące liczby zdarzeń:
Według danych na zrzucie ekranu powyżej wystąpiło 116 prób (wywołanych zdarzenie level_start) i 57 wywołań (wywołanych zdarzenie level_success) w tym okresie.
Współczynnik realizacji określony na podstawie zdarzeń(49,1%) jest nieco wyższy niż na podstawie opinii użytkowników(46,2%), więc można stwierdzić, że jest kilka osób, które radzą sobie lepiej od innych.
5. Zintegruj Zdalną konfigurację z aplikacją
Możesz uzyskać statystyki dotyczące aplikacji na podstawie zdarzeń w aplikacji i ścieżki, dlatego warto zoptymalizować aplikację. Zwykle wiąże się to z dostrojeniem wartości parametru w aplikacji. Aby zmodyfikować wartości tych parametrów, musisz zaktualizować aplikację, aby zmiany zostały wprowadzone na kontach użytkowników.
Za pomocą Zdalnej konfiguracji w Firebase możesz dostosować te wartości bez aktualizowania aplikacji, co oznacza, że możesz zmienić działanie aplikacji bez zakłócania działania użytkowników, wymuszając na nich pobranie aktualizacji.
Z tego ćwiczenia z programowania dowiesz się, jak za pomocą Zdalnej konfiguracji dostosować kwotę nagrody (liczbę liter do ujawnienia po obejrzeniu reklamy wideo z nagrodą) bez aktualizowania aplikacji.
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 aplikacja ma dostęp do wszystkich zależności, zsynchronizuj projekt z plikami Gradle. Wybierz Plik > Zsynchronizuj projekt z plikami Gradle, aby zsynchronizować projekt z plikami Gradle.
Ustaw wartość domyślną parametru Zdalnej konfiguracji.
Pobieranie wartości ze Zdalnej konfiguracji wymaga połączenia sieciowego. Na wypadek, gdy sieć jest niedostępna, należy zdefiniować wartość domyślną dla 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)
w ten sposób:
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 AwesomeDrawingQuiz.kt
, tak aby klasę GameSettings
zawierała odwołanie do instancji RemoteConfig
.
Pamiętaj, że instancja RemoteConfig
jest skonfigurowana tak, aby pobierać najnowsze wartości z serwera w trybie debugowania, co ułatwi 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
Utwórz nowy parametr Zdalnej konfiguracji dla kwoty nagrody, aby móc na bieżąco dostosowywać jej wartość.
Aby utworzyć nowy parametr, otwórz konsolę Firebase i wybierz utworzony wcześniej projekt Niesamowite rysowanie. Kliknij Zdalna konfiguracja -> DODAJ SWÓJ PIERWSZY PARAMETR.
Nazwij parametr „reward_amount
”, a jako wartość domyślną ustaw 1
. Następnie kliknij przycisk Dodaj parametr.
Kliknij przycisk Opublikuj zmiany, aby udostępnić je użytkownikom.
6. Zmiana zachowania aplikacji przy użyciu Zdalnej konfiguracji
Ilość nagrody w quizie na rysowanie można teraz skonfigurować w konsoli Firebase bez konieczności aktualizowania kodu aplikacji.
W tej sekcji zmienisz wartość nagrody z 1 na 2, aby po obejrzeniu reklamy z nagrodą aplikacja pokazywała 2 kolejne postacie w ramach podpowiedzi.
Aktualizowanie domyślnej wartości parametru Award_amount
Otwórz konsolę Firebase i wybierz utworzony wcześniej projekt Niesamowite rysowanie. Kliknij Zdalna konfiguracja i na liście kliknij reward_amount
. Następnie zmień wartość domyślną na 2 i kliknij przycisk Aktualizuj.
Kliknij przycisk Opublikuj zmiany, aby udostępnić je użytkownikom.
Sprawdzanie zmiany w działaniu aplikacji
Aby potwierdzić zmianę działania aplikacji, uruchom projekt ponownie. Po obejrzeniu reklamy z nagrodą zauważysz, że w aplikacji wyświetlają się teraz 2 litery jako nagroda, zgodnie z ustawieniami skonfigurowanymi w konsoli Zdalnej konfiguracji.
Przed obejrzeniem reklamy z nagrodą | Odkryto 2 dodatkowe litery jako nagrodę |
7. Utwórz eksperyment, aby zoptymalizować kwotę nagrody
Teraz możesz zmienić wielkość nagrody bez konieczności publikowania aktualizacji aplikacji. Jak jednak ustalić, czy zmieniona kwota jest korzystna dla aplikacji?
Dzięki Testom A/B Firebase możesz przeprowadzać eksperymenty, aby zoptymalizować ogólne wrażenia użytkowników aplikacji bez konieczności aktualizowania aplikacji czy tworzenia osobnego narzędzia do przeprowadzania i śledzenia skuteczności każdego eksperymentu.
Zaprojektuj eksperyment
Przed utworzeniem nowego eksperymentu należy ustalić jego jasny cel. Zanim utworzysz nowy eksperyment, wykonaj czynności z poniższej listy kontrolnej.
- Co: co chcesz zoptymalizować? (np. trudność gry, czas wyświetlania reklamy lub widoczność reklamy itp.)
- Dlaczego: jaki jest cel biznesowy związany z eksperymentem? (np.w celu zmaksymalizowania przychodów z reklam, w celu zwiększenia utrzymania uwagi odbiorców itp.).
- Kto: kto ma wziąć udział w eksperymencie? (np. Wszyscy użytkownicy, Określeni odbiorcy itp.)
W ramach tego ćwiczenia w Codelabs utworzysz eksperyment, który zoptymalizuje wartość kwoty nagrody i zmaksymalizuje dzienne zaangażowanie użytkowników w quizie Rysunkowym.
Utwórz eksperyment
Otwórz projekt quizu „Niesamowite rysunki” w konsoli Firebase. Wybierz menu Testy A/B i kliknij przycisk Utwórz eksperyment.
Wybierz Zdalną konfigurację, aby utworzyć eksperyment związany ze Zdalną konfiguracją.
Nazwij eksperyment „Kwota nagrody”, jak pokazano na poniższym zrzucie ekranu.
Skonfiguruj opcje kierowania. W tym ćwiczeniu z programowania kierujesz reklamy do 100% użytkowników quizu na temat rysunków na fantastycznym rysowaniu.
Głównym celem eksperymentu jest znalezienie optymalnej wartości, która maksymalizuje dzienne zaangażowanie użytkowników, dlatego jako główne dane do śledzenia wybierz Dzienne zaangażowanie użytkowników.
Ustawienia konfiguracji i grupa wariantów pozwalają sprawdzić, która grupa sprawdza się lepiej. Wybierz reward_amount
z grupy kontrolnej i pozostaw wartość bez zmian. Nazwij grupę wariantów jako „Mniejsza nagroda”, a potem zmień wartość reward_amount
na 1.
W przypadku tej konfiguracji osoby z grupy „Mniej nagrody” otrzymają nagrodę w postaci jednej litery, a osoby w grupie kontrolnej – 2 litery. W rezultacie zobaczysz, jak wysokość nagrody wpływa na użytkowników.
Gdy klikniesz przycisk Sprawdź, zobaczysz następujące omówienie eksperymentu.
Przeprowadzanie eksperymentu
Kliknij przycisk Rozpocznij eksperyment, aby go uruchomić. Pamiętaj, że po rozpoczęciu eksperymentu nie można już zmienić jego konfiguracji.
8. Zarządzanie eksperymentem
Zobacz postępy eksperymentu.
Postępy eksperymentu możesz sprawdzić w menu Testy A/B w konsoli Firebase. Będzie ono wyglądać tak jak na zrzucie ekranu poniżej. Pamiętaj, że na karcie możesz też zobaczyć 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 wskaże zwycięzcy (tj. wariantu najskuteczniejszego), zobaczysz komunikat „Jeszcze za wcześnie, aby deklarować najlepszy wariant”.
Po pewnym czasie działania eksperymentu w sekcji Ulepszenie pojawią się dane zebrane do tej pory w trakcie eksperymentu. Możesz porównać skuteczność poszczególnych wariantów, aby sprawdzić, który z nich radzi sobie lepiej. Zrzut ekranu poniżej przedstawia przykładową sekcję Przegląd ulepszeń.
W tabeli pod sekcją Przegląd ulepszeń znajdziesz szczegóły danych o celach w eksperymencie, a także dodatkowe dane śledzone w eksperymencie. Zrzut ekranu poniżej przedstawia przykładową sekcję szczegółów danych.
Wdróż najlepszy wariant dla wszystkich użytkowników
Po długim czasie trwania eksperymentu zwycięzcą lub zwycięskim wariantem możesz wdrożyć go u wszystkich użytkowników. Gdy test A/B wyłoni jednoznacznie zwycięską odmianę, zachęca do wdrożenia jej zwycięskiej wersji wszystkim użytkownikom.
Jednak nawet wtedy, gdy w ramach eksperymentu nie wybrano jednoznacznego zwycięzcy, możesz udostępnić wariant wszystkim użytkownikom.
Na ekranie szczegółów eksperymentu kliknij menu kontekstowe ( ), a potem kliknij Wdróż wariant.
Wybierz wariant, który chcesz wdrożyć u wszystkich użytkowników, a następnie kliknij przycisk Sprawdź w Zdalnej konfiguracji, aby przejrzeć zmiany przed ich wprowadzeniem w Zdalnej konfiguracji.
Gdy upewnisz się, że w wersji roboczej nie ma żadnych problemów, kliknij przycisk Opublikuj zmiany, aby udostępnić je wszystkim użytkownikom.
9. Wszystko gotowe
Udało Ci się ukończyć ćwiczenia z programowania w AdMob i Firebase na Androida. Ukończony kod tego ćwiczenia z programowania znajdziesz w folderze 102-complete.