AdMob+Firebase 102 Android: 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üncellemeleri 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 belirleyebilirsiniz? Play Console'daki kullanıcı yorumlarına güvenebilirsiniz. Ancak, net bir karar vermek için yeterince net olmayabilir.

Bu codelab'de çalışırken herhangi bir sorunla (kod hataları, dil bilgisi hataları, net olmayan ifadeler vb.) karşılaşırsanız lütfen codelab'in sol alt köşesindeki Hata bildir bağlantısını kullanarak sorunu bildirin.

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

  • Android Studio 4.1 ve sonraki sürümleri
  • 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

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

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

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

Android Studio'yu başlatın ve karşılama ekranında "Projeyi içe aktar"ı seçin. Ardından, indirdiğiniz koddan 101-complete_and_102-base dizinini seçin.

Artık proje Android Studio'da açık olmalıdır.

Firebase yapılandırma dosyasını Android projesine ekleyin

  1. Muhteşem Çizim Testi projesinin genel bakış ekranından Ayarlar simgesini tıklayın. 9bacb5ada7cbaaf6.png
  2. Genel sekmesinde, google-service.json dosyasını indirmek için Android uygulamasını seçin.
  3. Yapılandırma dosyasını projenizdeki android_studio_folder.pngapp dizinine taşıyın. 797cde1881a38fdf.png

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.

Uygulama bağımlılığına Remote Config'i ekleyin

Uygulama bağımlılığına Firebase Remote Config'i ekleyerek başlayalım.

app/build.gradle

apply plugin: 'com.android.application'

android {
    ...
}

dependencies {
    ...

    // TODO: Add Firebase Remote Config dependency (102)
    implementation 'com.google.firebase:firebase-config-ktx'

    ...
}

...

Projenizi gradle dosyalarıyla senkronize etme

Tüm bağımlılıkların uygulamanızda kullanılabildiğinden emin olmak için projenizi gradle dosyalarıyla senkronize edin. Dosya > Projenizi gradle dosyalarıyla senkronize etmek için Projeyi Gradle Dosyalarıyla Senkronize Edin menüsünü kullanın.

Remote Config parametresinin varsayılan değerini ayarlayın

Değerleri Remote Config'den almak için ağ bağlantısı gerekir. Ağın kullanılamadığı durumlarda her bir Remote Config parametresi için varsayılan bir değer tanımlamanız gerekir.

remote_config_defaults.xml dosyasını res/xml klasörü altında oluşturun. Ardından, ödül tutarı için varsayılan bir değer belirleyin (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>

Remote Config'deki parametrenin adının reward_amount olduğunu unutmayın.

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

AwesomeDrawingQuiz.kt öğesini değiştirerek GameSettings sınıfını RemoteConfig örneğine referans içerecek şekilde değiştirin.

RemoteConfig örneğinin, geliştirme sürecine yardımcı olmak için hata ayıklama modunda sunucudan en son değerleri alacak şekilde yapılandırıldığını unutmayın. (fetch(0L) yöntemini çağırarak minimum getirme aralığını sıfır saniye olarak ayarlayın)

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

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

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

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üllü Reklamı izledikten sonra uygulamanın ipucu olarak iki karakteri daha göstermesini sağlamak için ödül miktarını 1'den 2'ye çıkaracaksı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şturun

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 Android Codelab'ini tamamladınız. Bu Codelab için tamamlanmış kodu android_studio_folder.png102-complete klasöründe bulabilirsiniz.