Desenvolver um adaptador de indicador seguro

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

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

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

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

Implementar um adaptador de indicadores seguros

Implemente um adaptador de indicadores seguros para que Google Mobile Ads SDK 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 instancia o adaptador de indicadores seguros. Use esse método para inicializar o SDK.

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

Se o adaptador de indicadores seguros não fizer o callback, Google Mobile Ads SDK não vai coletar indicadores do adaptador de indicadores seguros.

O exemplo a seguir chama o callback 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. Google Mobile Ads SDK usa essas versões para relatórios e solução de problemas.

Se o SDK implementar esse adaptador no mesmo binário, você poderá retornar a mesma versão para o adaptador e o SDK.

O exemplo a seguir retorna a versão do 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 o adaptador de indicadores seguros 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, 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 chamando 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 string de indicador seguro.

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

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

Ofuscar indicadores

Ao compartilhar indicadores seguros com bidders e parceiros de curadoria, você precisa ofuscar os indicadores.