Eğitici: Yeni AdMob reklam biçimlerinin benimsenmesini test edin

3. Adım: Uygulamanızın kodundaki Remote Config parametre değerlerini işleyin


Giriş: Firebase'i kullanarak yeni AdMob reklam biçiminin benimsenmesini test edin
1. Adım: Test amaçlı yeni bir reklam birimi çeşidi oluşturmak için AdMob'u kullanın
2. Adım: Firebase konsolunda bir A/B testi ayarlayın

3. Adım: 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: Yeni reklam biçimini kullanıma sunup sunmayacağınıza karar verin


Son adımın sonunda bir Remote Config parametresi ( SHOW_NEW_AD_KEY ) oluşturdunuz. Bu adımda, uygulamanızın koduna, söz konusu parametrenin değerine göre uygulamanızın neyi görüntülemesi gerektiğinin mantığını ekleyeceksiniz ( true (yeni reklamı göster) ve false (yeni reklamı gösterme ).

Gerekli SDK'ları ekleyin

Uygulama kodunuzda Remote Config'i kullanmadan önce, proje derleme dosyalarınıza hem Remote Config SDK'sını hem de Google Analytics için Firebase SDK'sını ekleyin.

Apple platformları

Pod dosyanıza aşağıdaki bölmeleri ekleyin ve yükleyin:

pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'

Android

build.gradle dosyanıza aşağıdaki kütüphane bağımlılıklarını ekleyin:

implementation 'com.google.android.gms:play-services-ads:23.0.0'
implementation 'com.google.firebase:firebase-analytics:21.6.1'
implementation 'com.google.firebase:firebase-config:21.6.3'

Birlik

Firebase Unity SDK'yı indirip yükleyin, ardından aşağıdaki Unity paketlerini projenize ekleyin:

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Remote Config örneğini yapılandırma

Remote Config parametre değerlerini kullanmak için Remote Config örneğini, istemci uygulaması örneği için yeni değerler getirecek şekilde yapılandırın.

Bu örnekte Remote Config, yeni parametre değerlerini saatte bir kontrol edecek şekilde yapılandırılmıştır.

Süratli

remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings

Amaç-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)

Birlik

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 getir ve etkinleştir

Yeni parametre değerlerini kullanmaya başlayabilmesi için Remote Config parametrelerini getirip etkinleştirin.

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 getirilmesi gerekeceğinden, bu çağrıyı uygulamanızın yükleme aşamasında mümkün olduğunca erken yapmak isteyeceksiniz.

Süratli

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

Amaç-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()
        }

Birlik

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ğitimin başlarındaki 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 göstermeyeceğini ( true parametre değeri) veya göstermemesi gerektiğini ( false parametre değeri) belirlemek için loadAdUnit() işlevinde önceden getirilen Remote Config değerini kullanın.

Süratli

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

Amaç-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.
    }
}

Birlik

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 ekleyin

Hangi reklam deneyiminin yükleneceğini belirlemek için uygulama kodunuzda bu Remote Config parametresinin değerini kontrol etmeniz gereken başka alanlar da vardır. Örneğin, kullanıcı mevcut reklamı görüntülemeyi tamamladıktan sonra bir reklamın yeniden yüklenip yüklenmeyeceğine karar verebilirsiniz.

Herhangi bir parametre değeri değişikliğini almak için önce getir ve etkinleştir çağrıları yapılmalıdır (örneğin, yeni bir denemeyi sonlandırmaya veya oluşturmaya karar verirseniz).

Buradan, aşağıdaki çağrıları kullanarak parametrenin değerini her zaman kontrol edebilirsiniz:

Süratli

remoteConfig["showNewAdKey"].boolValue

Amaç-C

self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin+KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Birlik

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Bu çağrılar, Firebase konsolunda önceki çağrılarda getirilip etkinleştirilen herhangi bir değişiklik yapılmadığı sürece, bir uygulama örneğinin kontrol grubuna mı yoksa yeni reklam varyantı grubuna mı yerleştirildiğine bağlı olarak her zaman aynı değeri döndürecektir.




2. Adım : Firebase konsolunda bir A/B testi ayarlayın 4. Adım : A/B testini başlatın ve test sonuçlarını inceleyin