3. adım: Uygulamanızın kodunda Remote Config parametre değerlerini işleyin
Giriş: Optimize edin AdMob Firebase reklam sıklığı |
1. Adım: Oluşturmak için AdMob kullanın test için yeni reklam birimi varyantları |
2. Adım: Ayarlama Firebase konsolunda bir A/B testi |
. Adım 3: Uygulamanızın kodundaki Remote Config parametre değerlerini işleyin |
4. Adım: Başlat Firebase konsolunda A/B testini yapın ve test sonuçlarını 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 oluşturdunuz.
(INTERSTITIAL_AD_KEY
). Bu adımda mantığı uygulamanızın koduna ekleyeceksiniz.
parametrenin değerine göre
uygulamanızın ne göstermesi gerektiğiyle ilgili olmalıdır.
Gerekli SDK'ları ekleyin
Uygulama kodunuzda Remote Config kullanmadan önce Google Analytics için Remote Config SDK'sını ve Firebase SDK'sını kullanarak oluşturmanız gerekir.
Swift
Aşağıdaki kapsülleri kapsül dosyanıza ekleyin ve yükleyin:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Objective-C
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.3.0'
implementation 'com.google.firebase:firebase-analytics:22.0.2'
implementation 'com.google.firebase:firebase-config:22.0.0'
Unity
Firebase Unity SDK'yı indirip yükleyin, ardından aşağıdaki Unity'yi ekleyin paketlerini yeniden eklemeniz gerekir:
FirebaseAnalytics.unitypackage
FirebaseRemoteConfig.unitypackage
Remote Config örneğini yapılandırın
Remote Config parametre değerlerini kullanmak için Remote Config örneğini ayarlayarak örneğidir.
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 öğesini getir ve etkinleştir
Remote Config yeni parametre değerlerini ekleyin.
Bu aramayı, uygulamanızın yükleme aşamasında mümkün olduğunca erken yapmak istersiniz çünkü bu çağrı eşzamansız olduğundan ve Remote Config değerine ihtiyacınız olacak. uygulamanızın hangi reklamın gösterileceğini bilmesi için önceden getirilir.
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 oluşturduğunuz Remote Config parametresini işlemeye hazır adımları uygulayın.
Remote Config parametre değerini kullanın
loadAdUnit()
işlevinde önceden getirilen Remote Config değerini kullanarak şu işlemleri yapabilirsiniz:
bu uygulama örneği için hangi reklam sıklığı varyantının gösterilmesi gerektiğini belirler.
Swift
private func loadAdUnit() {
let adUnitId = remoteConfig["INTERSTITIAL_AD_KEY"].stringValue;
let request = GADRequest()
GADInterstitialAd.load(withAdUnitID: adUnitId,
request: request,
completionHandler: { [self] ad, error in
if let error = error {
print("Failed to load: \(error.localizedDescription)")
return
}
interstitial = ad
// Register for callbacks.
}
)
}
// Register for callbacks.
Objective-C
- (void)loadAdUnit {
NSString *adUnitId =
self.remoteConfig[@"INTERSTITIAL_AD_KEY"].stringValue;
GADRequest *request = [GADRequest request];
[GADInterstitialAd loadAdWithAdUnitId:adUnitId
request:request
completionHandler:^(GADInterstitialAd *ad,
NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@",
[error localizedDescription]);
return;
}
self.interstitial = ad;
}];
}
Java
private void loadAdUnit() {
String adUnitId =
mFirebaseRemoteConfig.getString("INTERSTITIAL_AD_KEY");
// Load Interstitial Ad (assume adUnitId not null)
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(this, adUnitId, adRequest, new
InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd intertitialAd) {
mInterstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
mInterstitialAd = null;
}
});
}
Kotlin+KTX
private fun loadAdUnit() {
String adUnitId = remoteConfig.getString("INTERSTITIAL_AD_KEY")
var adRequest = AdRequestBuilder.Builder().build()
AdRequestBuilder.load(this, adUnitId, adRequest, object :
InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
mInterstitialAd = interstitialAd
}
})
}
Unity
void LoadAdUnit() {
// Note that you may want to encode and parse two sets of ad unit IDs for
// Android / iOS in the Unity implementation.
String adUnitId = remoteConfig.GetValue("INTERSTITIAL_AD_KEY").StringValue;
this.interstitial = new InterstitialAd(adUnitId);
}
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ı aşağıdaki adımları uygulayarak bir reklamın yeniden yüklenip yüklenmeyeceğine karar verebilirsiniz: mevcut dosyayı görüntülemeyi bitirdi.
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["INTERSTITIAL_AD_KEY"].stringValue
Objective-C
self.remoteConfig[@"INTERSTITIAL_AD_KEY"].stringValue;
Java
mFirebaseRemoteConfig.getString(INTERSTITIAL_AD_KEY)
Kotlin+KTX
remoteConfig.getString(INTERSTITIAL_AD_KEY)
Unity
remoteConfig.GetValue("INTERSTITIAL_AD_KEY").StringValue
Bu çağrılar, hedefe bağlı olarak, bir uygulama örneği için kontrol grubuna mı yoksa yeni reklam varyantı gruplarından birine mi yerleştirildiğini, Firebase konsolunda getirilen herhangi bir değişiklik yapılmadıysa önceki görüşmelerde etkinleştirildi.
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