Tutorial: prova l'adozione dei nuovi formati di annunci AdMob

Passaggio 3: gestisci i valori parametro Remote Config nel codice dell'app


Introduzione: Prova nuova adozione del formato dell'annuncio AdMob utilizzando Firebase
Passaggio 1: utilizza AdMob per creare una nuova variante dell'unità pubblicitaria da testare
Passaggio 2: configura un test A/B nella console Firebase

Passaggio 3. Gestisci i valori parametro Remote Config nel codice dell'app

Passaggio 4 – Inizia il test A/B ed esamina i risultati nella console Firebase
Passaggio 5 – Decidi se implementare il nuovo formato dell'annuncio


Al termine dell'ultimo passaggio, hai creato un parametro Remote Config (SHOW_NEW_AD_KEY). In questo passaggio, aggiungerai al codice dell'app la logica per indicare cosa deve essere visualizzato in base al valore del parametro: true (mostra il nuovo annuncio) o false (non mostrare il nuovo annuncio).

Aggiungi gli SDK richiesti

Prima di utilizzare Remote Config nel codice dell'applicazione, aggiungi sia l'SDK Remote Config sia l'SDK Firebase per Google Analytics ai file di compilazione del progetto.

Piattaforme Apple

Aggiungi e installa i seguenti pod nel tuo podfile:

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

Android

Aggiungi le seguenti dipendenze di libreria al tuo file build.gradle:

implementation 'com.google.android.gms:play-services-ads:23.4.0'
implementation 'com.google.firebase:firebase-analytics:22.1.2'
implementation 'com.google.firebase:firebase-config:22.0.0'

Unity

Scarica e installa l'SDK Firebase Unity, quindi aggiungi al progetto i seguenti pacchetti Unity:

  • FirebaseAnalytics.unitypackage
  • FirebaseRemoteConfig.unitypackage

Configura l'istanza Remote Config

Per utilizzare i valori parametro Remote Config, configura Remote Config in modo che sia configurato per il recupero di nuovi valori per il un'istanza di app client.

In questo esempio, Remote Config è configurato per verificare la presenza di nuovi valori parametro una volta ogni ora.

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+KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

Unity

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

Recupero e attivazione di Remote Config

Recupera e attiva i parametri Remote Config in modo che possa iniziare a utilizzare i nuovi valori parametro.

Ti consigliamo di effettuare questa chiamata il prima possibile nella fase di caricamento dell'app poiché questa chiamata è asincrona e avrai bisogno del valore Remote Config precaricati, in modo che la tua app sappia se pubblicare o meno l'annuncio.

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

Unity

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

Ora la tua app è pronta a gestire il parametro Remote Config che hai creato durante il test A/B configurato in precedenza in questo tutorial.

Utilizzare il valore parametro Remote Config

Usa il valore Remote Config precaricato nella funzione loadAdUnit() per determina se l'istanza dell'app deve essere visualizzata (valore parametro true) oppure non mostra (valore parametro di false) la nuova unità pubblicitaria interstitial con premio.

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

Unity

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

Aggiungere altri controlli per il valore del parametro

Ci sono altre aree nel codice dell'applicazione in cui devi controllare di questo parametro Remote Config per determinare l'esperienza pubblicitaria che verrà caricato. Ad esempio, puoi decidere se ricaricare un annuncio dopo che l'utente ha terminato di visualizzare quello corrente.

Le chiamate di recupero e attivazione devono essere eseguite per prime per ottenere eventuali modifiche ai valori parametro, ad esempio se decidi di terminare o creare un nuovo esperimento.

Da qui, puoi sempre controllare il valore del parametro utilizzando le seguenti chiamate:

Swift

remoteConfig["showNewAdKey"].boolValue

Objective-C

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

Java

mFirebaseRemoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Kotlin+KTX

remoteConfig.getBoolean(SHOW_NEW_AD_KEY)

Unity

remoteConfig.GetValue("SHOW_NEW_AD_KEY").BooleanValue

Queste chiamate restituiranno sempre lo stesso valore per un'istanza di app, a seconda sia stato inserito nel gruppo di controllo sia nel nuovo gruppo di varianti dell'annuncio, a meno che Nella console Firebase sono state apportate modifiche recuperate e attivate nelle chiamate precedenti.




Passaggio 2: configura un test A/B nella console Firebase Passaggio 4. Avvia il test A/B e esamina i risultati del test