AdMob+Firebase 102 Unity: Uygulama güncellemesine gerek kalmadan uygulama davranışında ince ayar yapın

1. Giriş

Uygulamanızı Play Store'da yayınladıktan sonra uygulamanızdaki bazı parametrelerin değerlerini ayarlamanız gerektiğini varsayalım. Genellikle uygulamanızın yeni bir sürümünü yeniden yayınlamanız gerekir. Kullanıcıların da uygulamayı telefonlarında güncellemesi gerekir.

Uygulama güncellemesi genel olarak uygulamanızda uzun vadeli bir değişiklik yapmak istediğinizde işe yarar. Peki, uygulamanızdaki bazı parametrelerin değerini sık sık düzenleyecekseniz ne olacak? Alternatif olarak, en uygun uygulama yapılandırmasını bulmak için bazı denemeler yapmak isterseniz ne yapabilirsiniz?

Bu durumlarda uygulama güncelleme işlevi iyi sonuç vermez. Çünkü güncellemenin kullanıcılara tamamen dağıtılması biraz zaman alacaktır. Ayrıca deneme yapmak, çeşitli uygulama sürümlerinde oldukça zordur.

Ayrıca, uygulamanın kullanıcı yolculuğunun istenen şekilde çalışıp çalışmadığını nasıl belirleyebileceksiniz? Play Console'daki kullanıcı yorumlarına güvenebilirsiniz. Ancak, net bir karar vermek için yeterince net olmayabilir.

Neler öğreneceksiniz?

  • Firebase için Google Analytics'te dönüşüm hunisi oluşturma
  • Firebase Remote Config nasıl kullanılır?
  • Firebase A/B Testi'ni çalıştırma

Gerekenler

  • Unity 2018.4.4f1 veya sonraki sürümler
  • Xcode 10 veya üstü (iOS için hedef oluşturmak için)
  • Google Hesabı
  • Cihazınızı bağlamak için USB kablosuyla birlikte Android 5.0 ve sonraki sürüme sahip bir test cihazı veya Play Store/Google API'lerini destekleyen bir sistem görüntüsüne sahip AVD(Android Sanal Cihazı) çalıştıran bir Android Emülatör
  • iOS 8.0 veya sonraki sürümleri çalıştıran bir iOS cihazı ya da simülatörü

AdMob deneyim düzeyinizi nasıl değerlendirirsiniz?

Acemi Orta Yeterli

Firebase deneyim düzeyinizi nasıl değerlendirirsiniz?

Acemi Orta Yeterli

2. Geliştirme ortamı oluşturma

Kodu indirme

Bu codelab'e ait tüm kodları indirmek için aşağıdaki düğmeyi tıklayın:

İndirilen zip dosyasının paketini açın. Bu işlem, admob-firebase-codelabs-unity-master adlı bir kök klasörün paketini açar.

...veya GitHub deposunu komut satırından klonlayın.

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

Depoda şu dört klasör bulunur:

  • android_studio_folder.png101-base: Bu codelab'de derleyeceğiniz başlangıç kodu.
  • android_studio_folder.png101-complete_and_102-base — Bu codelab için tamamlanmış kod ve başlangıç kılavuzu.
  • android_studio_folder.png102-complete — 102 codelab'inin kodu tamamlandı.

Gerekli dosyaları hazırlama

Awesome Drawing Quiz, projeyi derlemek ve çalıştırmak için gerekli olan çeşitli açık kaynak kodlarını kullanır.

Terminali açıp depo kök dizinine geçin. Ardından, gerekli dosyaları projeye kopyalamak için terminalden ./gradlew :prepareThirdPartyFiles (Windows'da gradlew.bat :prepareThirdPartyFiles) komutunu çalıştırın.

Başlangıç uygulamasını içe aktarma

Unity'yi başlatın, karşılama ekranında "Open" (Aç) seçeneğini belirleyin. Ardından, indirdiğiniz koddan 101-complete_and_102-base dizinini seçin.

Artık projeniz Unity'de açık olmalıdır.

Google Mobil Reklamlar Unity Eklentisini Ekle

Unity uygulamasında AdMob Reklamları sunmak için projeye Google Mobil Reklamlar Unity Eklentisini eklemeniz gerekir.

  1. Google Mobile Ads Unity Plugin 3.18.1 paketini indirin. (Bu Codelab'in, eklentinin diğer sürümüyle uyumlu olmayabileceğini unutmayın)
  2. Awesome Drawing Quiz Unity projesinde. Projede, Öğeler > Paketi İçe Aktar > Özel Paket.
  3. GoogleMobileAds.unitypackage dosyasını indirdiğiniz projeye aktarın.

AdMob uygulama kimliğini de ayarlamanız gerekir. Unity Editor'da Öğeler > Google Mobil Reklamlar > Ayarlar'ı tıklayın.

44fc84fe88235c1f.png

Google AdMob bölümünün altındaki Etkin onay kutusunu tıklayarak AdMob'u etkinleştirin. Ardından, AdMob uygulama kimliğini aşağıdaki gibi girin:

  • Android: ca-app-pub-3940256099942544~3048611032
  • iOS: ca-app-pub-3940256099942544~2753522596

a6ad7402d4daf330.png

Firebase yapılandırma dosyalarını Unity projesine ekleme

  1. Muhteşem Çizim Testi projesinin genel bakış ekranından Ayarlar simgesini tıklayın. 9bacb5ada7cbaaf6.png
  2. Genel sekmesinde, google-service.json (Android için) ve GoogleService-Info.plist (iOS için) dosyasını indirmek üzere her bir Android ve iOS uygulamasını seçin.
  3. Her iki yapılandırma dosyasını da Unity projesindeki android_studio_folder.pngAssets klasörüne taşıyın.

704aa8e97df63c4e.png

Firebase Analytics SDK'sını ekleme

  1. Firebase Unity SDK 5.5.0'ı indirin ve uygun bir yerde sıkıştırılmış dosyayı açın. (SDK'yı zaten indirdiyseniz bu adımı atlayın)
  2. Awesome Drawing Quiz Unity projesini açın, Öğeler > Paketi İçe Aktar > Özel Paket.
  3. Sıkıştırılmamış SDK'dan Firebase Analytics SDK'sını (dotnet4/FirebaseAnalytics.unitypackage) içe aktarın.
  4. Unity paketini içe aktar penceresinde İçe Aktar'ı tıklayın.

3. Konsoldan Firebase projesini açma

Bir sonraki adıma geçmeden önce AdMob+Firebase 101 Codelab'deki "Firebase Projesini Oluşturun" adımında oluşturduğunuz Firebase konsolunda projeyi açın.

e0a028059c9e00cb.png

4. Uygulama etkinliklerinden oluşan bir dönüşüm hunisi oluşturma

Uygulama içindeki kullanıcı etkinliğini izlemek için eklemiş olduğunuz birkaç uygulama etkinliği olabilir. Her uygulama etkinliğine ilişkin raporu okuyarak etkinlikle ilgili ayrıntıları (ör. toplam sayı, kullanıcı başına ortalama sayı, demografi) edinebilirsiniz.

Ancak belirli bir etkinliğe odaklanmak yerine bir etkinlik dizisinin tamamlanma oranını görmek isterseniz ne olur? Firebase için Google Analytics'te, bir dizi uygulama etkinliğinin tamamlanma oranını görselleştirmek ve optimize etmek için Dönüşüm hunisi'ni kullanabilirsiniz.

Dönüşüm hunisi oluşturma

Dönüşüm hunisi oluşturmak için:

  1. Firebase konsoluna gidin ve daha önce oluşturduğunuz Awesome Drawing Quiz projesini seçin.
  2. Dönüşüm hunileri'ni tıklayın.
  3. YENİ DÖNÜŞÜM HUNİSİ'ni tıklayın.
  4. Dönüşüm hunisi için bir ad ve açıklama girin.
  5. Dönüşüm hunisinde adım olarak kullanmak istediğiniz ilk iki etkinliği seçin.
  6. Her ek adım için BAŞKA BİR ETKİNLİK EKLE'yi tıklayın ve bir etkinlik seçin.
  7. OLUŞTUR'u tıklayın.

Yukarıdaki adımları uygulayarak aşağıdaki dönüşüm hunilerini oluşturun:

1. Dönüşüm hunisi adı: Seviye başarı oranı Etkinlikler: level_start, level_successd3bc78ef61a261d7.png

2. Dönüşüm hunisi adı: Ödüllü Reklam tamamlanma oranı Etkinlikler: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

3. Dönüşüm hunisi adı: Oyun tamamlanma oranı Etkinlikler: game_start, game_completedab25e8501746d5f.png

Dönüşüm hunisi analizini görüntüleme

Birkaç dönüşüm hunisi oluşturduktan sonra bu dönüşüm hunilerine Firebase konsolundaki Dönüşüm Hunileri menüsünden erişebilirsiniz. Listedeki dönüşüm hunisinin adını tıklayarak her bir dönüşüm hunisinin ayrıntılı analizini görebilirsiniz.

620c0e84587c8ad4.png

Örnek olarak Seviye başarı oranı'nı tıklayın. Dönüşüm hunisinin ayrıntıları aşağıdaki gibi gösterilir:

c889f9b6ece15847.png

Yukarıdaki ekran görüntüsünde, bir seviye başlattıktan (level_start etkinliğini tetikleyen) seviyeyi tamamlayan (level_success etkinliğini tetikleyen) kullanıcıların yüzdesini görebilirsiniz. Burada, kullanıcıların% 46,2'sinin seviyeyi tamamladığını görebilirsiniz.

Etkinlik sayısı'nı tıkladığınızda, etkinlik sayısına dayalı metrikler aşağıdaki gibi gösterilir:

d044fb7b07e6e0d9.png

Yukarıdaki ekran görüntüsündeki metriklere göre, bu dönemde 116 deneme (level_start etkinliği tetiklendi) ve 57 temizleme (level_success etkinliği tetiklendi) gerçekleşmiştir.

Etkinliklere dayalı tamamlanma oranı (%49,1) kullanıcıya göre tamamlanma oranından (%46,2) biraz daha yüksek olduğundan, birkaç kişinin diğerlerinden daha iyi performans gösterdiğini söyleyebilirsiniz.

5. Remote Config'i uygulamaya entegre edin

Uygulamanızla ilgili uygulama etkinliklerine ve dönüşüm hunisine göre bazı analizler alabileceğinizden uygulamanızı optimize etmek isteyebilirsiniz. Genellikle uygulamadaki parametre değerinde ince ayar yapılmasını içerir. Bu parametrelerin değerini değiştirmek için uygulamayı, değişikliklerin kullanıcılara uygulanabileceği şekilde güncellemeniz gerekir.

Firebase'de Remote Config sayesinde, bu değerleri uygulama güncellemesi olmadan ayarlayabilirsiniz. Bu sayede, kullanıcılarınızı rahatsız etmek zorunda kalmadan uygulama davranışını, güncellemeyi indirmeye zorlayarak değiştirebilirsiniz.

Bu Codelab'de, Remote Config'i kullanarak ödül tutarını (ödüllü video reklamı izledikten sonra açıklanacak harf sayısı) uygulama güncellemesi olmadan nasıl düzenlenebilir hale getireceğinizi öğreneceksiniz.

Firebase Remote Config SDK'sını ekleyin

  1. Firebase Unity SDK 5.5.0'ı indirin ve uygun bir yerde sıkıştırılmış dosyayı açın.
  2. Awesome Drawing Quiz Unity projesini açın, Öğeler > Paketi İçe Aktar > Özel Paket.
  3. Sıkıştırılmamış SDK'dan Remote Config SDK'sını (dotnet4/FirebaseRemoteConfig.unitypackage) içe aktarın.
  4. Unity paketini içe aktar penceresinde İçe Aktar'ı tıklayın.

Firebase.RemoteConfig içe aktarma

Tam nitelikli adı kullanmak zorunda kalmadan Firebase.RemoteConfig'deki türü kullanabilmeniz için Main.cs dosyasını değiştirin.

Scenes/Main.cs

...

using AwesomeDrawingQuiz.Game;

// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;

namespace AwesomeDrawingQuiz.Scene {
    ...
}

Başlat ve Remote Config değerlerini getirme

Remote Config örneğini aşağıdaki gibi başlatmak için Main.cs içindeki InitAndFetchRemoteConfig() yöntemini değiştirin. Remote Config'deki parametrenin adının GameSettings.KEY_REWARD_AMOUNT olduğunu unutmayın. (Bu alanı yakında bu Codelab'de açıklayacaksınız)

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();
    }
}

FirebaseRemoteConfig örneğinin, geliştirme sürecine yardımcı olmak için hata ayıklama modunda sunucudan en son değerleri getirecek şekilde yapılandırıldığını görürsünüz. (IsDeveloperMode = true ve FetchAsync(System.TimeSpan.Zero))

Getirilen Remote Config değerlerini etkinleştir

Remote Config değerlerini başarıyla getirdiğinizde, bunları uygulamada kullanılabilir hale getirmek için etkinleştirmeniz gerekir. ActivateRemoteConfigValues() yöntemini aşağıdaki gibi değiştirin.

Scenes/Main.cs

private void ActivateRemoteConfigValues() {
    // TODO: Activate fetched Remote Config values (102)
    FirebaseRemoteConfig.ActivateFetched();
}

Start() yöntemini değiştirme

Uygulamanın getirilerek uygulama başlatılırken Remote Config değerini etkinleştirirse Main.cs dosyasındaki Start() yöntemini aşağıdaki gibi değiştirin.

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
}

Ödül tutarını Remote Config'den getir

Ödül miktarını Remote Config'den almak için GameSettings sınıfını değiştirin.

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 { }
        }
    }
}

Konsoldan Remote Config parametresi oluşturma

Şimdi, ödül tutarı için yeni bir Remote Config parametresi oluşturacaksınız. Böylece, değerini anında ayarlayabilirsiniz.

Yeni bir parametre oluşturmak için Firebase konsoluna gidin ve daha önce oluşturduğunuz Awesome Drawing Quiz projesini seçin. Remote Config -> öğesini tıklayın. İLK PARAMETRENİZİ EKLEYİN düğmesi.

7f52617141c53726.png

Parametreyi reward_amount olarak adlandırın ve varsayılan değerini 1 olarak ayarlayın. Ardından Parametre Ekle düğmesini tıklayın.

cbc771fd1685b29c.png

Değişikliği kullanıcılar için geçerli hale getirmek üzere Değişiklikleri Yayınla düğmesini tıklayın.

d6a6aa4a60e06ee9.png

6. Remote Config ile uygulama davranışını değiştirme

Awesome Drawing Quiz'deki ödül miktarı artık uygulama kodunu güncellemenize gerek kalmadan Firebase konsolunda yapılandırılabilir.

Bu bölümde, ödül miktarını 1'den 2'ye getirerek uygulamanın ödüllü reklamı izledikten sonra ipucu olarak iki karakter daha göstermesini sağlayacaksınız.

Reward_amount parametresinin varsayılan değerini güncelleme

Firebase konsoluna gidin, ardından daha önce oluşturduğunuz Awesome Drawing Quiz projesini seçin. Remote Config'i (Uzak Yapılandırma) tıklayın ve listeden reward_amount simgesini tıklayın. Ardından, varsayılan değeri 2 olarak değiştirip Güncelle düğmesini tıklayın.

9a9bd8a26a39bfe3.png

Değişikliğin kullanıcılar için geçerli olması için Değişiklikleri yayınla düğmesini tıklayın.

d6a6aa4a60e06ee9.png

Uygulama davranışı değişikliğini doğrulama

Uygulama davranışı değişikliğini onaylamak için projeyi tekrar çalıştırın. Ödüllü Reklamı izlemeyi bitirdikten sonra, Remote Config konsolunda yapılandırdığımız gibi uygulamanın artık ödül olarak iki harf gösterdiğini fark edeceksiniz.

Ödüllü reklam izlemeden önce

Ödül olarak iki ekstra harf gösterildi

7. Ödül miktarını optimize etmek için bir deneme oluşturun

Artık uygulama güncellemesi yayınlamanıza gerek kalmadan ödül miktarını değiştirebilirsiniz. Ancak, değiştirdiğiniz tutarı uygulama için iyi olup olmadığını nasıl belirleyebilirsiniz?

Firebase A/B Testi sayesinde, bir uygulamayı güncellemenize veya her bir denemenin çalıştırılması ve performansını izlemek için ayrı bir araç oluşturmanız gerekmeden uygulamanın genel kullanıcı deneyimini optimize edecek denemeler yapabilirsiniz.

Denemeyi tasarlama

Yeni bir deneme oluşturmadan önce, denemenin amacını veya hedefini net olarak belirlemelisiniz. Yeni bir deneme oluşturmadan önce aşağıdaki kontrol listesini uyguladığınızdan emin olun.

  • Ne: Neyi optimize etmek istiyorsunuz? (ör. oyun zorluğu, Reklam zamanlaması/görünürlüğü vb.)
  • Neden: Denemeyi çalıştırırken işletme hedefiniz nedir? (ör. reklam gelirini en üst düzeye çıkarmak, elde tutma oranını artırmak vb.)
  • Kim: Bu denemeye kimler katılacak? (ör. Tüm kullanıcılar, Belirli kullanıcı kitlesi vb.)

Bu Codelab'de, Muhteşem Çizim Testi'nin günlük kullanıcı etkileşimini en üst düzeye çıkarmak için ödül tutarı değerini optimize etmek üzere bir deneme oluşturacaksınız.

Denemeyi oluşturma

Firebase konsolundan Awesome Çizim Testi projesini açın. A/B Testi menüsünü seçin ve ardından Deneme oluştur düğmesini tıklayın.

Remote Config denemesi oluşturmak için Remote Config'i seçin.

f38a85328ab54e7e.png

Denemeyi aşağıdaki ekran görüntüsünde gösterildiği gibi "Ödül Tutarı" olarak adlandırın.

15d552adb61c0b08.png

Hedefleme seçeneklerini yapılandırın. Bu Codelab'de Muhteşem Çizim Testi kullanıcılarının% 100'ünü hedefleyeceksiniz.

61b316741a63050f.png

Denemenin ana hedefi, günlük kullanıcı etkileşimini en üst düzeye çıkaran optimum değeri bulmak olduğundan, izlenecek birincil metrik olarak Günlük kullanıcı etkileşimi'ni seçin.

694641b57d90ff65.png

Son olarak, hangi grubun daha iyi performans gösterdiğini anlayabilmeniz için kontrolü ve varyant grubunu ayarlayın. Kontrol grubundan reward_amount öğesini seçin ve değerini değiştirmeyin. Varyant grubuna "Daha az ödül" adını verin, ardından reward_amount değerini 1 olarak değiştirin.

10ed7f5b06858519.png

Bu yapılandırmayla, "Daha az ödül" grubundaki kullanıcılar ödül olarak bir harf, Kontrol grubu'ndakiler ise ödül olarak iki harf alır. Sonuç olarak, ödül miktarının kullanıcıları nasıl etkilediğini göreceksiniz.

İncele düğmesini tıkladığınızda aşağıdaki gibi deneme genel bakışı görüntülenir.

ae6477ce79f6265d.png

Denemeyi çalıştırma

Denemeyi çalıştırmak için Denemeyi başlat düğmesini tıklayın. Deneme yapılandırmasını başlattıktan sonra değiştiremeyeceğinizi unutmayın.

7131bf9b4fa74fa5.png

8. Denemeyi yönetin

Denemenin ilerleme durumunu görüntüleme

Firebase konsolundaki A/B Testi menüsünden denemenin ilerleme durumunu kontrol edebilirsiniz. Bu menü aşağıdaki ekran görüntüsündeki gibi görünür. Kartta, son 30 dakika içinde denemeye katılan kullanıcıların sayısını da görebilirsiniz.

8a7009bdd8871d95.png

Listeden denemeyi tıkladıktan sonra, deneme ayrıntılarını görebilirsiniz. Deneme bir öncü (yani en iyi performans gösteren varyant) belirlenene kadar "Lider bildirmek için çok erken" mesajını görürsünüz.

a4e7ca3e3f4711cd.png

Deneme bir süre boyunca çalıştıktan sonra, o ana kadar deneme sırasında toplanan verileri İyileştirmeye genel bakış bölümünde göstermeye başlar. Hangisinin daha iyi performans gösterdiğini görmek için her varyantın performansını karşılaştırabilirsiniz. Aşağıdaki ekran görüntüsünde İyileştirmeye genel bakış bölümünün bir örneği gösterilmektedir.

e2d00fc27c053fd3.png

İyileştirmeye genel bakış bölümünün altındaki tablodan, denemenin hedef metriklerinin ayrıntılarını ve denemede izlenen ek metrikleri görebilirsiniz. Aşağıdaki ekran görüntüsünde, metrik ayrıntıları bölümünün bir örneği gösterilmektedir.

c3859d642f85cc52.png

Öncüyü tüm kullanıcılara sun

Bir öncü veya kazanan varyant belirlediğinize göre deneme uzun bir süre devam ettikten sonra denemeyi kullanıcıların% 100'üne sunabilirsiniz. A/B testi net bir lider bulduğunda, önde gelen varyantı tüm kullanıcılara sunmanızı önerir.

86cb6a6c07516634.png

Ancak denemede açık bir kazanan belirlenmemiş olsa bile, tüm kullanıcılara bir varyant sunmayı seçebilirsiniz.

Deneme ayrıntıları ekranında, içerik menüsünü ( 73afe611adf58774.png) ve ardından Varyantı kullanıma sun'u tıklayın.

374e1c72be1d0656.png

Tüm kullanıcılara sunulacak bir varyant seçin, ardından Remote Config'de değişiklik yapmadan önce değişiklikleri incelemek için Remote Config'de incele düğmesini tıklayın.

e176f6e6a72c754.png

Taslakta herhangi bir sorun olmadığını onayladıktan sonra, değişikliğin tüm kullanıcılar için geçerli olması için Değişiklikleri yayınla düğmesini tıklayın.

d65d545620ce93f6.png

9. Hepsi bu kadar.

AdMob+Firebase 102 Unity Codelab'ini tamamladınız. Bu Codelab için tamamlanmış kodu android_studio_folder.png102-complete klasöründe bulabilirsiniz.