Podstawy AdMob dla Unity: dostosowywanie działania aplikacji bez jej aktualizowania

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?

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-unity-master.

…lub sklonuj repozytorium GitHub z poziomu wiersza poleceń.

$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity

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.

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.

  1. 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).
  2. W projekcie Unity Awesome Drawing Quiz. W projekcie kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet).
  3. 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).

44fc84fe88235c1f.png

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

a6ad7402d4daf330.png

Dodawanie plików konfiguracyjnych Firebase do projektu w Unity

  1. Na ekranie przeglądu projektu Awesome Drawing Quiz kliknij ikonę Ustawienia. 9bacb5ada7cbaaf6.png
  2. 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).
  3. Przenieś oba pliki konfiguracyjne do folderu android_studio_folder.pngAssets w projekcie Unity.

704aa8e97df63c4e.png

Dodawanie pakietu SDK Firebase Analytics

  1. 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)
  2. Otwórz projekt Unity Awesome Drawing Quiz i kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet).
  3. W rozpakowanym pakiecie SDK zaimportuj pakiet SDK Firebase Analytics (dotnet4/FirebaseAnalytics.unitypackage).
  4. 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”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żek 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.

Dodawanie pakietu SDK Zdalnej konfiguracji Firebase

  1. Pobierz pakiet Firebase Unity SDK w wersji 5.5.0 i rozpakuj go w wygodnym miejscu.
  2. Otwórz projekt Unity Awesome Drawing Quiz i kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet).
  3. W rozpakowanym pakiecie SDK zaimportuj pakiet SDK Zdalnej konfiguracji (dotnet4/FirebaseRemoteConfig.unitypackage).
  4. 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()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 = trueFetchAsync(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).

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

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.

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.

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

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.

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 Unity. Ukończony kod tego ćwiczenia znajdziesz w folderze android_studio_folder.png102-complete.