Développer un adaptateur de signaux sécurisés

Si vous disposez d'un SDK de fournisseur de signaux qui génère des signaux d'enchères en temps réel (RTB) , vous pouvez développer un adaptateur de signaux sécurisés pour permettre à Google Mobile Ads SDK de collecter des signaux à partir de votre SDK.

Google Mobile Ads SDK transmet vos signaux aux acheteurs Authorized Buyers et Open Bidding participants sélectionnés.

Le schéma suivant illustre le cycle de vie requête/réponse pour la collecte de signaux sécurisés :

Un adaptateur de signaux sécurisés est responsable de l'initialisation de l'adaptateur et de la collecte des signaux.

Implémenter un adaptateur de signaux sécurisés

Implémentez un adaptateur de signaux sécurisés pour Google Mobile Ads SDK afin de collecter des signaux à partir de votre SDK.

Ce guide explique comment implémenter un adaptateur de signaux sécurisés en étendant la classe abstraite RtbAdapter.

L'exemple suivant étend la classe abstraite RtbAdapter :

Java

public class SampleAdapterSnippets extends RtbAdapter {

Initialiser l'adaptateur

Google Mobile Ads SDK appelle la initialize() méthode lorsque Google Mobile Ads SDK instancie votre adaptateur de signaux sécurisés. Utilisez cette méthode pour initialiser votre SDK.

Lorsque votre SDK est entièrement initialisé et prêt à ce que Google Mobile Ads SDK collecte des signaux, appelez le InitializationCompleteCallback rappel.

Si votre adaptateur de signaux sécurisés ne rappelle pas, Google Mobile Ads SDK ne collecte pas de signaux à partir de votre adaptateur de signaux sécurisés.

L'exemple suivant appelle le rappel de fin pour informer Google Mobile Ads SDK que votre SDK a été initialisé correctement :

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

Signaler la version de l'adaptateur et du SDK

Votre adaptateur de signaux sécurisés doit signaler à la fois la version de votre adaptateur et celle de votre SDK. Google Mobile Ads SDK utilise ces versions pour la création de rapports et la résolution des problèmes.

Si votre SDK implémente cet adaptateur dans le même binaire, vous pouvez renvoyer la même version pour l'adaptateur et le SDK.

L'exemple suivant renvoie la version de votre adaptateur de signaux sécurisés :

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

L'exemple suivant renvoie la version de votre SDK avec laquelle votre adaptateur de signaux sécurisés interagit :

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

Remplacez SDK_VERSION_STRING par la chaîne de version de votre SDK.

Collecter des signaux

Pour chaque demande d'annonce, Google Mobile Ads SDK collecte simultanément des signaux à partir de tous les adaptateurs sur un thread d'arrière-plan.

L'exemple suivant collecte et renvoie des signaux à Google Mobile Ads SDK en appelant la méthode 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);
}

Remplacez SAMPLE_SIGNAL_PLACEHOLDER par votre chaîne de signaux sécurisés.

La collecte des signaux doit être terminée dans un délai d'une seconde. Si la collecte des signaux prend plus d'une seconde, envisagez de mettre en cache les signaux dans votre adaptateur de signaux sécurisés ou votre SDK lorsque vous initialisez l'adaptateur.

Si votre adaptateur de signaux sécurisés ne parvient pas à collecter des signaux, transmettez une erreur à la méthode signalCallbacks.onFailure().

Obfusquer les signaux

Lorsque vous partagez des signaux sécurisés avec des enchérisseurs et des curateurs partenaires, vous devez obfusquer les signaux.