Paso 3: Configura Firebase Remote Config para mostrar experiencias de anuncios específicas
Introducción: Optimiza la monetización híbrida con AdMob, Google Analytics y Firebase |
Paso 1: Usa AdMob para crear unidades de anuncios nuevas para la visualización |
Paso 2: Configura Google Analytics |
Paso 3: Configura Firebase Remote Config para mostrar experiencias de anuncios específicas |
Al final del último paso, aprendiste sobre los públicos de Google Analytics. En
este paso, crearás un parámetro Remote Config controlado por un valor booleano
(llamado ad_control_switch
) que aproveche el público "Compradores". Luego, agregarás la lógica al código de tu app para determinar lo que esta debe mostrar según el valor de ese parámetro.
Configura los parámetros y las condiciones de Remote Config en Firebase console
En la consola de Firebase, abre tu proyecto de Firebase.
En el panel lateral izquierdo, expande la sección Engage y, luego, selecciona Remote Config.
Haz clic en Crear configuración (o Agregar parámetro si ya usaste Remote Config).
En el panel Crear parámetro, completa los siguientes pasos:
En el campo Nombre del parámetro, ingresa
ad_control_switch
.En el menú desplegable
Data type
, selecciona Booleano.Haz clic en Crear y, luego, selecciona Crear condición nueva.
En el cuadro de diálogo Define una condición nueva, completa los siguientes pasos:
En el campo Nombre, ingresa
Purchasers Group
(o cualquier otro nombre que sea fácil de identificar para la condición).En el menú desplegable Se aplica si…, selecciona Públicos de usuarios.
En el menú desplegable Seleccionar públicos, selecciona Compradores.
Haz clic en Guardar condición.
En el panel Crear parámetro, sigue estos pasos:
En Value de Purchasers Group, selecciona false.
En Valor predeterminado, selecciona verdadero.
Haz clic en Guardar y, luego, en Publicar cambios.
Esta configuración verificará si el usuario pertenece al público "Compradores" (es decir, si es un usuario que paga):
Si el usuario pertenece al público "Compradores", Remote Config mostrará el valor de
false
para el parámetroad_control_switch
.Si el usuario no pertenece al público "Compradores", Remote Config mostrará el valor de
true
para el parámetroad_control_switch
.
En los siguientes pasos, implementarás Remote Config en tu app para controlar estos valores de parámetros.
Agrega el SDK de Remote Config a tu app
Antes de usar Remote Config en el código de tu aplicación, agrega el SDK de Remote Config a la base de código de tu app. Ten en cuenta que tu app ya debería tener el SDK de Google Mobile Ads (AdMob) y el SDK de Google Analytics para Firebase de los pasos anteriores de este instructivo.
Swift
Agrega y, luego, instala el pod de Remote Config en tu Podfile:
pod 'Firebase/RemoteConfig'
Android
Agrega la dependencia de la biblioteca Remote Config a tu archivo build.gradle
:
implementation 'com.google.firebase:firebase-config:22.0.1'
Flutter
Desde la raíz de tu proyecto de Flutter, ejecuta el siguiente comando para instalar el complemento Remote Config:
flutter pub add firebase_remote_config
Unity
Descarga e instala la versión más reciente
del SDK de Firebase Unity y, luego, agrega
el paquete Remote Config a tu proyecto:
FirebaseRemoteConfig.unitypackage
Configura la instancia de Remote Config
Para que tu app pueda usar los valores de los parámetros Remote Config, configura la instancia de Remote Config para que pueda recuperar valores nuevos de la instancia de la app cliente.
En este ejemplo, Remote Config se configura para verificar si hay valores de parámetros nuevos una vez por hora.
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");
}
Cómo recuperar y activar Remote Config
Recupera y activa el parámetro Remote Config para que pueda comenzar a usar los valores de parámetros nuevos.
Es recomendable que realices la llamada lo antes posible en la fase de carga de tu app, ya que la llamada es asíncrona y necesitarás el valor de Remote Config recuperado previamente para que tu app sepa si debe mostrar un anuncio.
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();
});
Tu app ya está configurada para controlar el parámetro Remote Config que creaste antes en este paso.
Usa el valor del parámetro Remote Config
Usa el valor Remote Config recuperado previamente en la función loadAdUnit()
para determinar si la instancia de la app debe realizar una de las siguientes acciones:
El valor del parámetro
ad_control_switch
se resuelve entrue
: muestra el anuncio intersticial (porque el usuario no paga).El valor del parámetro
ad_control_switch
se resuelve enfalse
: no mostrar el anuncio (porque el usuario es un usuario que paga).
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.
}
}
Cómo lanzar tu app
Dado que la lógica para mostrar el anuncio o no está dentro de tu base de código, debes lanzar una versión nueva de la app que contenga esta lógica.
Si seguiste los pasos de este instructivo, tu app debería comenzar a publicar de inmediato una experiencia personalizada de anuncios integrados en la aplicación para tus usuarios. Puedes supervisar los ingresos de tus anuncios en tu cuenta de AdMob y en los paneles de Google Analytics (en Firebase console o la IU de Google Analytics).
Eso es todo. Completaste el instructivo para optimizar la monetización híbrida con AdMob, Google Analytics y Firebase.
Recursos relacionados
Consulta otras guías de solución:
Mira una serie de videos: Optimiza los ingresos de tu app con Firebase y AdMob
Paso 2: Configura Google Analytics