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 ve kullanıcıların da uygulamayı telefonlarında güncellemesi gerekir.

Genel olarak, uygulamanızda uzun süreli bir değişiklik yapmak istiyorsanız uygulama güncellemesi işe yarar. Ancak uygulamanızdaki bazı parametrelerin değerini sık sık ayarlayacaksanız ne yapmanız gerekir? Ya da ideal uygulama yapılandırmasını bulmak için bazı denemeler yapmak istiyorsanız ne yapmalısınız?

Bu durumlarda uygulama güncelleme işlemi düzgün çalışmaz. Güncellemenin kullanıcılara tamamen yansıtılması biraz zaman alır. Ayrıca, denemeleri birden fazla uygulama sürümünde çalıştırmak da oldukça zordur.

Ayrıca, uygulamanın kullanıcı yolculuğunun amaçlandığı gibi çalışıp çalışmadığını nasıl belirleyebilirsiniz? Play Console'daki kullanıcı yorumlarından yararlanabilirsiniz. Ancak bu bilgi, net bir karar vermek için yeterince kesin olmayabilir.

Neler öğreneceksiniz?

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

Gerekenler

  • Unity 2018.4.4f1 veya daha yeni bir sürüm
  • Xcode 10 veya üzeri (iOS için hedef oluşturmak üzere)
  • Google Hesabı
  • Cihazınızı bağlamak için USB kablosuyla Android 5.0 veya sonraki bir sürümün yüklü olduğu bir test cihazı ya da Play Store/Google API'lerini destekleyen bir sistem görüntüsüyle AVD(Android Sanal Cihaz) çalıştıran bir Android Emulator
  • iOS 8.0 veya sonraki sürümlerin yüklü olduğu bir iOS cihaz ya da simülatör

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

Yeni Başlayan Orta Düzey Uzman

Firebase ile ilgili deneyim seviyenizi nasıl değerlendirirsiniz?

Başlangıç Orta İleri

2. Geliştirme ortamını kurma

Kodu indirme

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

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

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

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

Depoda aşağıdaki dört klasör bulunur:

  • android_studio_folder.png101-base: Bu codelab'de oluşturacağınız başlangıç kodu.
  • android_studio_folder.png101-complete_and_102-base: Bu codelab'in tamamlanmış kodu ve 102 numaralı codelab'in başlangıç kodu.
  • android_studio_folder.png102-complete: 102 numaralı Codelab'in tamamlanmış kodu.

Gerekli dosyaları hazırlama

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

Terminali açın ve depo kök dizinine gidin. 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 ve karşılama ekranında "Open" (Aç) seçeneğini belirleyin. Ardından, indirdiğiniz koddan 101-complete_and_102-base dizinini seçin.

Proje artık Unity'de açık olmalıdır.

Google Mobil Reklamlar Unity eklentisini ekleme

Unity uygulamasında AdMob reklamları yayınlamak için Google Mobile Ads Unity eklentisini projeye eklemeniz gerekir.

  1. Google Mobile Ads Unity eklentisi 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 Assets > Import Package > Custom Package (Öğeler > Paket İçe Aktar > Özel Paket) bölümüne gidin.
  3. İndirdiğiniz projeye GoogleMobileAds.unitypackage dosyasını aktarın.

AdMob uygulama kimliğini de ayarlamanız gerekir. Unity Editor'da menüden Assets > Google Mobile Ads > Settings'i (Öğeler > Google Mobil Reklamlar > Ayarlar) seçin.

44fc84fe88235c1f.png

Google AdMob bölümündeki 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. Awesome Drawing Quiz projesinin genel bakış ekranında 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 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'ı indirip uygun bir konumda arşivden çıkarın. (SDK'yı zaten indirdiyseniz bu adımı atlayın)
  2. Awesome Drawing Quiz Unity projesini açın ve Assets > Import Package > Custom Package'e (Öğeler > Paket İçe Aktar > Özel Paket) gidin.
  3. Arşivden çıkarılan SDK'dan Firebase Analytics SDK'sını (dotnet4/FirebaseAnalytics.unitypackage) içe aktarın.
  4. Unity paketini içe aktarma penceresinde İçe aktar'ı tıklayın.

3. Firebase projesini konsoldan açma

Bir sonraki adıma geçmeden önce Firebase konsolunda projeyi açın. Bu projeyi AdMob+Firebase 101 Codelab'in "Firebase Projesi Kurulumu" adımında oluşturmuştunuz.

e0a028059c9e00cb.png

4. Uygulama etkinlikleri dönüşüm hunisi oluşturma

Uygulama içindeki kullanıcı etkinliğini izlemek için eklediğiniz birkaç uygulama etkinliği olabilir. Her uygulama etkinliğinin raporunu okuyarak toplam sayı, kullanıcı başına ortalama sayı, demografi gibi etkinlikle ilişkili ayrıntıları edinebilirsiniz.

Ancak belirli bir etkinliğe odaklanmak yerine bir dizi etkinliğin tamamlanma oranını görmek isterseniz ne yapmanız gerekir? 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 tamamlama oranı Etkinlikler: ad_reward_prompt, ad_reward_impression, ad_reward45c9542dfa663014.png

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

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

Bazı dönüşüm hunileri oluşturduktan sonra bunlara Firebase konsolundaki Dönüşüm hunileri menüsünden erişebilirsiniz. Listede dönüşüm hunisi adını tıklayarak her bir dönüşüm hunisinin ayrıntılı analizini görebilirsiniz.

620c0e84587c8ad4.png

Örneğin, Seviye başarı oranı'nı tıklayın. Dönüşüm hunisi ayrıntıları aşağıdaki gibi gösterilir:

c889f9b6ece15847.png

Yukarıdaki ekran görüntüsünde, bir seviyeye başladıktan (level_start etkinliğini tetikledikten) sonra seviyeyi tamamlayan (level_success etkinliğini tetikleyen) kullanıcıların yüzdesini görebilirsiniz. Burada, kullanıcıların% 46,2'sinin seviyeyi geçtiğini 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, dönem boyunca 116 deneme (level_start etkinliğini tetikledi) ve 57 tamamlama (level_success etkinliğini tetikledi) gerçekleşti.

Etkinliklere dayalı tamamlama oranı (%49,1), kullanıcıya dayalı orandan (%46,2) biraz daha yüksek olduğundan diğerlerinden daha iyi performans gösteren birkaç kişi olduğunu söyleyebilirsiniz.

5. Remote Config'i uygulamaya entegre etme

Uygulama etkinliklerine ve dönüşüm hunisine göre uygulamanızla ilgili bazı analizler elde edebileceğiniz için uygulamanızı optimize etmek isteyebilirsiniz. Bu işlem genellikle uygulamadaki parametre değerinin hassas bir şekilde ayarlanmasını içerir. Bu parametrelerin değerini değiştirmek için uygulamayı güncellemeniz gerekir. Böylece değişiklikler kullanıcılara uygulanabilir.

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

Bu Codelab'de, Remote Config'i kullanarak ödül miktarını (ödüllü video reklam izlendikten sonra açıklanacak harf sayısı) uygulama güncellemesi yapmadan nasıl ayarlayacağınızı öğreneceksiniz.

Firebase Remote Config SDK'sını ekleme

  1. Firebase Unity SDK 5.5.0'ı indirip uygun bir konumda arşivden çıkarın.
  2. Awesome Drawing Quiz Unity projesini açın ve Assets > Import Package > Custom Package'e (Öğeler > Paket İçe Aktar > Özel Paket) gidin.
  3. Arşivden çıkarılan SDK'dan Remote Config SDK'sını (dotnet4/FirebaseRemoteConfig.unitypackage) içe aktarın.
  4. Unity paketini içe aktarma penceresinde İçe aktar'ı tıklayın.

Firebase.RemoteConfig'i içe aktarın.

Tam nitelikli adı kullanmak zorunda kalmadan Firebase.RemoteConfig'deki türü kullanmanıza olanak tanımak 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 {
    ...
}

Remote Config değerlerini başlatma ve getirme

Remote Config örneğini aşağıdaki şekilde başlatmak için Main.cs içindeki InitAndFetchRemoteConfig() yöntemini değiştirin. GameSettings.KEY_REWARD_AMOUNT, Remote Config'deki parametrenin adını tutar. (Bu alanı yakında bu Codelab'de bildireceksiniz)

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ştirme

Remote Config değerlerini başarıyla getirdiğinizde, bu değerleri 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, Remote Config değerini uygulama başlatıldığında alıp etkinleştirmesini sağlamak için 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 miktarını Remote Config'den getirin

Ödül tutarını Remote Config'den getirmek 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

Ardından, ödül tutarı için yeni bir Remote Config parametresi oluşturarak 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 -> İLK PARAMETRENİZİ EKLEYİN düğmesini tıklayın.

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ılara sunmak için Değişiklikleri Yayınla düğmesini tıklayın.

d6a6aa4a60e06ee9.png

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

Harika Çizim Testi'ndeki ödül tutarı artık uygulama kodu güncellenmeden Firebase konsolunda yapılandırılabilir.

Bu bölümde, ödüllü reklam izlendikten sonra ipucu olarak iki karakter daha göstermesi için ödül tutarını 1'den 2'ye değiştireceksiniz.

reward_amount parametresinin varsayılan değerini güncelleme

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

9a9bd8a26a39bfe3.png

Değişikliği kullanıcılara sunmak için Değişiklikleri yayınla düğmesini tıklayın.

d6a6aa4a60e06ee9.png

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

Uygulama davranışındaki değişikliği onaylamak için projeyi tekrar çalıştırın. Ödüllü reklamı izlemeyi tamamladığınızda, 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 harf daha gösterildi.

7. Ödül tutarını optimize etmek için deneme oluşturma

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

Firebase A/B Testi ile, uygulama güncellemeye veya her denemenin performansını çalıştırmak ve izlemek için ayrı bir araç oluşturmaya gerek kalmadan denemeler yaparak uygulamanın genel kullanıcı deneyimini optimize edebilirsiniz.

Denemeyi tasarlama

Yeni bir deneme oluşturmadan önce denemenin net bir amacını veya hedefini belirlemeniz gerekir. Yeni bir deneme oluşturmadan önce aşağıdaki kontrol listesini incelediğinizden emin olun.

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

Bu Codelab'de, Awesome Drawing Quiz'in günlük kullanıcı etkileşimini en üst düzeye çıkarmak için ödül tutarı değerini optimize etmeye yönelik bir deneme oluşturacaksınız.

Denemeyi oluşturma

Firebase konsolundan Awesome Drawing Quiz projesini açın. A/B testi menüsünü seçin ve 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ün miktarı" olarak adlandırın.

15d552adb61c0b08.png

Hedefleme seçeneklerini yapılandırın. Bu Codelab'de, Awesome Drawing Quiz uygulamasının kullanıcılarının% 100'ünü hedefleyeceksiniz.

61b316741a63050f.png

Denemenin temel amacı, 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 belirleyebilmek için kontrol ve varyant grubunu ayarlayın. Kontrol grubundan reward_amount öğesini seçin ve değerini değiştirmeyin. Varyant grubu için "Daha az ödül" adını verin, ardından reward_amount değerini 1 olarak değiştirin.

10ed7f5b06858519.png

Bu yapılandırmada, "Daha az ödül" grubundaki kişiler ödül olarak bir harf, kontrol grubundaki kişiler ise ödül olarak iki harf alır. Bu nedenle, ödül miktarının kullanıcıları nasıl etkilediğini göreceksiniz.

İncele düğmesini tıkladıktan sonra denemeye genel bakış bölümünü görürsünüz.

ae6477ce79f6265d.png

Denemeyi çalıştırma

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

7131bf9b4fa74fa5.png

8. Denemeyi yönetme

Denemenin ilerleme durumunu görüntüleme

Denemenin ilerleme durumunu Firebase konsolundaki A/B Testi menüsünden kontrol edebilirsiniz. Bu menü aşağıdaki ekran görüntüsüne benzer. Denemeye son 30 dakika içinde katılan kullanıcıların sayısını kartta da görebilirsiniz.

8a7009bdd8871d95.png

Listeden denemeyi tıkladığınızda deneme ayrıntılarını görebilirsiniz. Deneme bir lider (ör. en iyi performansı gösteren varyant) ilan edene kadar "Lider ilan etmek için henüz çok erken" mesajını görürsünüz.

a4e7ca3e3f4711cd.png

Deneme bir süre devam ettikten sonra, deneme süresince toplanan veriler İyileştirmeye genel bakış bölümünde gösterilmeye başlanır. Hangi varyantın daha iyi performans gösterdiğini görmek için her bir 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 kontrol edebilirsiniz. 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

Lideri tüm kullanıcılara sunma

Deneme, en iyi varyantı belirleyecek kadar uzun süre çalıştıktan sonra denemeyi tüm kullanıcılara kullanıma sunabilirsiniz. A/B testi, net bir kazanan belirlediğinde kazanan varyantı tüm kullanıcılara sunmanızı önerir.

86cb6a6c07516634.png

Ancak denemede net bir en iyi varyant belirlenmemiş olsa bile dilediğiniz varyantı tüm kullanıcılara kullanıma sunabilirsiniz.

Deneme ayrıntıları ekranında bağlam 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ği tüm kullanıcılar için etkinleştirmek üzere Değişiklikleri yayınla düğmesini tıklayın.

d65d545620ce93f6.png

9. İşlem tamamlandı

AdMob+Firebase 102 Unity Codelab'ini tamamlamış olmanız gerekir. Bu Codelab'in tamamlanmış kodunu android_studio_folder.png102-complete klasöründe bulabilirsiniz.