Mengembangkan adaptor sinyal aman

Jika memiliki SDK penyedia sinyal yang menghasilkan sinyal bidding real-time (RTB), Anda dapat mengembangkan adaptor sinyal aman agar Google Mobile Ads SDK dapat mengumpulkan sinyal dari SDK Anda.

Google Mobile Ads SDK meneruskan sinyal Anda ke pembeli Authorized Buyers dan Bidding Terbuka yang berpartisipasi dan dipilih.

Diagram berikut mengilustrasikan siklus proses permintaan-respons untuk pengumpulan sinyal yang aman:

Adaptor sinyal aman bertanggung jawab atas inisialisasi adaptor dan pengumpulan sinyal.

Menerapkan adaptor sinyal aman

Terapkan adaptor sinyal aman untuk Google Mobile Ads SDK guna mengumpulkan sinyal dari SDK Anda.

Panduan ini membahas cara menerapkan adaptor sinyal aman dengan memperluas class abstrak RtbAdapter.

Contoh berikut memperluas class abstrak RtbAdapter:

Java

public class SampleAdapterSnippets extends RtbAdapter {

Menginisialisasi adaptor

Google Mobile Ads SDK memanggil metode initialize() saat Google Mobile Ads SDK membuat instance adaptor sinyal aman Anda. Gunakan metode ini untuk menginisialisasi SDK Anda.

Saat SDK Anda diinisialisasi sepenuhnya dan siap bagi Google Mobile Ads SDK untuk mengumpulkan sinyal, panggil callback InitializationCompleteCallback.

Jika adaptor sinyal aman Anda tidak melakukan panggilan balik, Google Mobile Ads SDK tidak akan mengumpulkan sinyal dari adaptor sinyal aman Anda.

Contoh berikut memanggil callback penyelesaian untuk memberi tahu Google Mobile Ads SDK bahwa SDK Anda telah berhasil diinisialisasi:

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

Melaporkan versi SDK dan adaptor

Adaptor sinyal aman Anda harus melaporkan versi adaptor dan versi SDK Anda. Google Mobile Ads SDK menggunakan versi ini untuk pelaporan dan pemecahan masalah.

Jika SDK Anda menerapkan adaptor ini dalam biner yang sama, Anda dapat menampilkan versi yang sama untuk versi adaptor dan SDK.

Contoh berikut menampilkan versi adaptor sinyal aman Anda:

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

Contoh berikut menampilkan versi SDK yang berinteraksi dengan adaptor sinyal aman Anda:

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

Ganti SDK_VERSION_STRING dengan string versi SDK Anda.

Mengumpulkan sinyal

Pada setiap permintaan iklan, Google Mobile Ads SDK mengumpulkan sinyal secara bersamaan dari semua adapter pada thread latar belakang.

Contoh berikut mengumpulkan dan menampilkan sinyal ke Google Mobile Ads SDK dengan memanggil metode 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);
}

Ganti SAMPLE_SIGNAL_PLACEHOLDER dengan string sinyal aman Anda.

Pengumpulan sinyal harus selesai dalam waktu satu detik. Jika pengumpulan sinyal memerlukan waktu lebih dari satu detik, pertimbangkan untuk menyimpan sinyal dalam cache di adaptor sinyal aman atau SDK saat Anda melakukan inisialisasi adaptor.

Jika adaptor sinyal aman Anda gagal mengumpulkan sinyal, teruskan error ke metode signalCallbacks.onFailure().

Mengaburkan sinyal

Saat Anda membagikan sinyal aman kepada bidder dan partner seleksi, Anda harus meng-obfuscate sinyal tersebut.