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üncellemeleri 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.
Bu codelab'i uygularken herhangi bir sorunla (kod hataları, dilbilgisi 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'i kullanma
- Firebase A/B testi nasıl çalıştırılır?
Gerekenler
- Android Studio 4.1 veya daha yeni bir sürüm
- 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
AdMob ile ilgili deneyim düzeyinizi nasıl değerlendirirsiniz?
Firebase ile ilgili deneyim seviyenizi nasıl değerlendirirsiniz?
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-android-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-android
Depoda aşağıdaki dört klasör bulunur:
101-base: Bu codelab'de oluşturacağınız başlangıç kodu.
101-complete_and_102-base: Bu codelab'in tamamlanmış kodu ve 102 numaralı codelab'in başlangıç kodu.
102-complete: 102 numaralı Codelab'in tamamlanmış kodu.
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.
Proje artık Android Studio'da açık olmalıdır.
Firebase yapılandırma dosyasını Android projesine ekleme
- Awesome Drawing Quiz projesinin genel bakış ekranında Ayarlar simgesini tıklayın.

- Genel sekmesinde, google-service.json dosyasını indirmek için Android uygulamasını seçin.
- Yapılandırma dosyasını projenizdeki
app dizinine taşıyı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.

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:
- Firebase konsoluna gidin ve daha önce oluşturduğunuz Awesome Drawing Quiz projesini seçin.
- Dönüşüm hunileri'ni tıklayın.
- YENİ DÖNÜŞÜM HUNİSİ'ni tıklayın.
- Dönüşüm hunisi için bir ad ve açıklama girin.
- Dönüşüm hunisinde adım olarak kullanmak istediğiniz ilk iki etkinliği seçin.
- Her ek adım için BAŞKA BİR ETKİNLİK EKLE'yi tıklayın ve bir etkinlik seçin.
- 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_success
2. Dönüşüm hunisi adı: Ödüllü reklam tamamlama oranı Etkinlikler: ad_reward_prompt, ad_reward_impression, ad_reward
3. Dönüşüm hunisi adı: Oyunu tamamlama oranı Etkinlikler: game_start, game_complete
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.

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

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:

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.
Uygulama bağımlılığına Remote Config'i ekleyin
Firebase Remote Config'i uygulama bağımlılığına 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ılabilir olduğundan emin olmak için projenizi Gradle dosyalarıyla senkronize edin. Projenizi Gradle dosyalarıyla senkronize etmek için File > Sync Project with Gradle Files (Dosya > Projeyi Gradle Dosyalarıyla Senkronize Et) menüsünü seçin.
Remote Config parametresi için varsayılan bir değer ayarlama
Değerlerin Remote Config'den getirilmesi için ağ bağlantısı gerekir. Ağın kullanılamadığı durumlarda her Remote Config parametresi için varsayılan bir değer tanımlamanız gerekir.
res/xml klasöründe remote_config_defaults.xml dosyasını oluşturun. Ardından, ödül tutarının varsayılan değerini reward_amount) olarak ayarlayın.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>reward_amount</key>
<value>1</value>
</entry>
</defaultsMap>
reward_amount, Remote Config'deki parametrenin adıdır.
Ödül miktarını Remote Config'den getirin
AwesomeDrawingQuiz.kt sınıfını, RemoteConfig örneğine referans tutacak şekilde GameSettings sınıfı olarak değiştirin.
RemoteConfig ö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ı unutmayın. (fetch(0L) işlevini ç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 tutarını Remote Config'den getirmek 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
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.

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.

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

6. Remote Config ile uygulama davranışını değiştirme
Harika Çizim Testi'ndeki ödül miktarı artık uygulama kodu güncellenmeden Firebase konsolunda yapılandırılabilir.
Bu bölümde, ödüllü reklam izlendikten sonra uygulamada iki karakter daha ipucu olarak gösterilmesi 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.

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

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.

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

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

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.

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.

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.

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.

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.

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.

Deneme bir süre devam ettikten sonra, İyileştirmeye genel bakış bölümünde deneme süresince toplanan verileri göstermeye başlar. 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.

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

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.

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ü (
) ve ardından Varyantı kullanıma sun'u tıklayın.

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.

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.

9. İşlem tamamlandı
AdMob+Firebase 102 Android Codelab'ini tamamlamış olmanız gerekir. Bu Codelab'in tamamlanmış kodunu
102-complete klasöründe bulabilirsiniz.

