Podstawy AdMob dla Firebase: dostosowywanie działania aplikacji bez jej aktualizacji

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?

Początkujący Średnio zaawansowany Zaawansowany

Jak oceniasz swoje doświadczenie z Firebase?

Początkujący Średnio zaawansowany Zaawansowany

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:

  • android_studio_folder.png101-base – kod początkowy, który będziesz rozwijać w tych ćwiczeniach z programowania.
  • android_studio_folder.png101-complete_and_102-base – ukończony kod do tych ćwiczeń z programowania i kod początkowy do ćwiczeń z programowania 102.
  • android_studio_folder.png102-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

  1. Na ekranie przeglądu projektu Awesome Drawing Quiz kliknij ikonę Ustawienia. 9bacb5ada7cbaaf6.png
  2. Na karcie Ogólne wybierz aplikację na Androida, aby pobrać plik google-service.json.
  3. Przenieś plik konfiguracyjny do katalogu android_studio_folder.pngapp w projekcie. 797cde1881a38fdf.png

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”samouczku AdMob+Firebase 101.

e0a028059c9e00cb.png

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ę:

  1. Otwórz konsolę Firebase i wybierz utworzony wcześniej projekt Awesome Drawing Quiz.
  2. Kliknij Ścieżki.
  3. Kliknij NOWA ŚCIEŻKA.
  4. Wpisz nazwę i opis ścieżki.
  5. Wybierz pierwsze dwa zdarzenia, których chcesz użyć jako kroków w ścieżce.
  6. Dla każdego dodatkowego kroku kliknij DODAJ KOLEJNE ZDARZENIE i wybierz zdarzenie.
  7. 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_successd3bc78ef61a261d7.png

2. Nazwa ścieżki: współczynnik ukończenia reklamy z nagrodą Wydarzenia: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

#3 Nazwa ścieżki: odsetek ukończenia gry Zdarzenia: game_start, game_completedab25e8501746d5f.png

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.

620c0e84587c8ad4.png

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

c889f9b6ece15847.png

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ń:

d044fb7b07e6e0d9.png

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).

7f52617141c53726.png

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

cbc771fd1685b29c.png

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

d6a6aa4a60e06ee9.png

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.

9a9bd8a26a39bfe3.png

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

d6a6aa4a60e06ee9.png

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.

f38a85328ab54e7e.png

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

15d552adb61c0b08.png

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

61b316741a63050f.png

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.

694641b57d90ff65.png

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.

10ed7f5b06858519.png

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.

ae6477ce79f6265d.png

Przeprowadź eksperyment

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

7131bf9b4fa74fa5.png

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.

8a7009bdd8871d95.png

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”.

a4e7ca3e3f4711cd.png

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ń.

e2d00fc27c053fd3.png

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.

c3859d642f85cc52.png

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.

86cb6a6c07516634.png

Możesz to zrobić także w przypadku, gdy eksperyment nie wyłoni zdecydowanego zwycięzcy.

Na ekranie szczegółów eksperymentu kliknij menu kontekstowe ( 73afe611adf58774.png), a potem Wdróż wariant.

374e1c72be1d0656.png

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.

e176f6e6a72c754.png

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

d65d545620ce93f6.png

9. Wszystko gotowe

Ukończono ćwiczenia AdMob+Firebase 102 na Androida. Ukończony kod tego ćwiczenia znajdziesz w folderze android_studio_folder.png102-complete.