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ş: Test etme Firebase kullanarak yeni AdMob reklam biçimi kullanımı
1. Adım: Kullanım alanları Test edilecek yeni bir reklam birimi varyantı oluşturmak için AdMob
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. (SHOW_NEW_AD_KEY). Bu adımda, uygulamanızın koduna örnek olarak söz konusu parametrenin değerine göre uygulamanızda nelerin gösterilmesi gerektiği: true (yeni reklamı gösterir) ve false (yeni reklamı gösterme) karşılaştırması.

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.

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.3.0'
implementation 'com.google.firebase:firebase-analytics:22.1.0'
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 reklamı gösterip göstermeyeceğ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: uygulama örneğinin gösterilip gösterilmeyeceğini (true parametre değeri) mi yoksa yeni ödüllü geçiş reklamı birimini göstermez (false parametre değeri).

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ı 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["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

Bu çağrılar, hedefe bağlı olarak, bir uygulama örneği için kontrol grubuna mı yoksa yeni reklam varyantı grubuna mı yerleştirildiğine Firebase konsolunda getirilen ve etkinleştirilen tüm değişiklikler yapıldığında bu görüşmede bahsetmiştim.




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