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?
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-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:
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.
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.
- 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.)
- Awesome Drawing Quiz Unity projesinde. Projede Assets > Import Package > Custom Package (Öğeler > Paket İçe Aktar > Özel Paket) bölümüne gidin.
- İ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.

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

Firebase yapılandırma dosyalarını Unity projesine ekleme
- Awesome Drawing Quiz projesinin genel bakış ekranında Ayarlar simgesini tıklayın.

- 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.
- Her iki yapılandırma dosyasını da Unity projesindeki
Assets klasörüne taşıyın.

Firebase Analytics SDK'sını ekleme
- Firebase Unity SDK 5.5.0'ı indirip uygun bir konumda arşivden çıkarın. (SDK'yı zaten indirdiyseniz bu adımı atlayın)
- Awesome Drawing Quiz Unity projesini açın ve Assets > Import Package > Custom Package'e (Öğeler > Paket İçe Aktar > Özel Paket) gidin.
- Arşivden çıkarılan SDK'dan Firebase Analytics SDK'sını (
dotnet4/FirebaseAnalytics.unitypackage) içe aktarın. - 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.

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.
Firebase Remote Config SDK'sını ekleme
- Firebase Unity SDK 5.5.0'ı indirip uygun bir konumda arşivden çıkarın.
- Awesome Drawing Quiz Unity projesini açın ve Assets > Import Package > Custom Package'e (Öğeler > Paket İçe Aktar > Özel Paket) gidin.
- Arşivden çıkarılan SDK'dan Remote Config SDK'sını (
dotnet4/FirebaseRemoteConfig.unitypackage) içe aktarın. - 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.

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

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

İ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 Unity Codelab'ini tamamlamış olmanız gerekir. Bu Codelab'in tamamlanmış kodunu
102-complete klasöründe bulabilirsiniz.

