Шаг 3. Обработка значений параметров Remote Config в коде вашего приложения.
Введение: протестируйте новый формат объявлений AdMob с помощью Firebase |
Шаг 1. Используйте AdMob , чтобы создать новый вариант рекламного блока для тестирования. |
Шаг 2. Настройте A/B-тест в консоли Firebase . |
Шаг 3. Обработка значений параметров Remote Config в коде вашего приложения. |
Шаг 4. Запустите A/B-тест и просмотрите результаты теста в консоли Firebase . |
Шаг 5. Решите, стоит ли внедрять новый формат объявлений. |
В конце последнего шага вы создали параметр Remote Config ( SHOW_NEW_AD_KEY
). На этом этапе вы добавите в код вашего приложения логику того, что ваше приложение должно отображать на основе значения этого параметра — true
(показывать новое объявление) или false
( не показывать новое объявление).
Добавьте необходимые SDK
Прежде чем использовать Remote Config в коде приложения, добавьте SDK Remote Config и Firebase SDK для Google Analytics в файлы сборки проекта.
платформы Apple
Добавьте и установите в свой подфайл следующие модули:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Андроид
Добавьте следующие зависимости библиотеки в файл build.gradle
:
implementation 'com.google.android.gms:play-services-ads:23.4.0'
implementation 'com.google.firebase:firebase-analytics:22.1.2'
implementation 'com.google.firebase:firebase-config:22.0.0'
Единство
Загрузите и установите Firebase Unity SDK, затем добавьте в свой проект следующие пакеты Unity:
-
FirebaseAnalytics.unitypackage
-
FirebaseRemoteConfig.unitypackage
Настройка экземпляра Remote Config
Чтобы использовать значения параметров Remote Config , настройте экземпляр Remote Config так, чтобы он был настроен на получение новых значений для экземпляра клиентского приложения.
В этом примере Remote Config настроен на проверку новых значений параметров один раз в час.
Быстрый
remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
Цель-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)
Единство
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()
}
Цель-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()
}
Единство
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 , который вы создали во время A/B-теста, настроенного ранее в этом руководстве.
Используйте значение параметра Remote Config
Используйте предварительно полученное значение Remote Config в функции loadAdUnit()
, чтобы определить, должен ли экземпляр приложения показывать (значение параметра true
) или не показывать (значение параметра false
) новый межстраничный рекламный блок с вознаграждением.
Быстрый
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.
}
}
Цель-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.
}
}
Единство
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.
}
}
Добавьте другие проверки значения параметра
В коде вашего приложения есть и другие области, где вам нужно будет проверить значение этого параметра Remote Config , чтобы определить, какой вариант рекламы будет загружен. Например, вы можете решить, следует ли перезагрузить объявление после того, как пользователь закончил просмотр текущего.
Вызовы выборки и активации следует выполнять в первую очередь, чтобы получить какие-либо изменения значений параметров — например, если вы решите завершить или создать новый эксперимент.
Отсюда вы всегда можете проверить значение параметра, используя следующие вызовы:
Быстрый
remoteConfig["showNewAdKey"].boolValue
Цель-C
self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;
Java
mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)
Kotlin+KTX
remoteConfig.getBoolean(SHOW_NEW_AD_KEY)
Единство
remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue
Эти вызовы всегда будут возвращать одно и то же значение для экземпляра приложения в зависимости от того, было ли оно помещено в контрольную группу или в новую группу вариантов объявлений, если только в консоли Firebase не были внесены какие-либо изменения, которые были получены и активированы в предыдущих вызовах.
Firebase Шаг 2. Настройте A/B-тест в консоли Шаг 4. Запустите A/B-тест и просмотрите результаты