Tutorial: Testen Sie die Einführung neuer AdMob-Anzeigenformate

Schritt 3: Behandeln Sie Remote Config-Parameterwerte im Code Ihrer App


Einführung: Testen Sie die Einführung des neuen AdMob-Anzeigenformats mit Firebase
Schritt 1: Erstellen Sie mit AdMob eine neue Anzeigenblockvariante zum Testen
Schritt 2: Richten Sie einen A/B-Test in der Firebase-Konsole ein

Schritt 3: Behandeln Sie Remote Config-Parameterwerte im Code Ihrer App

Schritt 4: Starten Sie den A/B-Test und überprüfen Sie die Testergebnisse in der Firebase-Konsole
Schritt 5: Entscheiden Sie, ob das neue Anzeigenformat eingeführt werden soll


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 für das hinzu, was Ihre App basierend auf dem Wert dieses Parameters anzeigen soll – „ true (neue Anzeige anzeigen) versus false “ (neue Anzeige nicht anzeigen).

Fügen Sie die erforderlichen SDKs hinzu

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

Apple-Plattformen

Fügen Sie die folgenden Pods zu Ihrer Poddatei hinzu und installieren Sie sie:

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

Android

Fügen Sie Ihrer build.gradle Datei die folgenden Bibliotheksabhängigkeiten hinzu:

implementation 'com.google.android.gms:play-services-ads:23.0.0'
implementation 'com.google.firebase:firebase-analytics:21.6.1'
implementation 'com.google.firebase:firebase-config:21.6.3'

Einheit

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

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Konfigurieren Sie die Remote Config-Instanz

Um die Remote Config-Parameterwerte zu verwenden, konfigurieren Sie die Remote Config-Instanz so, dass sie zum Abrufen neuer Werte für die Client-App-Instanz eingerichtet ist.

In diesem Beispiel ist Remote Config so konfiguriert, dass es stündlich nach neuen Parameterwerten sucht.

Schnell

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

Ziel 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)

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

Rufen Sie Remote Config ab und aktivieren Sie es

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 tätigen, da dieser Aufruf asynchron ist und Sie den Remote Config-Wert vorab abrufen müssen, damit Ihre App weiß, ob die Anzeige geschaltet werden soll.

Schnell

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

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

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 der Einrichtung des A/B-Tests weiter oben in diesem Tutorial erstellt haben.

Verwenden Sie den Parameterwert „Remote Config“.

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

Schnell

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

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

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

Fügen Sie weitere Prüfungen für den Parameterwert hinzu

Es gibt andere Bereiche in Ihrem Anwendungscode, in denen Sie den Wert dieses Remote-Config-Parameters überprüfen müssen, um zu bestimmen, welches Anzeigenerlebnis geladen wird. Sie können beispielsweise entscheiden, ob eine Anzeige erneut geladen werden soll, nachdem der Nutzer die aktuelle Anzeige beendet hat.

Die Fetch- und Activate-Aufrufe sollten zuerst durchgeführt werden, um etwaige Parameterwertänderungen abzurufen – zum Beispiel, wenn Sie sich entscheiden, ein neues Experiment zu beenden oder zu erstellen.

Von dort aus können Sie den Wert des Parameters jederzeit mit den folgenden Aufrufen überprüfen:

Schnell

remoteConfig["showNewAdKey"].boolValue

Ziel c

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

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin+KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Einheit

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

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




Schritt 2 : Richten Sie einen A/B-Test in der Firebase-Konsole ein. Schritt 4 : Starten Sie den A/B-Test und überprüfen Sie die Testergebnisse