Eğitici: AdMob, Google Analytics ve Firebases'i kullanarak karma para kazanmayı optimize edin

3. Adım: Belirli reklam deneyimlerini göstermek için Firebase Remote Config'i kurun


Giriş: AdMob, Google Analytics ve Firebase'i kullanarak karma para kazanmayı optimize edin
1. Adım: Görüntülü reklamlara yönelik yeni reklam birimleri oluşturmak için AdMob'u kullanın
2. Adım: Google Analytics'i kurun

3. Adım: Belirli reklam deneyimlerini göstermek için Firebase Remote Config'i kurun


Son adımın sonunda Google Analytics kitlelerini öğrendiniz. Bu adımda, "Satın Almacılar" kitlesinden yararlanan, Remote Config boolean kontrollü bir parametre ( ad_control_switch adı verilen) oluşturacaksınız. Daha sonra, söz konusu parametrenin değerine göre uygulamanızın ne göstermesi gerektiğine ilişkin mantığı uygulamanızın koduna ekleyeceksiniz.

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

  1. Firebase konsolunda Firebase projenizi açın.

  2. Sol taraftaki bölmede Engage bölümünü genişletin ve ardından Remote Config'i seçin.

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

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

    1. Parametre adı alanına ad_control_switch değerini girin.

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

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

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

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

    2. Şu durumda geçerlidir: açılır menüsünden Kullanıcı kitlesi/hedefleri seçeneğini seçin.

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

    4. Durumu kaydet'i tıklayın.

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

    1. Alıcı Grubunun Değeri için yanlış seçeneğini seçin.

    2. Varsayılan değer için doğruyu 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 ödeme yapan bir kullanıcı olup olmadığını) kontrol edecektir:

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

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

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

Remote Config SDK'yı uygulamanıza ekleyin

Uygulama kodunuzda Remote Config'i kullanmadan önce Remote Config SDK'sını uygulamanızın kod tabanına ekleyin. Uygulamanızın, bu eğitimin önceki adımlarında yer alan Google Mobile Ads (AdMob) SDK'sına ve Firebase için Google Analytics SDK'sına zaten sahip olması gerektiğini unutmayın.

Süratli

Remote Config bölmesini pod dosyanıza ekleyin ve yükleyin:

pod 'Firebase/RemoteConfig'

Android

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

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

çarpıntı

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

flutter pub add firebase_remote_config

Birlik

En son 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ğerler getirebilecek ş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

Kotlin+KTX

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

çarpıntı

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

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 parametresini getirip etkinleştirin.

Bu çağrıyı uygulamanızın yükleme aşamasında mümkün olduğunca erken yapmak istiyorsunuz çünkü bu çağrı eşzamansızdır ve uygulamanızın bir reklam gösterip göstermeyeceğini bilmesi için Remote Config değerinin önceden getirilmesi gerekir.

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

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

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

çarpıntı

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

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 adımda daha önce oluşturduğunuz Remote Config parametresini işleyecek şekilde yapılandırılmıştır.

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 getirilen Remote Config değerini kullanın:

  • ad_control_switch parametre değeri true olarak çözümlenir: geçiş reklamını gösterir (çünkü kullanıcı ödeme yapmayan bir kullanıcıdır).

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

Süratli

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+KTX

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

çarpıntı

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

Birlik

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ınlayın

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

Bu eğitimin adımlarını izlediyseniz uygulamanız, kullanıcılarınıza özelleştirilmiş bir uygulama içi reklam deneyimi sunmaya hemen 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.


Ve bu kadar! AdMob, Google Analytics ve Firebase'i kullanarak karma para kazanmayı optimize etmeye yönelik eğiticiyi tamamladınız.




2. Adım: Google Analytics'i kurun