查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

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

Krok 3: Obsługuj wartości parametrów Zdalnej konfiguracji w kodzie aplikacji


Wprowadzenie: przetestuj nowy format reklam AdMob za pomocą Firebase
Krok 1: za pomocą AdMob utwórz nowy wariant jednostki reklamowej do testowania
Krok 2. Skonfiguruj test A/B w konsoli Firebase

Krok 3: Obsługuj wartości parametrów Zdalnej konfiguracji w kodzie aplikacji

Krok 4: Rozpocznij test A/B i przejrzyj wyniki testu w konsoli Firebase
Krok 5: Zdecyduj, czy wprowadzić nowy format reklamy


Pod koniec ostatniego kroku utworzyłeś parametr zdalnej konfiguracji ( SHOW_NEW_AD_KEY ). W tym kroku dodasz logikę do kodu aplikacji określającą, co powinna wyświetlać Twoja aplikacja na podstawie wartości tego parametru — true (pokaż nową reklamę) lub false ( nie wyświetlaj nowej reklamy).

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'

Java

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

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

Kotlin+KTX

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

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

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;

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)

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 Remote Config, aby można było zacząć używać 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];
}];

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

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 pobranej wartości Zdalnej konfiguracji w funkcji loadAdUnit() , aby określić, czy wystąpienie aplikacji powinno pokazywać (wartość parametru true ), czy nie (wartość parametru false ) nową pełnoekranową jednostkę reklamową z nagrodą.

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

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

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ć jakiekolwiek 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;

Java

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 : Skonfiguruj test A/B w konsoli Firebase Krok 4 : Rozpocznij test A/B i sprawdź wyniki testu