Anleitung: Verwendung neuer AdMob-Anzeigenformate testen

Schritt 3: Remote Config-Parameterwerte im Code Ihrer App verarbeiten


Einführung: Verwendung eines neuen AdMob-Anzeigenformats mit Firebase testen
Schritt 1: Mit AdMob eine neue Anzeigenblockvariante für Tests erstellen
Schritt 2: A/B-Test in der Firebase-Konsole einrichten

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: Entscheiden, ob Sie das neue Anzeigenformat einführen möchten


Am Ende des letzten Schritts haben Sie einen Remote Config-Parameter (SHOW_NEW_AD_KEY) erstellt. In diesem Schritt fügen Sie dem Code Ihrer App die Logik hinzu, die festlegt, was in Ihrer App basierend auf dem Wert dieses Parameters angezeigt werden soll: true (neue Anzeige anzeigen) oder false (neue Anzeige nicht anzeigen).

Erforderliche SDKs hinzufügen

Bevor Sie Remote Config in Ihrem Anwendungscode verwenden, fügen Sie Ihren Projekt-Builddateien sowohl das Remote Config SDK als auch das Firebase SDK für Google Analytics hinzu.

Apple-Plattformen

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:23.6.0'
implementation 'com.google.firebase:firebase-analytics:22.1.2'
implementation 'com.google.firebase:firebase-config:22.0.1'

Einheit

Laden Sie das Firebase Unity SDK herunter und installieren Sie es. Fügen Sie Ihrem Projekt dann die folgenden Unity-Pakete hinzu:

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Remote Config-Instanz 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 Parameterwerten 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");
}

Remote Config abrufen und aktivieren

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ß, ob die 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.

Parameterwert „Remote Config“ verwenden

Verwenden Sie den vorab abgerufenen Remote Config-Wert in der loadAdUnit()-Funktion, um zu bestimmen, ob der neue Interstitial-Anzeigenblock mit Prämie in der App-Instanz eingeblendet werden soll (Parameterwert true) oder nicht (Parameterwert false).

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

Einheit

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

Weitere Überprüfungen des Parameterwerts 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 Anzeige 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.

Danach können Sie den Wert für den Parameter jederzeit mit den folgenden Aufrufen überprüfen:

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)

Einheit

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Diese Aufrufe geben immer denselben Wert für eine App-Instanz zurück, je nachdem, ob sie in die Kontrollgruppe oder in die neue Anzeigenvariantengruppe platziert wurde, es sei denn, es wurden Änderungen in der Firebase Console vorgenommen, die in den vorherigen Aufrufen abgerufen und aktiviert wurden.




Schritt 2: A/B-Test in der Firebase Console einrichten Schritt 4: A/B-Test starten und Testergebnisse prüfen