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 umożliwić Google Mobile Ads SDK (Legacy) zbieranie sygnałów z Twojego pakietu SDK.

Google Mobile Ads SDK (Legacy) 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 (Legacy), 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 (Legacy) wywołuje metodę initialize() gdy Google Mobile Ads SDK (Legacy) 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 zbierania sygnałów przez Google Mobile Ads SDK (Legacy), wywołaj wywołanie zwrotne InitializationCompleteCallback.

Jeśli adapter bezpiecznych sygnałów nie wywoła wywołania zwrotnego, Google Mobile Ads SDK (Legacy) nie będzie zbierać sygnałów z tego adaptera.

Poniższy przykład wywołuje wywołanie zwrotne informujące o zakończeniu, aby poinformować Google Mobile Ads SDK (Legacy), ż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 (Legacy) 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 (Legacy) zbiera sygnały jednocześnie ze wszystkich adapterów w wątku w tle.

Poniższy przykład zbiera i zwraca sygnały do Google Mobile Ads SDK (Legacy) 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 1 sekundy. Jeśli zbieranie sygnałów trwa dłużej niż 1 sekundę, rozważ buforowanie sygnałów w adapterze bezpiecznych sygnałów lub pakiecie SDK podczas inicjowania adaptera.

Jeśli adapter bezpiecznych sygnałów nie zbierze 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.