Étape 3: Gérer les valeurs de paramètre Remote Config dans le code de votre application
Introduction : Optimiser la fréquence des annonces AdMob avec Firebase |
Étape 1 : Utilisez AdMob pour créer des variantes de blocs 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 (INTERSTITIAL_AD_KEY
). À cette étape, vous allez ajouter la logique au code de votre application pour ce qu'elle doit afficher en fonction de la valeur de ce paramètre.
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.
Swift
Ajoutez et installez les pods suivants dans votre fichier Podfile:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Objective-C
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 quelle annonce afficher.
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 quelle variante de fréquence d'annonce doit être affichée pour cette instance d'application.
Swift
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.
Objective-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
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
}
})
}
Unity
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);
}
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["INTERSTITIAL_AD_KEY"].stringValue
Objective-C
self.remoteConfig[@"INTERSTITIAL_AD_KEY"].stringValue;
Java
mFirebaseRemoteConfig.getString(INTERSTITIAL_AD_KEY)
Kotlin
remoteConfig.getString(INTERSTITIAL_AD_KEY)
Unity
remoteConfig.GetValue("INTERSTITIAL_AD_KEY").StringValue
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 l'un des nouveaux groupes 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.
Firebase Étape 2: Configurez un test A/B dans la console Étape 4: Lancez le test A/B et examinez les résultats