Tutorial: otimizar a monetização híbrida com a AdMob, o Google Analytics e o Firebase

Etapa 3: configurar a Firebase Remote Config para mostrar experiências de anúncios específicas


Introdução: Otimize a nuvem híbrida monetização usando AdMob, Google Analytics e Firebase
Etapa 1: Use AdMob para criar novos blocos de anúncios para display.
Etapa 2: Configuração Google Analytics

Etapa 3: Configuração Firebase Remote Config para mostrar experiências de anúncios específicas


Ao final da última etapa, você aprendeu sobre os públicos-alvo do Google Analytics. Em nesta etapa, você vai criar um parâmetro Remote Config controlado por booleano chamada ad_control_switch, que usa os "Compradores" público-alvo. Você vai Em seguida, adicione a lógica ao código do app para definir o que ele deve mostrar com base o valor desse parâmetro.

Configurar parâmetros e condições do Remote Config no console do Firebase

  1. No console do Firebase, abra seu projeto do Firebase.

  2. No painel do lado esquerdo, expanda a seção Engajar e selecione Configuração remota.

  3. Clique em Criar configuração (ou Adicionar parâmetro se você usou Remote Config antes).

  4. No painel Criar parâmetro, conclua as seguintes etapas:

    1. No campo Nome do parâmetro, insira ad_control_switch.

    2. No menu suspenso Data type, selecione Booleano.

    3. Clique em Criar nova e selecione Criar nova condição.

  5. Na caixa de diálogo Definir uma nova condição, siga estas etapas:

    1. No campo Nome, digite Purchasers Group (ou qualquer outro identificável para a condição).

    2. No menu suspenso Aplicável se..., selecione Públicos-alvo de usuários.

    3. No menu suspenso Selecionar públicos-alvo, escolha Compradores.

    4. Clique em Salvar condição.

  6. De volta ao painel Criar parâmetro, conclua as seguintes etapas:

    1. Para o Valor de Grupo de compradores, selecione false.

    2. Em Valor padrão, selecione true.

  7. Clique em Salvar e em Publicar alterações.

Essa configuração vai verificar se o usuário está na lista de "Compradores" público-alvo (ou seja, um usuário pagante):

  • Se o usuário estiver na seção "Compradores" público-alvo, Remote Config vai retornam o valor de false para o parâmetro ad_control_switch.

  • Se o usuário não estiver na lista de "Compradores" público-alvo, Remote Config vai retornar o valor de true para o parâmetro ad_control_switch.

Nas etapas a seguir, você vai implementar o Remote Config no app para manipular esses valores de parâmetro.

Adicionar o SDK do Remote Config ao app

Antes de usar Remote Config no código do aplicativo, adicione o Remote Config de SDK à base de código do seu app. Seu app precisa tem o SDK Google Mobile Ads (AdMob) e o SDK do Google Analytics para Firebase das etapas anteriores deste tutorial.

Swift

Adicione e instale o pod Remote Config no seu podfile:

pod 'Firebase/RemoteConfig'

Android

Adicione a dependência da biblioteca Remote Config ao arquivo build.gradle:

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

Flutter

Na raiz do seu projeto do Flutter, execute o seguinte comando para instalar plug-in Remote Config:

flutter pub add firebase_remote_config

Unity

Faça o download e instale a versão mais recente SDK do Firebase para Unity e adicione o pacote Remote Config ao seu projeto:
FirebaseRemoteConfig.unitypackage

Configure a instância Remote Config

Para que seu app possa usar os valores de parâmetro Remote Config, configure o Instância de Remote Config para que ela possa buscar novos valores para o app cliente instância.

Neste exemplo, Remote Config está configurado para verificar se há novos parâmetros. valores uma vez por hora.

Swift

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

Kotlin+KTX

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

Busque e ative Remote Config

Busque e ative o parâmetro Remote Config para que ele possa começar a usar os novos valores de parâmetro.

Faça essa chamada o mais cedo possível na fase de carregamento do app. porque essa chamada é assíncrona e você precisa do valor Remote Config pré-buscada para que seu app saiba se deve exibir um anúncio.

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

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

Seu app agora está configurado para processar o parâmetro Remote Config que você criados anteriormente nesta etapa.

Usar o valor de parâmetro Remote Config

Use o valor Remote Config pré-buscado na função loadAdUnit() para determine se a instância do app precisa realizar uma das seguintes ações:

  • O valor do parâmetro ad_control_switch é resolvido como true: mostre o anúncio intersticial (porque o usuário é um usuário não pagante).

  • O valor do parâmetro ad_control_switch é resolvido como false: não mostre o (porque o usuário é um usuário 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+KTX

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

Lançar o app

Como a lógica para mostrar o anúncio ou não está na sua base de código, você precisa lançar uma nova versão do app com essa lógica.

Se você tiver seguido as etapas deste tutorial, seu app será iniciado imediatamente veiculando uma experiência de anúncios personalizada para seus usuários. Você pode monitorar receita de publicidade na sua conta do AdMob e no Google Analytics painéis (no console do Firebase ou na interface do Google Analytics).


Pronto. Você concluiu o tutorial para otimizar a monetização híbrida usando o AdMob, o Google Analytics e o Firebase.




Etapa 2: configure o Google Analytics