Instructivo: Optimiza la monetización híbrida con AdMob, Google Analytics y Firebase

Paso 3: Configura Firebase Remote Config para mostrar experiencias de anuncios específicas


Introducción: Optimización de la infraestructura híbrida Monetización con AdMob, Google Analytics y Firebase
Paso 1: Use AdMob a fin de crear nuevas unidades de anuncios para publicidad gráfica
Paso 2: Configuración Google Analytics

Paso 3: Configuración Firebase Remote Config para mostrar experiencias de anuncios específicas


Al final del último paso, aprendiste sobre los públicos de Google Analytics. En En este paso, crearás un parámetro Remote Config controlado por booleano (llamada ad_control_switch) que aprovecha la función "Compradores" público. Deberás Luego, agrega la lógica al código de tu app para determinar lo que esta debería mostrar según el valor de ese parámetro.

Configura los parámetros y las condiciones de Remote Config en la consola de Firebase

  1. En la consola de Firebase, abre tu proyecto de Firebase.

  2. En el panel de la izquierda, expande la sección Participación y, luego, selecciona Remote Config

  3. Haz clic en Crear configuración (o Agregar parámetro si usaste Remote Config antes).

  4. En el panel Crear parámetro, completa los siguientes pasos:

    1. En el campo Nombre del parámetro, ingresa ad_control_switch.

    2. En el menú desplegable Data type, selecciona Booleano.

    3. Haz clic en Crear nueva y, luego, selecciona Crear condición nueva.

  5. En el diálogo Definir una condición nueva, completa los siguientes pasos:

    1. En el campo Nombre, ingresa Purchasers Group (o cualquier otra nombre identificable de la condición).

    2. En el menú desplegable Se aplica si..., selecciona Públicos de usuarios.

    3. En el menú desplegable Seleccionar públicos, selecciona Compradores.

    4. Haz clic en Guardar condición.

  6. En el panel Crear parámetro, completa los siguientes pasos:

    1. En Value de Purchasers Group, selecciona false.

    2. En Valor predeterminado, selecciona verdadero.

  7. Haz clic en Guardar y, luego, en Publicar cambios.

Esta configuración verificará si el usuario está en el panel de compradores público (es decir, si se trata de un usuario que paga):

  • Si el usuario se encuentra en la sección "Compradores" público, Remote Config muestra el valor de false para el parámetro ad_control_switch.

  • Si el usuario no está en la lista "Compradores" público y, luego, Remote Config Esto mostrará el valor de true para el parámetro ad_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 elemento 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 la SDK de Google Analytics para Firebase de los pasos anteriores de este instructivo.

Swift

Agrega y, luego, instala el pod 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.0'

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 SDK de Firebase Unity y agrega el paquete Remote Config al proyecto:
FirebaseRemoteConfig.unitypackage

Configura la instancia de Remote Config

Para que tu app pueda usar los valores del parámetro Remote Config, configura la Instancia Remote Config para que pueda recuperar valores nuevos de la app cliente instancia.

En este ejemplo, Remote Config está configurado para verificar si hay un parámetro nuevo. valores una vez por hora.

Swift

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

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

Recupera y activa Remote Config

Recupera y activa el parámetro Remote Config para que pueda comenzar a usar los valores de los nuevos parámetros.

La idea es realizar esta llamada lo antes posible en la fase de carga de la app. porque esta llamada es asíncrona y necesitas el valor Remote Config precargados 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+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();
            }
        });

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

La app ya está configurada para controlar el parámetro Remote Config que creamos anteriormente en este paso.

Usa el valor del parámetro Remote Config

Usa el valor Remote Config recuperado previamente en la función loadAdUnit() para lo siguiente: determina si la instancia de app debería realizar una de las siguientes acciones:

  • El valor del parámetro ad_control_switch se resuelve como true: muestra anuncio intersticial (porque el usuario es un usuario que no paga).

  • El valor del parámetro ad_control_switch se resuelve en false: no muestres la (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+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.
    }
}

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

Lanza tu app

Dado que la lógica para mostrar el anuncio o no se encuentra dentro de tu base de código, debes lanzar una nueva versión de tu app que contenga esta lógica

Si seguiste los pasos de este instructivo, tu app debería iniciarse de inmediato una experiencia personalizada de anuncios en la app para los usuarios. Puedes supervisar tu ingresos publicitarios en tu cuenta de AdMob y en Google Analytics Paneles de control (ya sea en la consola de Firebase o en la IU de Google Analytics).


Eso es todo. Completaste el instructivo para optimizar la monetización híbrida. con AdMob, Google Analytics y Firebase.




Paso 2: Configura Google Analytics