Eğitim: Yeni AdMob reklam biçimlerinin kullanımını test etme

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

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

4. adım: A/B testini başlatın ve Firebase konsolunda test sonuçlarını inceleyin
5. adım: Yeni reklam biçiminin kullanıma sunulup sunulmayacağına karar verin


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 pod dosyanıza ekleyin ve yükleyin:

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

Android

build.gradle dosyanıza aşağıdaki kitaplık bağımlılıkları ekleyin:

implementation 'com.google.android.gms:play-services-ads:23.6.0'
implementation 'com.google.firebase:firebase-analytics:22.1.2'
implementation 'com.google.firebase:firebase-config:22.0.1'

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ırma

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, her saatte bir yeni parametre değerlerini kontrol edecek şekilde yapılandırılmıştır.

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

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 dosyasını getirin ve etkinleştirin

Yeni parametre değerlerini kullanmaya başlayabilmesi için Remote Config parametrelerini alın ve 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 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

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

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 ekleyin

Uygulama kodunuzda, hangi reklam deneyiminin yükleneceğini belirlemek için 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 bitirdikten sonra bir reklamın yeniden yüklenip yüklenmeyeceğine karar verebilirsiniz.

Parametre değeri değişikliklerini almak için ilk önce getirme ve etkinleştirme çağrıları yapılmalıdır (örneğin, sonlandırmaya veya yeni bir deneme oluşturmaya karar verirseniz).

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

Swift

remoteConfig["showNewAdKey"].boolValue

Objective-C

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

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin

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.




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