Étape 3 : Gérer les valeurs des paramètres Remote Config dans le code de votre application
Introduction : Optimiser la fréquence des annonces AdMob à l'aide de Firebase |
Étape 1 : Utilisez AdMob pour créer de nouvelles variantes de blocs d'annonces à tester |
Étape 2 : Configurer 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 |
Étape 4 : Démarrez le test A/B et examinez les résultats du test dans la console Firebase |
Étape 5 : Décidez si vous souhaitez déployer le nouveau format d'annonce |
A la fin de la dernière étape, vous avez créé un paramètre Remote Config ( INTERSTITIAL_AD_KEY
). Au cours de cette étape, vous allez ajouter la logique au code de votre application pour ce que votre application doit afficher en fonction de la valeur de ce paramètre.
Ajoutez 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 aux fichiers de build de votre projet.
Rapide
Ajoutez et installez les pods suivants dans votre fichier pod :
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Objectif c
Ajoutez et installez les pods suivants dans votre fichier pod :
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:22.5.0'
implementation 'com.google.firebase:firebase-analytics:21.5.0'
implementation 'com.google.firebase:firebase-config:21.6.0'
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 des paramètres 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 client.
Dans cet exemple, Remote Config est configuré pour vérifier les nouvelles valeurs de paramètres une fois 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 Remote Config
Récupérez et activez les paramètres de Remote Config afin qu'il puisse commencer à utiliser les nouvelles valeurs de paramètres.
Vous souhaiterez effectuer cet appel le plus tôt possible lors de la phase de chargement de votre application, car cet appel est asynchrone et vous aurez besoin d'une valeur de configuration à distance pré-extraite pour que votre application sache quelle annonce diffuser.
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 Remote Config pré-extraite dans la fonction loadAdUnit()
pour déterminer quelle variante de fréquence publicitaire doit être affichée pour cette instance d'application.
Rapide
private func loadAdUnit() {
let adUnitId = remoteConfig["INTERSTITIAL_AD_KEY"].stringValue;
let request = GADRequest()
GADInterstitialAd.load(withAdUnitID: adUnitId,
request: request,
completionHandler: { [self] ad, error in
if let error = error {
print("Failed to load: \(error.localizedDescription)")
return
}
interstitial = ad
// Register for callbacks.
}
)
}
// Register for callbacks.
Objectif c
- (void)loadAdUnit {
NSString *adUnitId =
self.remoteConfig[@"INTERSTITIAL_AD_KEY"].stringValue;
GADRequest *request = [GADRequest request];
[GADInterstitialAd loadAdWithAdUnitId:adUnitId
request:request
completionHandler:^(GADInterstitialAd *ad,
NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@",
[error localizedDescription]);
return;
}
self.interstitial = ad;
}];
}
Java
private void loadAdUnit() {
String adUnitId =
mFirebaseRemoteConfig.getString("INTERSTITIAL_AD_KEY");
// Load Interstitial Ad (assume adUnitId not null)
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(this, adUnitId, adRequest, new
InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd intertitialAd) {
mInterstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
mInterstitialAd = null;
}
});
}
Kotlin+KTX
private fun loadAdUnit() {
String adUnitId = remoteConfig.getString("INTERSTITIAL_AD_KEY")
var adRequest = AdRequestBuilder.Builder().build()
AdRequestBuilder.load(this, adUnitId, adRequest, object :
InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
mInterstitialAd = interstitialAd
}
})
}
Unité
void LoadAdUnit() {
// Note that you may want to encode and parse two sets of ad unit IDs for
// Android / iOS in the Unity implementation.
String adUnitId = remoteConfig.GetValue("INTERSTITIAL_AD_KEY").StringValue;
this.interstitial = new InterstitialAd(adUnitId);
}
Ajouter d'autres vérifications pour la valeur du paramètre
Il existe d'autres zones dans le code de votre application dans lesquelles vous devrez vérifier la valeur de ce paramètre Remote Config pour dicter quelle expérience publicitaire sera chargée. Par exemple, vous pouvez décider de recharger une annonce une fois que l'utilisateur a fini de consulter l'annonce actuelle.
Les appels de récupération et d'activation doivent être effectués en premier pour obtenir toute modification 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["INTERSTITIAL_AD_KEY"].stringValue
Objectif c
self.remoteConfig[@"INTERSTITIAL_AD_KEY"].stringValue;
Java
mFirebaseRemoteConfig.getString(INTERSTITIAL_AD_KEY)
Kotlin+KTX
remoteConfig.getString(INTERSTITIAL_AD_KEY)
Unité
remoteConfig.GetValue("INTERSTITIAL_AD_KEY").StringValue
Ces appels renverront 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 l'un des nouveaux groupes de variantes d'annonce, sauf si des modifications ont été apportées à la console Firebase qui ont été récupérées et activées lors des appels précédents.
Étape 2 : Configurez un test A/B dans la console FirebaseÉtape 4 : Démarrez le test A/B et examinez les résultats du test