Tutorial: ottimizza la monetizzazione ibrida con AdMob, Google Analytics e Firebase

Passaggio 3: configura Firebase Remote Config per mostrare esperienze pubblicitarie specifiche


Introduzione: Ottimizza la monetizzazione ibrida utilizzando AdMob, Google Analytics e Firebase
Passaggio 1: utilizza AdMob per creare nuove unità pubblicitarie da visualizzare
Passaggio 2: configura Google Analytics

Passaggio 3: configuraFirebase Remote Config per mostrare esperienze pubblicitarie specifiche


Alla fine dell'ultimo passaggio, hai imparato a conoscere i segmenti di pubblico di Google Analytics. In questo passaggio, creerai un Remote Configparametro controllato tramite booleano (chiamato ad_control_switch) che utilizza il segmento di pubblico "Acquirenti". Poi, aggiungerai la logica al codice dell'app per indicare cosa deve essere visualizzato in base al valore del parametro.

Configura i parametri e le condizioni Remote Config nella console Firebase

  1. Nella console Firebase, apri il progetto Firebase.

  2. Nel riquadro a sinistra, espandi la sezione Coinvolgimento e seleziona Configurazione remota.

  3. Fai clic su Crea configurazione (o Aggiungi parametro se hai già utilizzato Remote Config).

  4. Nel riquadro Crea parametro, completa i seguenti passaggi:

    1. Nel campo Nome parametro, inserisci ad_control_switch.

    2. Nel menu a discesa Data type, seleziona Booliano.

    3. Fai clic su Crea nuova e poi seleziona Crea nuova condizione.

  5. Nella finestra di dialogo Definisci una nuova condizione, completa i seguenti passaggi:

    1. Nel campo Nome, inserisci Purchasers Group (o qualsiasi altro nome facilmente identificabile per la condizione).

    2. Nel menu a discesa Si applica se…, seleziona Segmenti di pubblico utente.

    3. Nel menu a discesa Seleziona uno o più segmenti di pubblico, seleziona Acquirenti.

    4. Fai clic su Salva condizione.

  6. Nel riquadro Crea parametro, completa i seguenti passaggi:

    1. Per il Valore di Gruppo di acquirenti, seleziona false.

    2. Per Valore predefinito, seleziona true.

  7. Fai clic su Salva e poi su Pubblica modifiche.

Questa configurazione verifica se l'utente fa parte del segmento di pubblico "Acquirenti" (ovvero è un utente pagante):

  • Se l'utente fa parte del segmento di pubblico "Acquirenti", Remote Config restituirà il valore di false per il parametro ad_control_switch.

  • Se l'utente non fa parte del segmento di pubblico "Acquirenti", Remote Config restituirà il valore di true per il parametro ad_control_switch.

Nei passaggi successivi, implementerai Remote Config nella tua app per gestire questi valori parametro.

Aggiungi l'SDK Remote Config alla tua app

Prima di utilizzare Remote Config nel codice dell'applicazione, aggiungi l'SDK Remote Config alla base di codice dell'app. Tieni presente che la tua app dovrebbe già avere l'SDK Google Mobile Ads (AdMob) e l'SDK Google Analytics per Firebase dei passaggi precedenti di questo tutorial.

Swift

Aggiungi e installa il pod Remote Config nel tuo podfile:

pod 'Firebase/RemoteConfig'

Android

Aggiungi la dipendenza della libreria Remote Config al file build.gradle:

implementation 'com.google.firebase:firebase-config:22.0.1'

Flutter

Dalla directory principale del progetto Flutter, esegui il seguente comando per installare il plug-in Remote Config:

flutter pub add firebase_remote_config

Unity

Scarica e installa l'SDK Firebase Unity più recente, quindi aggiungi il pacchetto Remote Config al tuo progetto:
FirebaseRemoteConfig.unitypackage

Configura l'istanza Remote Config

Affinché l'app possa utilizzare i valori parametro Remote Config, configura l'istanza Remote Config in modo che possa recuperare nuovi valori per l'istanza dell'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

Kotlin

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

Java

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Flutter

remoteConfig = FirebaseRemoteConfig.instance;
  final configSettings = FirebaseRemoteConfigSettings(
    minimumFetchInterval: Duration(hours: 1),
  );
  await remoteConfig.setConfigSettings(configSettings);

  // Use the `onConfigUpdated` callback to listen for changes to the config settings.
  remoteConfig.onConfigUpdated.listen((_) {
    print('Config settings confirmed');
  });

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 il parametro Remote Config in modo che possa iniziare a utilizzare i nuovi valori parametro.

Ti consigliamo di effettuare questa chiamata il prima possibile durante la fase di caricamento dell'app poiché si tratta di una chiamata asincrona e l'app avrà bisogno del valore Remote Config prelevato in modo da sapere se mostrare un 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()
}

Kotlin

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

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

Flutter

remoteConfig = FirebaseRemoteConfig.instance;

// Fetch and activate the latest Remote Config values.
final updated = await remoteConfig.fetchAndActivate();

// Check if the config params were updated successfully.
if (updated) {
  print('Config params updated');
} else {
  print('Config params failed to update');
}

// Load the ad unit.
_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();
});

La tua app è ora configurata per gestire il parametro Remote Config che hai creato in precedenza in questo passaggio.

Utilizzare il valore del parametro Remote Config

Utilizza il valore Remote Config prerecuperato nella funzione loadAdUnit() per determinare se l'istanza dell'app deve eseguire una delle seguenti operazioni:

  • Il valore del parametro ad_control_switch viene risolto in true: mostra l'annuncio interstitial (poiché l'utente non è pagante).

  • Il valore del parametro ad_control_switch viene risolto in false: non mostrare l'annuncio (in quanto l'utente è un utente pagante).

Swift

private func loadAdUnit() {
  let showAds = remoteConfig["ad_control_switch"].boolValue

  if showAds {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Kotlin

private fun loadAdUnit() {
  var showAds = remoteConfig.getBoolean(ad_control_switch)

  if (showAds) {
      // Load interstitial ad (implemented ad unit)
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Don't show ads.
    }
}

Java

private void loadAdUnit() {
    boolean showAds =
      mFirebaseRemoteConfig.getBoolean(ad_control_switch);

    if (showAds) {
      // Load interstitial ad (implemented ad unit)
      // per AdMob instructions (the first step of this tutorial).
    } else {
      // Don't show ads.
    }
}

Flutter

void _loadAdUnit() {
  bool showAds = remoteConfig.getBool(ad_control_switch);

  if (showAds) {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Unity

void LoadAdUnit() {
  bool showAds =
      remoteConfig.GetValue("ad_control_switch").BooleanValue;

  if (showAds) {
    // Load interstitial ad (implemented ad unit)
    // per AdMob instructions (the first step of this tutorial).
  } else {
    // Don't show ads.
  }
}

Rilasciare l'app

Poiché la logica per la visualizzazione o meno dell'annuncio si trova all'interno della base di codice, devi rilasciare una nuova versione dell'app contenente questa logica.

Se hai seguito i passaggi di questo tutorial, la tua app dovrebbe iniziare immediatamente a offrire ai tuoi utenti un'esperienza pubblicitaria in-app personalizzata. Puoi monitorare le tue entrate pubblicitarie sia nel tuo account AdMob sia nelle dashboard di Google Analytics (nella console Firebase o nell'interfaccia utente di Google Analytics).


E questo è tutto. Hai completato il tutorial per ottimizzare la monetizzazione ibrida utilizzando AdMob, Google Analytics e Firebase.




Passaggio 2: configura Google Analytics