Opracowywanie adaptera bezpiecznych sygnałów

Jeśli masz pakiet SDK dostawcy sygnałów, który generuje sygnały określania stawek w czasie rzeczywistym (RTB) sygnały, możesz utworzyć adapter bezpiecznych sygnałów, aby Google Mobile Ads SDK mógł zbierać sygnały z Twojego pakietu SDK.

Google Mobile Ads SDK przekazuje Twoje sygnały do wybranych uczestniczących kupujących w Authorized Buyers i Open Bidding.

Na diagramie poniżej przedstawiono cykl życia żądania i odpowiedzi w przypadku zbierania bezpiecznych sygnałów:

Adapter bezpiecznych sygnałów odpowiada za inicjowanie adaptera i zbieranie sygnałów.

Implementowanie adaptera bezpiecznych sygnałów

Zaimplementuj adapter bezpiecznych sygnałów dla Google Mobile Ads SDK, aby zbierać sygnały z Twojego pakietu SDK.

W tym przewodniku dowiesz się, jak zaimplementować adapter bezpiecznych sygnałów, rozszerzając klasę abstrakcyjną RtbAdapter.

Poniższy przykład rozszerza klasę abstrakcyjną RtbAdapter:

Java

public class SampleAdapterSnippets extends RtbAdapter {

Inicjowanie adaptera

Google Mobile Ads SDK wywołuje metodę initialize() gdy Google Mobile Ads SDK tworzy instancję adaptera bezpiecznych sygnałów. Użyj tej metody, aby zainicjować pakiet SDK.

Gdy pakiet SDK zostanie w pełni zainicjowany i będzie gotowy do Google Mobile Ads SDK zbierania sygnałów, wywołaj funkcję zwrotną InitializationCompleteCallback.

Jeśli adapter bezpiecznych sygnałów nie wywoła funkcji zwrotnej, Google Mobile Ads SDK nie będzie zbierać sygnałów z tego adaptera.

Poniższy przykład wywołuje funkcję zwrotną informującą o zakończeniu, aby poinformować Google Mobile Ads SDK, że pakiet SDK został zainicjowany:

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

Zgłaszanie wersji adaptera i pakietu SDK

Adapter bezpiecznych sygnałów musi zgłaszać zarówno wersję adaptera, jak i wersję pakietu SDK. Google Mobile Ads SDK używa tych wersji do raportowania i rozwiązywania problemów.

Jeśli pakiet SDK implementuje ten adapter w tym samym pliku binarnym, możesz zwrócić tę samą wersję zarówno w przypadku adaptera, jak i pakietu SDK.

Poniższy przykład zwraca wersję adaptera bezpiecznych sygnałów:

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

Poniższy przykład zwraca wersję pakietu SDK, z którym współpracuje adapter bezpiecznych sygnałów:

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

Zastąp SDK_VERSION_STRING ciągiem wersji pakietu SDK.

Zbieranie sygnałów

Przy każdym żądaniu reklamy Google Mobile Ads SDK zbiera sygnały jednocześnie ze wszystkich adapterów w wątku w tle.

Poniższy przykład zbiera sygnały i zwraca je do Google Mobile Ads SDK wywołując metodę 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);
}

Zastąp SAMPLE_SIGNAL_PLACEHOLDER ciągiem bezpiecznego sygnału.

Zbieranie sygnałów musi zostać zakończone w ciągu sekundy. Jeśli zbieranie sygnałów trwa dłużej niż sekundę, rozważ buforowanie sygnałów w adapterze bezpiecznych sygnałów lub pakiecie SDK podczas inicjowania adaptera.

Jeśli adapter bezpiecznych sygnałów nie może zebrać sygnałów, przekaż błąd do metody signalCallbacks.onFailure().

Maskowanie sygnałów

Gdy udostępniasz bezpieczne sygnały licytującym i partnerom wyboru, musisz zamaskować sygnały.