Tutorial: Optimice la monetización híbrida con AdMob, Google Analytics y Firebases

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


Introducción: Optimice la monetización híbrida con AdMob, Google Analytics y Firebase
Paso 1: utilice AdMob para crear nuevos bloques de anuncios para mostrar
Paso 2: configurar Google Analytics

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


Al final del último paso, aprendió sobre las audiencias de Google Analytics. En este paso, creará un parámetro controlado booleano de Remote Config (llamado ad_control_switch ) que aprovecha la audiencia de "Compradores". Luego agregará la lógica al código de su aplicación para lo que su aplicación debería mostrar según el valor de ese parámetro.

Configurar los parámetros y condiciones de Remote Config en Firebase console

  1. En Firebase console , abre tu proyecto de Firebase.

  2. En el panel del lado izquierdo, expanda la sección Engage y luego seleccione Remote Config .

  3. Haga clic en Crear configuración (o Agregar parámetro si ha usado Remote Config antes).

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

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

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

    3. Haga clic en Crear nueva y luego seleccione Crear nueva condición .

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

    1. En el campo Nombre , ingrese Purchasers Group (o cualquier otro nombre fácilmente identificable para la condición).

    2. En el menú desplegable Se aplica si... , seleccione Público(s) de usuarios .

    3. En el menú desplegable Seleccionar audiencias , seleccione Compradores .

    4. Haga clic en Guardar condición .

  6. De vuelta en el panel Crear parámetro , complete los siguientes pasos:

    1. Para el grupo Valor de compradores , seleccione falso .

    2. Para el valor predeterminado , seleccione verdadero .

  7. Haga clic en Guardar y luego en Publicar cambios .

Esta configuración verificará si el usuario está en la audiencia de "Compradores" (es decir, es un usuario de pago):

  • Si el usuario está en la audiencia "Compradores", Remote Config devolverá el valor false para el parámetro ad_control_switch .

  • Si el usuario no está en la audiencia "Compradores", Remote Config devolverá el valor true para el parámetro ad_control_switch .

En los siguientes pasos, implementará Remote Config en su aplicación para manejar estos valores de parámetros.

Agregue el SDK de Remote Config a su aplicación

Antes de usar Remote Config en el código de su aplicación, agregue el SDK de Remote Config al código base de su aplicación. Tenga en cuenta que su aplicación 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 tutorial.

Rápido

Agregue e instale el pod de Remote Config en su podfile:

pod 'Firebase/RemoteConfig'

Androide

Agregue la dependencia de la biblioteca de Remote Config a su archivo build.gradle :

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

Aleteo

Desde la raíz de su proyecto Flutter, ejecute el siguiente comando para instalar el complemento Remote Config:

flutter pub add firebase_remote_config

Unidad

Descargue e instale el último SDK de Firebase Unity y luego agregue el paquete Remote Config a su proyecto:
FirebaseRemoteConfig.unitypackage

Configurar la instancia de Remote Config

Para que su aplicación pueda usar los valores de los parámetros de Remote Config, configure la instancia de Remote Config para que pueda recuperar nuevos valores para la instancia de la aplicación cliente.

En este ejemplo, Remote Config está configurado para comprobar si hay nuevos valores de parámetros una vez cada hora.

Rápido

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

Aleteo

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

Unidad

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

Obtener y activar Remote Config

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

Desea realizar esta llamada lo antes posible en la fase de carga de su aplicación porque esta llamada es asincrónica y necesita obtener previamente el valor de Remote Config para que su aplicación sepa si debe mostrar un anuncio.

Rápido

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

Aleteo

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

Unidad

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

Su aplicación ahora está configurada para manejar el parámetro Remote Config que creó anteriormente en este paso.

Utilice el valor del parámetro Remote Config

Utilice el valor de Remote Config obtenido previamente en la función loadAdUnit() para determinar si la instancia de la aplicación debe realizar una de las siguientes acciones:

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

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

Rápido

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

Aleteo

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

Unidad

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

Libera tu aplicación

Dado que la lógica para mostrar o no el anuncio está dentro de su código base, debe lanzar una nueva versión de su aplicación que contenga esta lógica.

Si siguió los pasos de este tutorial, su aplicación debería comenzar a ofrecer inmediatamente una experiencia de anuncios personalizados en la aplicación a sus usuarios. Puede monitorear sus ingresos publicitarios tanto en su cuenta de AdMob como en los paneles de Google Analytics (ya sea en la consola de Firebase o en la interfaz de usuario de Google Analytics).


¡Y eso es! Ha completado el tutorial para optimizar la monetización híbrida mediante AdMob, Google Analytics y Firebase.




Paso 2: configurar Google Analytics