Desenvolver um adaptador de indicador seguro

Se você tiver um SDK de provedor de indicadores que gere indicadores de lances em tempo real (RTB), desenvolva um adaptador de indicadores seguros para permitir que o Google Mobile Ads SDK colete indicadores do seu SDK.

Google Mobile Ads SDK encaminha seus indicadores para compradores participantes selecionados do Authorized Buyers e do Open Bidding.

O diagrama a seguir ilustra o ciclo de vida de solicitação-resposta para coleta de indicadores seguros:

Um adaptador de indicador seguro é responsável pela inicialização do adaptador e pela coleta de indicadores.

Implementar um adaptador de indicador seguro

Implemente um adaptador de indicadores seguros para Google Mobile Ads SDK e colete indicadores do seu SDK.

Este guia mostra como implementar um adaptador de indicadores seguros estendendo a classe abstrata RtbAdapter.

O exemplo a seguir estende a classe abstrata RtbAdapter:

Java

public class SampleAdapterSnippets extends RtbAdapter {

Inicializar o adaptador

Google Mobile Ads SDK chama o método initialize() quando Google Mobile Ads SDK cria uma instância do seu adaptador de indicadores seguros. Use esse método para inicializar o SDK.

Quando o SDK for totalmente inicializado e estiver pronto para que o Google Mobile Ads SDK colete indicadores, chame o callback InitializationCompleteCallback.

Se o adaptador de indicadores seguros não fizer um retorno de chamada, o Google Mobile Ads SDK não vai coletar indicadores dele.

O exemplo a seguir chama o callback de conclusão para informar ao Google Mobile Ads SDK que o SDK foi inicializado:

Java

@Override
public void initialize(
    Context context,
    InitializationCompleteCallback initializationCompleteCallback,
    List<MediationConfiguration> configurations) {

  // Add your SDK initialization logic here.

  // Invoke the InitializationCompleteCallback once initialization completes.
  initializationCompleteCallback.onInitializationSucceeded();
}

Informar a versão do adaptador e do SDK

O adaptador de indicadores seguros precisa informar a versão do adaptador e do SDK. O Google Mobile Ads SDK usa essas versões para geração de relatórios e solução de problemas.

Se o SDK implementar esse adaptador no mesmo binário, retorne a mesma versão para o adaptador e o SDK.

O exemplo a seguir retorna a versão do seu adaptador de indicadores seguros:

Java

@Override
public VersionInfo getVersionInfo() {
  // If your SDK implements this adapter in the same binary, return
  // the same version as your SDK.
  // return getSDKVersionInfo();

  // If you built a separate binary for this adapter, return
  // the adapter's version here.
  int major = 4;
  int minor = 5;
  int micro = 6;
  return new VersionInfo(major, minor, micro);
}

O exemplo a seguir retorna a versão do SDK com que seu adaptador de indicador seguro interage:

Java

@Override
public VersionInfo getSDKVersionInfo() {

  // Return your SDK's version string here.
  String versionString = SDK_VERSION_STRING;
  String[] splits = versionString.split("\\.");
  if (splits.length >= 3) {
    try {
      int major = Integer.parseInt(splits[0]);
      int minor = Integer.parseInt(splits[1]);
      int micro = Integer.parseInt(splits[2]);
      return new VersionInfo(major, minor, micro);
    } catch (NumberFormatException e) {
      // Fall through to log warning and return 0.0.0.
    }
  }

  Log.w(
      TAG,
      String.format(
          "Unexpected SDK version format: %s. Returning 0.0.0 for SDK version.", versionString));
  return new VersionInfo(0, 0, 0);
}

Substitua SDK_VERSION_STRING pela string da versão do SDK.

Coletar indicadores

Em cada solicitação de anúncio, o Google Mobile Ads SDK coleta indicadores simultaneamente de todos os adaptadores em uma linha de execução em segundo plano.

O exemplo a seguir coleta e retorna indicadores para Google Mobile Ads SDK ao chamar o método SignalCallbacks.onSuccess():

Java

@Override
public void collectSignals(RtbSignalData rtbSignalData, SignalCallbacks signalCallbacks) {

  // Add your signal collection logic here.
  String signals = SAMPLE_SIGNAL_PLACEHOLDER;

  // Return the signals as a string to the Google Mobile Ads SDK.
  signalCallbacks.onSuccess(signals);
}

Substitua SAMPLE_SIGNAL_PLACEHOLDER pela sua string de sinal seguro.

A coleta de indicadores precisa ser concluída em um segundo. Se a coleta de indicadores levar mais de um segundo, considere armazenar em cache os indicadores no seu adaptador de indicadores seguros ou no SDK ao inicializar o adaptador.

Se o adaptador de indicadores seguros não coletar indicadores, transmita um erro para o método signalCallbacks.onFailure().

Ofuscar indicadores

Ao compartilhar indicadores seguros com bidders e parceiros de curadoria, é necessário ofuscar os indicadores.