Catch up on everthing we announced at this year's Firebase Summit. Learn more

Samouczek: testowanie przyjęcia nowych formatów reklam AdMob

Krok 3: obsługuj wartości parametrów zdalnej konfiguracji w kodzie aplikacji


Wstęp: Badanie przyjęcie nowy format reklamy AdMob za pomocą Firebase
Krok 1: Korzystanie z AdMob, aby utworzyć nową odmianę jednostki reklamowej do testowania
Krok 2: Konfigurowanie test A / B w konsoli Firebase

Krok 3: obsługuj wartości parametrów zdalnej konfiguracji w kodzie aplikacji

Krok 4: Uruchom test / B i przegląd wyników badań w konsoli Firebase
Krok 5: Zdecyduj, czy rozwałkować nowy format reklamy


Pod koniec ostatniego etapu, utworzony parametr Config (Remote SHOW_NEW_AD_KEY ). W tym kroku dodamy logikę do kodu swojej aplikacji na co aplikacja powinna wyświetlić na podstawie wartości tego parametru - true (pokazać nową reklamę) kontra false (nie pokazują nową reklamę).

Dodaj wymagane pakiety SDK

Przed użyciem Zdalnej konfiguracji w kodzie aplikacji dodaj zarówno pakiet SDK Zdalnej konfiguracji, jak i pakiet Firebase SDK dla Google Analytics do plików kompilacji projektu.

Szybki

Dodaj i zainstaluj następujące pody w swoim pliku pod:

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

Cel C

Dodaj i zainstaluj następujące pody w swoim pliku pod:

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

Jawa

Dodaj następujące zależności bibliotecznych do build.gradle pliku:

implementation 'com.google.android.gms:play-services-ads:20.5.0'
implementation 'com.google.firebase:firebase-analytics:20.0.0'
implementation 'com.google.firebase:firebase-config:21.0.1'

Kotlin+KTX

Dodaj następujące zależności bibliotecznych do build.gradle pliku:

implementation 'com.google.android.gms:play-services-ads:20.5.0'
implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
implementation 'com.google.firebase:firebase-config-ktx:21.0.1'

Jedność

Pobierz i zainstaluj pakiet Firebase Unity SDK, a następnie dodaj do projektu następujące pakiety Unity:

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Skonfiguruj instancję Zdalnej konfiguracji

Aby użyć wartości parametrów Zdalna konfiguracja, skonfiguruj wystąpienie Zdalnej konfiguracji tak, aby było skonfigurowane do pobierania nowych wartości dla wystąpienia aplikacji klienckiej.

W tym przykładzie Zdalna konfiguracja jest skonfigurowana do sprawdzania nowych wartości parametrów raz na godzinę.

Szybki

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

Cel C

self.remoteConfig = [FIRRemoteConfig remoteConfig];
FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
remoteConfigSettings.minimumFetchInterval = 3600;
self.remoteConfig.configSettings = remoteConfigSettings;

Jawa

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)

Jedność

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

Pobierz i aktywuj zdalną konfigurację

Pobierz i aktywuj parametry zdalnej konfiguracji, aby można było rozpocząć korzystanie z nowych wartości parametrów.

Musisz wykonać to wywołanie jak najwcześniej w fazie ładowania aplikacji, ponieważ to wywołanie jest asynchroniczne i musisz wstępnie pobrać wartość Zdalnej konfiguracji, aby aplikacja wiedziała, czy wyświetlać reklamę.

Szybki

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

Cel 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];
}];

Jawa

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

Jedność

remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
  if (task.IsFaulted) {
    Debug.LogWarning("Config params failed to update");
  } else {
    Debug.Log("Config params updated: " + task.Result);
  }
  LoadAdUnit();
});

Twoja aplikacja jest teraz gotowa do obsługi parametru zdalnej konfiguracji utworzonego podczas konfiguracji testu A/B we wcześniejszej części tego samouczka.

Użyj wartości parametru Zdalna konfiguracja

Użyj wstępnie naciągane Remote Config wartość w loadAdUnit() funkcji w celu określenia, czy instancja aplikacja powinna pokazać (wartość parametru z true ), czy nie pokazać (wartość parametru false ) nową jednostkę nagrodzony śródmiąższowe reklam.

Szybki

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

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

Jawa

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

Jedność

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

Dodaj inne kontrole dla wartości parametru

Istnieją inne obszary w kodzie aplikacji, w których musisz sprawdzić wartość tego parametru Zdalnej konfiguracji, aby określić, która reklama zostanie załadowana. Na przykład możesz zdecydować, czy ponownie załadować reklamę po tym, jak użytkownik zakończy przeglądanie bieżącej.

Wywołania pobierania i aktywacji należy wykonać jako pierwsze, aby uzyskać wszelkie zmiany wartości parametrów — na przykład, jeśli zdecydujesz się zakończyć lub utworzyć nowy eksperyment.

Stamtąd możesz zawsze sprawdzić wartość parametru za pomocą następujących wywołań:

Szybki

remoteConfig["showNewAdKey"].boolValue

Cel C

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

Jawa

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin+KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Jedność

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Te wywołania zawsze zwracają tę samą wartość dla wystąpienia aplikacji w zależności od tego, czy zostało ono umieszczone w grupie kontrolnej, czy w nowej grupie wariantów reklamy, chyba że w konsoli Firebase wprowadzono jakiekolwiek zmiany, które zostały pobrane i aktywowane w poprzednich wywołaniach.




Krok 2: Konfigurowanie testu A / B w konsoli Firebase Krok 4: Rozpocznij test / B & testowe ocena wyników