یک آداپتور سیگنال امن توسعه دهید

اگر SDK ارائه دهنده سیگنال دارید که سیگنال‌های مناقصه در زمان واقعی (RTB) تولید می‌کند، می‌توانید یک آداپتور سیگنال امن ایجاد کنید تا Google Mobile Ads SDK بتواند سیگنال‌ها را از SDK شما جمع‌آوری کند.

Google Mobile Ads SDK سیگنال‌های شما را به خریداران مجاز و خریداران داوطلب آزاد منتخب ارسال می‌کند.

نمودار زیر چرخه حیات درخواست-پاسخ را برای جمع‌آوری سیگنال امن نشان می‌دهد:

یک آداپتور سیگنال امن مسئول مقداردهی اولیه آداپتور و جمع‌آوری سیگنال است.

یک آداپتور سیگنال امن پیاده‌سازی کنید

یک آداپتور سیگنال امن برای Google Mobile Ads SDK پیاده‌سازی کنید تا سیگنال‌ها را از SDK شما جمع‌آوری کند.

این راهنما نحوه پیاده‌سازی یک آداپتور سیگنال امن را با بسط دادن کلاس انتزاعی RtbAdapter پوشش می‌دهد.

مثال زیر کلاس انتزاعی RtbAdapter ارث بری می‌کند:

جاوا

public class SampleAdapterSnippets extends RtbAdapter {

مقداردهی اولیه آداپتور

کیت توسعه Google Mobile Ads SDK هنگامی که کیت توسعه نرم‌افزار Google Mobile Ads SDK آداپتور سیگنال امن شما را نمونه‌سازی می‌کند، متد initialize() را فراخوانی می‌کند. از این متد برای مقداردهی اولیه SDK خود استفاده کنید.

وقتی SDK شما به طور کامل راه‌اندازی شد و برای جمع‌آوری سیگنال‌ها توسط Google Mobile Ads SDK آماده شد، تابع InitializationCompleteCallback را فراخوانی کنید.

اگر آداپتور سیگنال امن شما تماس برقرار نکرد، Google Mobile Ads SDK سیگنال‌هایی را از آداپتور سیگنال امن شما جمع‌آوری نمی‌کند.

مثال زیر تابع فراخوانی تکمیلی را فراخوانی می‌کند تا به Google Mobile Ads SDK اطلاع دهد که SDK شما با موفقیت راه‌اندازی شده است:

جاوا

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

گزارش آداپتور و نسخه SDK

آداپتور سیگنال امن شما باید هم نسخه آداپتور و هم نسخه SDK شما را گزارش دهد. Google Mobile Ads SDK از این نسخه‌ها برای گزارش‌دهی و عیب‌یابی استفاده می‌کند.

اگر SDK شما این آداپتور را در همان فایل باینری پیاده‌سازی کرده باشد، می‌توانید نسخه یکسانی را برای هر دو نسخه آداپتور و SDK برگردانید.

مثال زیر نسخه آداپتور سیگنال امن شما را برمی‌گرداند:

جاوا

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

مثال زیر نسخه SDK شما را که آداپتور سیگنال امن شما با آن تعامل دارد، برمی‌گرداند:

جاوا

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

SDK_VERSION_STRING را با رشته نسخه SDK خود جایگزین کنید.

جمع‌آوری سیگنال‌ها

در هر درخواست تبلیغ، Google Mobile Ads SDK سیگنال‌ها را به طور همزمان از تمام آداپتورهای موجود در یک رشته پس‌زمینه جمع‌آوری می‌کند.

مثال زیر با فراخوانی متد SignalCallbacks.onSuccess() ، سیگنال‌ها را جمع‌آوری کرده و به Google Mobile Ads SDK برمی‌گرداند:

جاوا

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

SAMPLE_SIGNAL_PLACEHOLDER با رشته سیگنال امن خود جایگزین کنید.

جمع‌آوری سیگنال باید ظرف یک ثانیه تکمیل شود. اگر جمع‌آوری سیگنال بیش از یک ثانیه طول کشید، هنگام مقداردهی اولیه آداپتور، ذخیره سیگنال‌ها در آداپتور سیگنال امن یا SDK خود را در نظر بگیرید.

اگر آداپتور سیگنال امن شما در جمع‌آوری سیگنال‌ها ناموفق بود، یک خطا به متد signalCallbacks.onFailure() ارسال کنید.

سیگنال‌های مبهم

وقتی سیگنال‌های امن را با پیشنهاددهندگان و شرکای گزینش به اشتراک می‌گذارید ، باید سیگنال‌ها را مبهم‌سازی کنید.