Schritt 3: Remote Config Parameterwerte im Code Ihrer App verarbeiten
| Einführung: Anzeigenhäufigkeit in AdMob mit Firebase optimierenAdMob |
| Schritt 1: Neue Anzeigenblockvarianten für Tests in AdMob erstellen |
| Schritt 2: Richten Sie einen A/B-Test in der Firebase Konsole ein |
|
Schritt 3: Remote Config Parameterwerte im Code Ihrer App verarbeiten |
| Schritt 4: A/B-Test starten und die Testergebnisse in der Firebase Console ansehen |
| Schritt 5: Entscheidung über die Einführung des neuen Anzeigenformats |
Am Ende des letzten Schritts haben Sie einen Remote Config Parameter
(INTERSTITIAL_AD_KEY) erstellt. In diesem Schritt fügen Sie dem Code Ihrer App die Logik hinzu, die festlegt, was Ihre App basierend auf dem Wert dieses Parameters anzeigen soll.
Die erforderlichen SDKs hinzufügen
Bevor Sie Remote Config in Ihrem Anwendungscode verwenden, fügen Sie den Remote Config SDK und das Firebase SDK für Google Analytics zu den Build-Dateien Ihres Projekts hinzu.
Swift
Fügen Sie Ihrer Podfile-Datei die folgenden Pods hinzu und installieren Sie sie:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Objective-C
Fügen Sie Ihrer Podfile-Datei die folgenden Pods hinzu und installieren Sie sie:
pod 'Google-Mobile-Ads-SDK'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
Android
Fügen Sie der Datei build.gradle die folgenden Bibliotheksabhängigkeiten hinzu:
implementation 'com.google.android.gms:play-services-ads:25.2.0'
implementation 'com.google.firebase:firebase-analytics:23.2.0'
implementation 'com.google.firebase:firebase-config:23.1.0'
Einheit
Laden Sie das Firebase Unity SDK herunter und installieren Sie es. Fügen Sie dann Ihrem Projekt die folgenden Unity-Pakete hinzu:
FirebaseAnalytics.unitypackageFirebaseRemoteConfig.unitypackage
Instanz Remote Config konfigurieren
Damit Sie die Remote Config Parameterwerte verwenden können, konfigurieren Sie die Remote Config Instanz so, dass die neuen Werte für die Client-App-Instanz abgerufen werden können.
In diesem Beispiel ist Remote Config so konfiguriert, dass einmal pro Stunde nach neuen Parameter werten gesucht wird.
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)
Einheit
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");
}
Abrufen und aktivieren Remote Config
Rufen Sie die Remote Config Parameter ab und aktivieren Sie sie, damit die neuen Parameterwerte verwendet werden können.
Sie sollten diesen Aufruf so früh wie möglich in der Ladephase Ihrer App ausführen, da er asynchron ist und Sie den Remote Config Wert vorab abrufen müssen, damit Ihre App weiß, welche Anzeige präsentiert werden soll.
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()
}
Einheit
remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
if (task.IsFaulted) {
Debug.LogWarning("Config params failed to update");
} else {
Debug.Log("Config params updated: " + task.Result);
}
LoadAdUnit();
});
Ihre App ist jetzt bereit, den Remote Config Parameter zu verarbeiten, den Sie während des zuvor in diesem Tutorial eingerichteten A/B-Tests erstellt haben.
Verwenden Sie den Remote Config Parameterwert
Verwenden Sie den vorab abgerufenen Remote Config Wert in der loadAdUnit() Funktion, um
zu bestimmen, welche Variante der Anzeigenhäufigkeit für diese App-Instanz verwendet werden soll.
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
}
})
}
Einheit
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);
}
Weitere Prüfungen für den Parameterwert hinzufügen
Es gibt weitere Bereiche in Ihrem Anwendungscode, in denen Sie den Wert dieses Remote Config Parameters überprüfen müssen, um festzulegen, welche Nutzerfreundlichkeit von Werbeanzeigen geladen wird. Sie können z. B. entscheiden, ob eine Anzeige neu geladen werden soll, nachdem der Nutzer die aktuelle Anzeige vollständig wiedergegeben hat.
Die Abruf- und Aktivierungsaufrufe sollten zuerst ausgeführt werden, um Parameterwertänderungen abzurufen – z. B. wenn Sie sich entschließen, einen Test zu beenden oder einen neuen zu erstellen.
Anschließend können Sie den Wert für den Parameter jederzeit mit den folgenden Aufrufen prüfen:
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)
Einheit
remoteConfig.GetValue("INTERSTITIAL_AD_KEY").StringValue
Diese Aufrufe geben immer denselben Wert für eine App-Instanz zurück, je nachdem, ob sie in die Kontrollgruppe oder in eine der neuen Anzeigenvariantengruppen platziert wurde, es sei denn, es wurden Änderungen in der Firebase Konsole vorgenommen, die in den vorherigen Aufrufen abgerufen und aktiviert wurden.
Schritt 2: Einen A/B-Test in der Firebase Console einrichten Schritt 4: A/B-Test starten und Testergebnisse ansehen