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

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

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


Introduction: essai d'un nouveau format d'annonce AdMob adoption utilisant Firebase
Étape 1: Utilisez AdMob pour créer une nouvelle variante de bloc d'annonces pour les tests
Étape 2: Mettre en place un test A / B dans la console Firebase

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

Etape 4: Démarrez le test A / B et examiner les résultats des tests dans la console Firebase
Étape 5: Décider de déployer le nouveau format d'annonce


A la fin de la dernière étape, vous avez créé un paramètre de configuration à distance ( SHOW_NEW_AD_KEY ). Dans cette étape, vous allez ajouter la logique au code de votre application pour que votre application doit afficher en fonction de la valeur de ce paramètre - true (montrer la nouvelle annonce) par rapport à false (ne montre pas la nouvelle annonce).

Ajouter les SDK requis

Avant d'utiliser Remote Config dans le code de votre application, ajoutez à la fois le SDK Remote Config et le SDK Firebase pour Google Analytics à vos fichiers de génération de projet.

Rapide

Ajoutez et installez les pods suivants dans votre podfile :

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

Objectif c

Ajoutez et installez les pods suivants dans votre podfile :

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

Java

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

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

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

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'

Unité

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

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Configurer l'instance de configuration à distance

Pour utiliser les valeurs du paramètre Remote Config, configurez l'instance Remote Config afin qu'elle soit configurée pour récupérer de nouvelles valeurs pour l'instance d'application cliente.

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

Rapide

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

Objectif 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+KTX

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

Unité

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

Récupérer et activer la configuration à distance

Récupérez et activez les paramètres Remote Config afin qu'il puisse commencer à utiliser les nouvelles valeurs de paramètre.

Vous souhaiterez 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 de la valeur Remote Config pré-extraite afin que votre application sache si elle doit diffuser l'annonce.

Rapide

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

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

Unité

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éé lors du test A/B configuré plus tôt dans ce didacticiel.

Utiliser la valeur du paramètre Remote Config

Utilisez la valeur Config à distance pré tiré par les cheveux dans la loadAdUnit() fonction pour déterminer si l'instance d'application doit montrer (valeur de paramètre de true ) ou pas montrer (valeur de paramètre de false ) le nouveau bloc d'annonces interstitielles récompensé.

Rapide

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

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

Unité

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

Ajouter d'autres contrôles pour la valeur du paramètre

Il existe d'autres zones dans votre code d'application où vous devrez vérifier la valeur de ce paramètre de configuration à distance pour dicter quelle expérience publicitaire sera chargée. Par exemple, vous pouvez décider de recharger ou non une annonce une fois que l'utilisateur a fini de visualiser l'annonce en cours.

Les appels d'extraction et d'activation doivent être effectués en premier pour obtenir les modifications de valeur de paramètre, par exemple, si vous décidez de mettre fin ou de créer une nouvelle expérience.

À partir de là, vous pouvez toujours vérifier la valeur du paramètre à l'aide des appels suivants :

Rapide

remoteConfig["showNewAdKey"].boolValue

Objectif c

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

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin+KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Unité

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Ces appels renvoient toujours la même valeur pour une instance d'application selon qu'elle a été placée dans le groupe de contrôle ou dans le nouveau groupe de variantes d'annonces, sauf si des modifications ont été apportées dans la console Firebase qui ont été récupérées et activées lors des appels précédents.




Étape 2: Mettre en place un test A / B dans la console Firebase Etape 4: Démarrez le test Révision et A / B résultats