Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Tutorial: probar la adopción de los nuevos formatos de anuncios de AdMob

Paso 3: Maneja los valores de los parámetros de Remote Config en el código de tu aplicación


Introducción: Prueba adopción nuevo formato de anuncio de AdMob usando Firebase
Paso 1: Uso de AdMob para crear una nueva variante de bloque de anuncios para las pruebas
Paso 2: Configurar una prueba A / B en la consola Firebase

Paso 3: Maneja los valores de los parámetros de Remote Config en el código de tu aplicación

Paso 4: Comenzar la prueba A / B y revisar los resultados de las pruebas en la consola Firebase
Paso 5: Decidir si se debe desplegar el nuevo formato de anuncio


Al final de la última etapa, que ha creado un parámetro de configuración remota ( SHOW_NEW_AD_KEY ). En este paso, va a añadir la lógica de código de la aplicación de lo que su aplicación debe mostrar en función del valor de dicho parámetro - true (mostrar el nuevo anuncio) frente a false (no se muestra el anuncio).

Agregue los SDK requeridos

Antes de usar Remote Config en el código de su aplicación, agregue el SDK de Remote Config y el SDK de Firebase para Google Analytics a los archivos de compilación de su proyecto.

Rápido

Agregue e instale los siguientes pods en su podfile:

pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'

C objetivo

Agregue e instale los siguientes pods en su podfile:

pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'

Java

Añadir las siguientes dependencias de la biblioteca para su build.gradle archivo:

implementation 'com.google.android.gms:play-services-ads:20.4.0'
implementation 'com.google.firebase:firebase-analytics:19.0.2'
implementation 'com.google.firebase:firebase-config:21.0.1'

Kotlin + KTX

Añadir las siguientes dependencias de la biblioteca para su build.gradle archivo:

implementation 'com.google.android.gms:play-services-ads:20.4.0'
implementation 'com.google.firebase:firebase-analytics-ktx:19.0.2'
implementation 'com.google.firebase:firebase-config-ktx:21.0.1'

Unidad

Descargue e instale el SDK de Firebase Unity, luego agregue los siguientes paquetes de Unity a su proyecto:

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Configurar instancia de Remote Config

Para usar los valores de los parámetros de Remote Config, configura la instancia de Remote Config para que esté configurada para obtener nuevos valores para la instancia de la aplicación cliente.

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

Rápido

remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings

C objetivo

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)

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 los parámetros de Remote Config para que pueda comenzar a usar los nuevos valores de los parámetros.

Deberá realizar esta llamada lo antes posible en la fase de carga de su aplicación porque esta llamada es asincrónica y necesitará el valor de Remote Config precargado para que su aplicación sepa si debe mostrar el 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()
}

C objetivo

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

Unidad

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

Tu aplicación ahora está lista para manejar el parámetro de Remote Config que creaste durante la prueba A / B configurada anteriormente en este instructivo.

Usar el valor del parámetro de Remote Config

Utilice el valor Config remoto pre exagerado en el loadAdUnit() función para determinar si la instancia aplicación debe mostrar (valor del parámetro de true ) o no mostrar (valor del parámetro de false ) la nueva unidad recompensado anuncio intersticial.

Rápido

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 objetivo

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

Unidad

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

Agregue otras comprobaciones para el valor del parámetro

Hay otras áreas en el código de su aplicación en las que deberá verificar el valor de este parámetro de Remote Config para determinar qué experiencia publicitaria se cargará. Por ejemplo, puede decidir si desea volver a cargar un anuncio después de que el usuario haya terminado de ver el actual.

Las llamadas de recuperación y activación deben realizarse primero para obtener cualquier cambio en el valor de los parámetros, por ejemplo, si decide finalizar o crear un nuevo experimento.

Desde allí, siempre puede verificar el valor del parámetro mediante las siguientes llamadas:

Rápido

remoteConfig["showNewAdKey"].boolValue

C objetivo

self.remoteConfig[@"SHOW_NEW_AD_KEY"].boolValue;

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin + KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Unidad

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Estas llamadas siempre devolverán el mismo valor para una instancia de aplicación dependiendo de si se colocó en el grupo de control o en el nuevo grupo de variantes de anuncios, a menos que se hayan realizado cambios en la consola de Firebase que se obtuvieron y activaron en las llamadas anteriores.




Paso 2: Configuración de una prueba A / B en la consola Firebase Paso 4: Iniciar el A / B de la prueba y la prueba examen Resultados