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ć 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?

Początkujący Poziom średnio zaawansowany Biegły

Jak oceniasz swój poziom znajomości Firebase?

Początkujący Poziom średnio zaawansowany Biegły
.

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:

  • android_studio_folder.png101-base – rozpoczęcie kodu, który utworzysz w tym ćwiczeniu z programowania.
  • android_studio_folder.png101-complete_and_102-base – ukończony kod do tego ćwiczenia z programowania lekcji z programowania.
  • android_studio_folder.png102-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

  1. Na ekranie z omówieniem projektu Awesome Rysunkowy Quiz kliknij ikonę Ustawienia. 9bacb5ada7cbaaf6.png
  2. Na karcie Ogólne wybierz aplikację na Androida, aby pobrać plik google-service.json.
  3. Przenieś plik konfiguracji do katalogu android_studio_folder.pngaplikacji w projekcie. 797cde1881a38fdf.png

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.

e0a028059c9e00cb.png

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

  1. Otwórz konsolę Firebase i wybierz utworzony wcześniej projekt Niesamowite rysowanie.
  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.

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_successd3bc78ef61a261d7.png

2. Nazwa ścieżki: Współczynnik pełnych obejrzeń reklam z nagrodą Zdarzenia: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

3. Nazwa ścieżki: Współczynnik ukończenia gry Zdarzenia: game_start, game_completedab25e8501746d5f.png

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.

620c0e84587c8ad4.png

Kliknij np. Wskaźnik sukcesu poziomu. Szczegóły ścieżki wyświetlą się w następujący sposób:

c889f9b6ece15847.png

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

d044fb7b07e6e0d9.png

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.

7f52617141c53726.png

Nazwij parametr „reward_amount”, a jako wartość domyślną ustaw 1. Następnie kliknij przycisk Dodaj parametr.

cbc771fd1685b29c.png

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

d6a6aa4a60e06ee9.png

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.

9a9bd8a26a39bfe3.png

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

d6a6aa4a60e06ee9.png

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

f38a85328ab54e7e.png

Nazwij eksperyment „Kwota nagrody”, jak pokazano na poniższym zrzucie ekranu.

15d552adb61c0b08.png

Skonfiguruj opcje kierowania. W tym ćwiczeniu z programowania kierujesz reklamy do 100% użytkowników quizu na temat rysunków na fantastycznym rysowaniu.

61b316741a63050f.png

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.

694641b57d90ff65.png

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.

10ed7f5b06858519.png

W przypadku tej konfiguracji osoby z grupy „Mniej nagrody” otrzymają nagrodę w postaci jednej litery, a osoby w grupie kontrolnej2 litery. W rezultacie zobaczysz, jak wysokość nagrody wpływa na użytkowników.

Gdy klikniesz przycisk Sprawdź, zobaczysz następujące omówienie eksperymentu.

ae6477ce79f6265d.png

Przeprowadzanie eksperymentu

Kliknij przycisk Rozpocznij eksperyment, aby go uruchomić. Pamiętaj, że po rozpoczęciu eksperymentu nie można już zmienić jego konfiguracji.

7131bf9b4fa74fa5.png

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.

8a7009bdd8871d95.png

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

a4e7ca3e3f4711cd.png

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

e2d00fc27c053fd3.png

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.

c3859d642f85cc52.png

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.

86cb6a6c07516634.png

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 ( 73afe611adf58774.png), a potem kliknij Wdróż wariant.

374e1c72be1d0656.png

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.

e176f6e6a72c754.png

Gdy upewnisz się, że w wersji roboczej nie ma żadnych problemów, kliknij przycisk Opublikuj zmiany, aby udostępnić je wszystkim użytkownikom.

d65d545620ce93f6.png

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 android_studio_folder.png102-complete.