Eğitim: AdMob, Google Analytics ve Firebase'i kullanarak karma para kazanma modelini optimize edin

3. adım: Firebase Remote Config'ı belirli reklam deneyimlerini gösterecek şekilde ayarlayın


Giriş: AdMob, Google Analytics ve Firebase'i kullanarak karma para kazanma yöntemini optimize etme
1. adım: Görüntülü reklamlar için yeni reklam birimleri oluşturmak üzere AdMob simgesini kullanın.
2. adım: Google Analytics'i ayarlayın

3. adım: Belirli reklam deneyimlerini göstermek için Firebase Remote Config ayarlarını yapın


Son adımın sonunda Google Analytics kitleleri hakkında bilgi edindiniz. Bu adımda, "Satın alanlar" kitlesinden yararlanan bir Remote Config boolean kontrollü parametre (ad_control_switch olarak adlandırılır) oluşturacaksınız. Ardından, uygulamanızın bu parametrenin değerine göre ne göstermesi gerektiğiyle ilgili mantığı uygulamanızın koduna eklersiniz.

Firebase konsolunda Remote Config parametrelerini ve koşullarını ayarlama

  1. Firebase konsolunda Firebase projenizi açın.

  2. Soldaki bölmede Etkileşim bölümünü genişletin ve Remote Config'i seçin.

  3. Yapılandırma oluştur'u (veya daha önce Remote Config kullandıysanız Parametre ekle'yi) tıklayın.

  4. Parametre oluştur panelinde aşağıdaki adımları tamamlayın:

    1. Parametre adı alanına ad_control_switch girin.

    2. Data type açılır menüsünden Boolean'ı seçin.

    3. Yeni oluştur'u tıklayın ve Yeni koşul oluştur'u seçin.

  5. Yeni bir koşul tanımlayın iletişim kutusunda aşağıdaki adımları tamamlayın:

    1. Ad alanına Purchasers Group (veya koşul için kolayca tanımlanabilir başka bir ad) girin.

    2. Geçerli olduğu durumlar... açılır menüsünden Kullanıcı kitleleri'ni seçin.

    3. Kitleleri seçin açılır menüsünden Satın alanlar'ı seçin.

    4. Koşulu kaydet'i tıklayın.

  6. Parametre oluştur paneline dönerek aşağıdaki adımları tamamlayın:

    1. Purchasers Group (Satın Alanlar Grubu) Değeri için false'u seçin.

    2. Varsayılan değer için true'yu seçin.

  7. Kaydet'i ve ardından Değişiklikleri yayınla'yı tıklayın.

Bu yapılandırma, kullanıcının "Satın Alanlar" kitlesinde olup olmadığını (yani ücretli kullanıcı olup olmadığını) kontrol eder:

  • Kullanıcı "Alıcılar" kitlesindeyse Remote Config, ad_control_switch parametresi için false değerini döndürür.

  • Kullanıcı "Satın Alanlar" kitlesinde değilse Remote Config, ad_control_switch parametresi için true değerini döndürür.

Aşağıdaki adımlarda, bu parametre değerlerini işlemek için uygulamanızda Remote Config'ı uygulayacaksınız.

Uygulamanıza Remote Config SDK'sını ekleme

Uygulama kodunuzda Remote Config kullanmadan önce uygulamanızın kod tabanına Remote Config SDK'sını ekleyin. Uygulamanızda bu eğitimin önceki adımlarından Google Mobile Ads (AdMob) SDK'sının ve Firebase için Google Analytics SDK'sının yüklü olması gerektiğini unutmayın.

Swift

Podfile dosyanıza Remote Config kapsülünü ekleyin ve yükleyin:

pod 'Firebase/RemoteConfig'

Android

Remote Config kitaplık bağımlılığını build.gradle dosyanıza ekleyin:

implementation 'com.google.firebase:firebase-config:23.1.0'

Flutter

Remote Config eklentisini yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:

flutter pub add firebase_remote_config

Unity

En yeni Firebase Unity SDK'yı indirip yükleyin ve ardından Remote Config paketini projenize ekleyin:
FirebaseRemoteConfig.unitypackage

Remote Config örneğini yapılandırma

Uygulamanızın Remote Config parametre değerlerini kullanabilmesi 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

Kotlin

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

Java

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Flutter

remoteConfig = FirebaseRemoteConfig.instance;
  final configSettings = FirebaseRemoteConfigSettings(
    minimumFetchInterval: Duration(hours: 1),
  );
  await remoteConfig.setConfigSettings(configSettings);

  // Use the `onConfigUpdated` callback to listen for changes to the config settings.
  remoteConfig.onConfigUpdated.listen((_) {
    print('Config settings confirmed');
  });

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 değerlerini getirin ve etkinleştirin

Yeni parametre değerlerini kullanmaya başlayabilmesi için Remote Config parametresini 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()
}

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

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

Flutter

remoteConfig = FirebaseRemoteConfig.instance;

// Fetch and activate the latest Remote Config values.
final updated = await remoteConfig.fetchAndActivate();

// Check if the config params were updated successfully.
if (updated) {
  print('Config params updated');
} else {
  print('Config params failed to update');
}

// Load the ad unit.
_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 adımda daha önce oluşturduğunuz Remote Config parametresini işleyecek şekilde yapılandırıldı.

Remote Config parametre değerini kullanın

Uygulama örneğinin aşağıdakilerden birini yapıp yapmayacağını belirlemek için loadAdUnit() işlevinde önceden getirilmiş Remote Config değerini kullanın:

  • ad_control_switch parametre değeri true olarak çözümlenir: Geçiş reklamını gösterin (çünkü kullanıcı ücretli olmayan bir kullanıcıdır).

  • ad_control_switch parametre değeri false olarak çözümlenir: Reklamı gösterme (çünkü kullanıcı ücretli bir kullanıcıdır).

Swift

private func loadAdUnit() {
  let showAds = remoteConfig["ad_control_switch"].boolValue

  if showAds {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Kotlin

private fun loadAdUnit() {
  var showAds = remoteConfig.getBoolean(ad_control_switch)

  if (showAds) {
      // Load interstitial ad (implemented ad unit)
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Don't show ads.
    }
}

Java

private void loadAdUnit() {
    boolean showAds =
      mFirebaseRemoteConfig.getBoolean(ad_control_switch);

    if (showAds) {
      // Load interstitial ad (implemented ad unit)
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Don't show ads.
    }
}

Flutter

void _loadAdUnit() {
  bool showAds = remoteConfig.getBool(ad_control_switch);

  if (showAds) {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Unity

void LoadAdUnit() {
  bool showAds =
      remoteConfig.GetValue("ad_control_switch").BooleanValue;

  if (showAds) {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Uygulamanızı yayınlama

Reklamın gösterilip gösterilmeyeceğine dair mantık kod tabanınızda olduğundan, bu mantığı içeren yeni bir uygulama sürümü yayınlamanız gerekir.

Bu eğitici programdaki adımları uyguladıysanız uygulamanız, kullanıcılarınıza anında özelleştirilmiş bir uygulama içi reklam deneyimi sunmaya başlamalıdır. Reklam gelirinizi hem AdMob hesabınızda hem de Google Analytics kontrol panellerinde (Firebase konsolunda veya Google Analytics kullanıcı arayüzünde) izleyebilirsiniz.


Hepsi bu kadar. AdMob, Google Analytics ve Firebase kullanarak karma para kazanmayı optimize etme eğitimini tamamladınız.




2. adım: Google Analytics'i ayarlayın