Руководство. Оптимизация гибридной монетизации с помощью AdMob, Google Analytics и Firebases

Шаг 3: Настройте Firebase Remote Config для отображения определенных рекламных кампаний.


Введение: Оптимизация гибридной монетизации с использованием AdMob , Google Analytics и Firebase.
Шаг 1: Используйте AdMob для создания новых рекламных блоков для показа в режиме медийной рекламы.
Шаг 2: Настройка Google Analytics

Шаг 3: Настройте Firebase Remote Config для отображения определенных рекламных кампаний.


В конце предыдущего шага вы узнали об аудиториях Google Analytics. На этом шаге вы создадите параметр с логическим значением в Remote Config (называемый ad_control_switch ), который будет использовать аудиторию "Покупатели". Затем вы добавите в код вашего приложения логику отображения контента в зависимости от значения этого параметра.

Настройте параметры и условия Remote Config в консоли Firebase

  1. В консоли Firebase откройте свой проект Firebase.

  2. В левой панели разверните раздел Engage , а затем выберите Remote Config .

  3. Нажмите «Создать конфигурацию» (или «Добавить параметр», если вы ранее использовали Remote Config »).

  4. В панели «Создать параметр» выполните следующие действия:

    1. В поле «Имя параметра» введите ad_control_switch .

    2. В раскрывающемся меню Data type выберите «Логический» .

    3. Нажмите «Создать новый» , а затем выберите «Создать новое условие» .

  5. В диалоговом окне «Определить новое условие» выполните следующие действия:

    1. В поле «Название» введите Purchasers Group (или любое другое легко узнаваемое название для данного состояния).

    2. В раскрывающемся меню «Применяется, если...» выберите «Пользовательская аудитория(и)» .

    3. В раскрывающемся меню «Выберите целевую аудиторию(и)» выберите «Покупатели» .

    4. Нажмите «Сохранить условие» .

  6. Вернувшись в панель «Создать параметр» , выполните следующие действия:

    1. Для параметра « Стоимость группы покупателей» выберите «false» .

    2. В поле « Значение по умолчанию» выберите «true» .

  7. Нажмите «Сохранить» , а затем «Опубликовать изменения» .

Данная конфигурация проверит, относится ли пользователь к аудитории "Покупатели" (то есть, является ли он платящим пользователем):

  • Если пользователь относится к аудитории "Покупатели", то Remote Config вернет значение false для параметра ad_control_switch .

  • Если пользователь не входит в аудиторию "Покупатели", то Remote Config вернет значение true для параметра ad_control_switch .

На следующих шагах вы реализуете Remote Config в своем приложении для обработки значений этих параметров.

Добавьте SDK Remote Config в свое приложение.

Прежде чем использовать Remote Config в коде вашего приложения, добавьте SDK Remote Config в кодовую базу вашего приложения. Обратите внимание, что в вашем приложении уже должны быть SDK Google Mobile Ads ( AdMob ) и SDK Google Analytics for Firebase, полученные на предыдущих шагах этого руководства.

Быстрый

Добавьте и установите модуль Remote Config в свой podfile:

pod 'Firebase/RemoteConfig'

Android

Добавьте зависимость библиотеки Remote Config в файл build.gradle :

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

Порхание

Для установки плагина Remote Config выполните следующую команду из корневой папки вашего Flutter-проекта:

flutter pub add firebase_remote_config

Единство

Загрузите и установите последнюю версию Firebase Unity SDK , а затем добавьте пакет Remote Config в свой проект:
FirebaseRemoteConfig.unitypackage

Настройте экземпляр Remote Config .

Чтобы ваше приложение могло использовать значения параметров Remote Config , настройте экземпляр Remote Config таким образом, чтобы он мог получать новые значения для экземпляра клиентского приложения.

В этом примере Remote Config настроен на проверку новых значений параметров раз в час.

Быстрый

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

Порхание

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

Единство

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

Получите и активируйте параметр Remote Config , чтобы он мог начать использовать новые значения параметра.

Этот вызов следует выполнить как можно раньше на этапе загрузки приложения, поскольку он асинхронный, и вам необходимо предварительно получить значение Remote Config чтобы ваше приложение знало, следует ли показывать рекламу.

Быстрый

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

Порхание

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

Единство

remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
  if (task.IsFaulted) {
    Debug.LogWarning("Config params failed to update");
  } else {
    Debug.Log("Config params updated: " + task.Result);
  }
  LoadAdUnit();
});

Теперь ваше приложение настроено для обработки параметра Remote Config , который вы создали ранее на этом шаге.

Используйте значение параметра Remote Config .

Используйте предварительно полученное значение Remote Config в функции loadAdUnit() , чтобы определить, должен ли экземпляр приложения выполнить одно из следующих действий:

  • Значение параметра ad_control_switch принимает значение true : показывать межстраничную рекламу (поскольку пользователь не является платящим пользователем).

  • Значение параметра ad_control_switch принимает значение false : показывать рекламу не следует (поскольку пользователь является платящим пользователем).

Быстрый

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

Порхание

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

Единство

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

Выпустите своё приложение

Поскольку логика показа рекламы находится в вашем коде, вам необходимо выпустить новую версию приложения, содержащую эту логику.

Если вы следовали инструкциям этого руководства, ваше приложение должно немедленно начать показывать пользователям персонализированную рекламу внутри приложения. Вы можете отслеживать доход от рекламы как в своем аккаунте AdMob , так и на панелях мониторинга Google Analytics (либо в консоли Firebase , либо в пользовательском интерфейсе Google Analytics).


Вот и всё! Вы завершили руководство по оптимизации гибридной монетизации с использованием AdMob , Google Analytics и Firebase.




Шаг 2: Настройка Google Analytics