Шаг 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 .
В консоли Firebase откройте свой проект Firebase.
На левой панели разверните раздел «Взаимодействие» и выберите «Удаленная настройка» .
Нажмите «Создать конфигурацию» (или «Добавить параметр» , если вы раньше использовали Remote Config ).
На панели «Создать параметр» выполните следующие шаги:
В поле Имя параметра введите
ad_control_switch
.В раскрывающемся меню
Data type
выберите Boolean .Нажмите «Создать новое» , а затем выберите « Создать новое условие» .
В диалоговом окне Определить новое условие выполните следующие шаги:
В поле «Имя» введите
Purchasers Group
(или любое другое легко идентифицируемое название условия).В раскрывающемся меню «Применимо, если...» выберите «Аудитория пользователей» .
В раскрывающемся меню «Выбрать аудитории» выберите «Покупатели» .
Нажмите Сохранить условие .
Вернувшись на панель «Создать параметр» , выполните следующие шаги:
Для значения группы покупателей выберите false .
Для значения по умолчанию выберите true .
Нажмите «Сохранить» , а затем «Опубликовать изменения» .
Эта конфигурация проверит, входит ли пользователь в аудиторию «Покупатели» (то есть является ли он платящим пользователем):
Если пользователь входит в аудиторию «Покупатели», 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 ) и Google Analytics for Firebase SDK из предыдущих шагов этого руководства.
Быстрый
Добавьте и установите модуль Remote Config в свой подфайл:
pod 'Firebase/RemoteConfig'
Андроид
Добавьте зависимость библиотеки Remote Config в файл build.gradle
:
implementation 'com.google.firebase:firebase-config:22.0.0'
трепетать
Из корня вашего проекта Flutter выполните следующую команду, чтобы установить плагин Remote Config :
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+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);
трепетать
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+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();
}
});
трепетать
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+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.
}
}
трепетать
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.
Связанные ресурсы
Ознакомьтесь с другими руководствами по решениям:
Посмотрите серию видеороликов: Оптимизируйте доход от приложений с помощью Firebase и AdMob
Шаг 2. Настройте Google Analytics
,
Шаг 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 .
В консоли Firebase откройте свой проект Firebase.
На левой панели разверните раздел «Взаимодействие» и выберите «Удаленная настройка» .
Нажмите «Создать конфигурацию» (или «Добавить параметр» , если вы раньше использовали Remote Config ).
На панели «Создать параметр» выполните следующие шаги:
В поле Имя параметра введите
ad_control_switch
.В раскрывающемся меню
Data type
выберите Boolean .Нажмите «Создать новое» , а затем выберите « Создать новое условие» .
В диалоговом окне Определить новое условие выполните следующие шаги:
В поле «Имя» введите
Purchasers Group
(или любое другое легко идентифицируемое название условия).В раскрывающемся меню «Применимо, если...» выберите «Аудитория пользователей» .
В раскрывающемся меню «Выбрать аудитории» выберите «Покупатели» .
Нажмите Сохранить условие .
Вернувшись на панель «Создать параметр» , выполните следующие шаги:
Для значения группы покупателей выберите false .
Для значения по умолчанию выберите true .
Нажмите «Сохранить» , а затем «Опубликовать изменения» .
Эта конфигурация проверит, входит ли пользователь в аудиторию «Покупатели» (то есть является ли он платящим пользователем):
Если пользователь входит в аудиторию «Покупатели», 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 ) и Google Analytics for Firebase SDK из предыдущих шагов этого руководства.
Быстрый
Добавьте и установите модуль Remote Config в свой подфайл:
pod 'Firebase/RemoteConfig'
Андроид
Добавьте зависимость библиотеки Remote Config в файл build.gradle
:
implementation 'com.google.firebase:firebase-config:22.0.0'
трепетать
Из корня вашего проекта Flutter выполните следующую команду, чтобы установить плагин Remote Config :
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+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);
трепетать
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+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();
}
});
трепетать
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+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.
}
}
трепетать
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.
Связанные ресурсы
Ознакомьтесь с другими руководствами по решениям:
Посмотрите серию видео: Оптимизируйте доход от приложений с помощью Firebase и AdMob
Шаг 2. Настройте Google Analytics