Tutoriel: Tester l'adoption des nouveaux formats d'annonces AdMob

Étape 3: Gérer les valeurs de paramètre Remote Config dans le code de votre application


Introduction : Testez l'adoption du nouveau format d'annonce AdMob à l'aide de Firebase
Étape 1 : Utilisez AdMob pour créer une variante de bloc d'annonces à des fins de test
Étape 2 : Configurez un test A/B dans la console Firebase

Étape 3 : gérer les valeurs de paramètre Remote Config dans le code de votre application

Étape 4 : Lancez le test A/B et examinez les résultats dans la console Firebase
Étape 5 : Décidez si vous allez déployer le nouveau format d'annonce


À la fin de la dernière étape, vous avez créé un paramètre Remote Config (SHOW_NEW_AD_KEY). Dans cette étape, vous allez ajouter la logique au code de votre application pour déterminer ce qu'elle doit afficher en fonction de la valeur de ce paramètre : true (afficher la nouvelle annonce) ou false (ne pas afficher la nouvelle annonce).

Ajouter les SDK requis

Avant d'utiliser Remote Config dans le code de votre application, ajoutez le SDK Remote Config et le SDK Firebase pour Google Analytics aux fichiers de compilation de votre projet.

Plates-formes Apple

Ajoutez et installez les pods suivants dans votre fichier Podfile:

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

Android

Ajoutez les dépendances de bibliothèque suivantes à votre fichier build.gradle:

implementation 'com.google.android.gms:play-services-ads:23.6.0'
implementation 'com.google.firebase:firebase-analytics:22.1.2'
implementation 'com.google.firebase:firebase-config:22.0.1'

Unity

Téléchargez et installez le SDK Unity Firebase, puis ajoutez les packages Unity suivants à votre projet:

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Configurer l'instance Remote Config

Pour utiliser les valeurs de paramètre Remote Config, configurez l'instance Remote Config pour qu'elle extraie de nouvelles valeurs pour l'instance de l'application cliente.

Dans cet exemple, Remote Config est configuré pour vérifier les nouvelles valeurs de paramètre toutes les heures.

Swift

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

Objective-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

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

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

Extraire et activer Remote Config

Extrayez et activez les paramètres Remote Config pour commencer à utiliser les nouvelles valeurs de paramètre.

Vous devez effectuer cet appel le plus tôt possible dans la phase de chargement de votre application, car cet appel est asynchrone et vous aurez besoin que la valeur Remote Config soit préchargée pour que votre application sache si l'annonce doit être diffusée.

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

Objective-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

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

Unity

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

Votre application est maintenant prête à gérer le paramètre Remote Config que vous avez créé pendant le test A/B précédemment configuré dans ce tutoriel.

Utiliser la valeur du paramètre Remote Config

Utilisez la valeur Remote Config préchargée dans la fonction loadAdUnit() pour déterminer si l'instance d'application doit afficher (valeur de paramètre true) ou ne pas afficher (valeur de paramètre false) le nouveau bloc d'annonces interstitielles avec récompense.

Swift

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

Objective-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

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

Unity

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

Ajoutez d'autres vérifications concernant la valeur du paramètre.

Le code de votre application comporte d'autres sections dans lesquelles vous devrez vérifier la valeur de ce paramètre Remote Config afin de déterminer quelle expérience publicitaire sera chargée. Par exemple, vous pouvez décider ou non de recharger une annonce une fois que l'utilisateur a terminé de visionner l'annonce actuelle.

Les appels d'extraction et d'activation doivent être effectués en premier pour recevoir les éventuels changements apportés à la valeur du paramètre (par exemple, si vous décidez de mettre fin à un test ou d'en créer un autre).

Vous pourrez ensuite toujours vérifier la valeur du paramètre à l'aide des appels suivants:

Swift

remoteConfig["showNewAdKey"].boolValue

Objective-C

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

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Unity

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Ces appels renverront toujours la même valeur pour une instance d'application selon qu'ils ont été effectués dans le groupe de contrôle ou dans le nouveau groupe de variantes d'annonce, sauf si des changements ont été effectués dans la console Firebase et ont été extraits et activés dans les appels précédents.




Étape 2: Configurez un test A/B dans la console Firebase Étape 4: Lancez le test A/B et examinez les résultats