3. adım: Uygulamanızın kodunda Remote Config parametre değerlerini işleyin
Giriş: Firebase kullanarak yeni AdMob reklam biçiminin kullanımını test edin |
1. adım: Test için yeni bir reklam birimi varyantı oluşturmak üzere AdMob kullanın |
2. Adım: Firebase konsolunda A/B testi oluşturun |
. Adım 3: Uygulamanızın kodundaki Remote Config parametre değerlerini işleyin |
4. adım: A/B testini başlatın ve test sonuçlarını Firebase konsolunda inceleyin |
5. adım: Karar ver ya da yeni reklam biçiminin kullanıma sunulup sunulmayacağı |
Son adımın sonunda bir Remote Config parametresi (SHOW_NEW_AD_KEY
) oluşturdunuz. Bu adımda, uygulamanızın bu parametrenin değerine göre ne göstermesi gerektiğine dair mantığı uygulamanızın koduna ekleyeceksiniz: true
(yeni reklamı göster) ve false
(yeni reklamı gösterme).
Gerekli SDK'ları ekleyin
Uygulama kodunuzda Remote Config kullanmadan önce hem Remote Config SDK'sını hem de Google Analytics için Firebase SDK'sını proje derleme dosyalarınıza ekleyin.
Apple platformları
Aşağıdaki kapsülleri kapsül dosyanıza ekleyin ve yükleyin:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Android
build.gradle
dosyanıza şu kitaplık bağımlılıklarını ekleyin:
implementation 'com.google.android.gms:play-services-ads:23.4.0'
implementation 'com.google.firebase:firebase-analytics:22.1.2'
implementation 'com.google.firebase:firebase-config:22.0.0'
Unity
Firebase Unity SDK'sını indirip yükleyin, ardından projenize aşağıdaki Unity paketlerini ekleyin:
FirebaseAnalytics.unitypackage
FirebaseRemoteConfig.unitypackage
Remote Config örneğini yapılandırın
Remote Config parametre değerlerini kullanmak için Remote Config örneğini, istemci uygulaması örneği için yeni değerleri alacak şekilde yapılandırın.
Bu örnekte, Remote Config yeni parametreyi kontrol edecek şekilde yapılandırılmıştır değerlerini yalnızca bir kez kontrol edin.
Swift
remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
Objective-C
self.remoteConfig = [FIRRemoteConfig remoteConfig];
FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
remoteConfigSettings.minimumFetchInterval = 3600;
self.remoteConfig.configSettings = remoteConfigSettings;
Java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Kotlin+KTX
remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
Unity
var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
var configSettings = new ConfigSettings {
MinimumFetchInternalInMilliseconds =
(ulong)(new TimeSpan(1, 0, 0).TotalMilliseconds)
};
remoteConfig.SetConfigSettingsAsync(configSettings)
.ContinueWithOnMainThread(task => {
Debug.Log("Config settings confirmed");
}
Remote Config'i getirme ve etkinleştirme
Remote Config yeni parametre değerlerini ekleyin.
Bu çağrı eşzamansız olduğundan ve uygulamanızın reklamı gösterip göstermeyeceğini bilmesi için Remote Config değerinin önceden getirilmiş olması gerektiğinden, bu çağrıyı uygulamanızın yükleme aşamasında mümkün olduğunca erken yapmak istersiniz.
Swift
remoteConfig.fetch() { (status, error) -> Void in
if status == .success {
print("Config fetched!")
self.remoteConfig.activate() { (changed, error) in
// ...
}
} else {
print("Config not fetched")
print("Error: \(error?.localizedDescription ?? "No error available.")")
}
self.loadAdUnit()
}
Objective-C
[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
if (status == FIRRemoteConfigFetchStatusSuccess) {
NSLog(@"Config fetched!");
[self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
// ...
}];
} else {
NSLog(@"Config not fetched");
NSLog(@"Error %@", error.localizedDescription);
}
[self loadAdUnit];
}];
Java
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG, "Config params updated: " + updated);
} else {
Log.d(TAG, "Config params failed to update");
}
loadAdUnit();
}
});
Kotlin+KTX
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
Log.d(TAG, "Config params updated: $updated")
} else {
Log.d(TAG, "Config params failed to update")
}
loadAdUnit()
}
Unity
remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
if (task.IsFaulted) {
Debug.LogWarning("Config params failed to update");
} else {
Debug.Log("Config params updated: " + task.Result);
}
LoadAdUnit();
});
Uygulamanız artık bu eğitimde daha önce A/B testi kurulumu sırasında oluşturduğunuz Remote Config parametresini işlemeye hazır.
Remote Config parametre değerini kullanın
Uygulama örneğinin yeni ödüllü geçiş reklamı birimini gösterip (true
parametre değeri) göstermeyeceğini (false
parametre değeri) belirlemek için loadAdUnit()
işlevinde önceden getirilmiş Remote Config değerini kullanın.
Swift
private func loadAdUnit() {
let showNewAdFormat = remoteConfig["users"].boolValue
if showNewAdFormat {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// as per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Objective-C
- (void)loadAdUnit {
BOOL showAds = self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;
if (showAds) {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Java
private void loadAdUnit() {
boolean showNewAdFormat =
mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY);
if (showNewAdFormat) {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Kotlin+KTX
private fun loadAdUnit() {
var showNewAdFormat = remoteConfig.getBoolean(SHOW_NEW_AD_KEY)
if (showNewAdFormat) {
// Load Rewarded Interstitial Ad.
// This should load your new implemented ad unit
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Unity
void LoadAdUnit() {
bool showNewAdFormat =
remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue;
if (showNewAdFormat) {
// Load Rewarded Interstitial Ad (new implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Show the existing ad unit.
}
}
Parametre değeri için başka kontroller ekleme
Uygulama kodunuzda kodu kontrol etmeniz gereken başka alanlar da vardır. hangi reklam deneyiminin sunulacağını belirlemek için bu Remote Config parametresinin değeri yüklendi. Örneğin, kullanıcı mevcut reklamı görüntülemeyi bitirdikten sonra bir reklamın yeniden yüklenip yüklenmeyeceğine karar verebilirsiniz.
Parametre değerlerini almak için önce getirme ve etkinleştirme çağrıları yapılmalıdır. (örneğin, sonlandırmaya veya yeni bir deneme oluşturmaya karar verdiğinizde)
Buradan, şu çağrılar:
Swift
remoteConfig["showNewAdKey"].boolValue
Objective-C
self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;
Java
mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)
Kotlin+KTX
remoteConfig.getBoolean(SHOW_NEW_AD_KEY)
Unity
remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue
Firebase konsolunda önceki çağrılarda getirilen ve etkinleştirilen herhangi bir değişiklik yapılmadığı sürece, bu çağrılar kontrol grubuna mı yoksa yeni reklam varyantı grubuna mı yerleştirildiğine bağlı olarak bir uygulama örneği için her zaman aynı değeri döndürür.
Firebase konsolunda bir A/B testi oluşturun 2. Adım: 4. Adım: A/B testini başlatın ve test sonuçlarını inceleyin