Anleitung: 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: Verwenden Sie AdMob, um eine neue Anzeigenblockvariante zum Testen zu erstellen
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 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 für das hinzu, was Ihre App basierend auf dem Wert dieses Parameters anzeigen soll – true (zeigt die neue Anzeige) oder false (zeigt keine neue Anzeige).

Fügen Sie die erforderlichen SDKs hinzu

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

Schnell

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

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

Ziel c

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

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

Java

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

implementation 'com.google.android.gms:play-services-ads:22.4.0'
implementation 'com.google.firebase:firebase-analytics:21.3.0'
implementation 'com.google.firebase:firebase-config:21.4.1'

Kotlin+KTX

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

implementation 'com.google.android.gms:play-services-ads:22.4.0'
implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0'
implementation 'com.google.firebase:firebase-config-ktx:21.4.1'

Einheit

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

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Remote Config-Instanz konfigurieren

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

Holen und aktivieren Sie Remote Config

Rufen Sie die Remote Config-Parameter ab und aktivieren Sie sie, damit sie mit der Verwendung der neuen Parameterwerte beginnen 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 des zuvor in diesem Tutorial eingerichteten A/B-Tests 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 anzeigen soll (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 festzulegen, welche Anzeige geladen wird. Beispielsweise können Sie entscheiden, ob eine Anzeige neu geladen werden soll, nachdem der Nutzer die aktuelle Anzeige beendet hat.

Die Abruf- und Aktivierungsaufrufe sollten zuerst ausgeführt werden, um Parameterwertänderungen abzurufen – beispielsweise, wenn Sie sich entscheiden, ein Experiment zu beenden oder ein neues zu erstellen.

Von dort aus können Sie den Wert für den Parameter 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 immer den gleichen Wert für eine App-Instanz zurück, je nachdem, ob sie in der Kontrollgruppe oder der neuen Anzeigenvariantengruppe platziert wurde, es sei denn, es wurden Änderungen in der Firebase-Konsole 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