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

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

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

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

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

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

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

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

مثال زیر پروتکل GADRTBAdapter را پیاده‌سازی می‌کند:

هدف-سی

@interface SampleAdapterSnippets : NSObject <GADRTBAdapter>
@end

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

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

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

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

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

هدف-سی

+ (void)setUpWithConfiguration:(GADMediationServerConfiguration *)configuration
             completionHandler:(GADMediationAdapterSetUpCompletionBlock)completionHandler {
  // Add your SDK initialization logic here.

  // Invoke the completionHandler once initialization completes. Pass a nil
  // error to indicate initialization succeeded.
  completionHandler(nil);
}

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

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

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

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

هدف-سی

+ (GADVersionNumber)adapterVersion {
  // If your secure signals SDK implements this adapter in the same binary
  // return the same version as your SDK.
  // return [self adSDKVersion];

  // If you built a separate binary for this secure signals adapter, return
  // the adapter's version here.
  GADVersionNumber version = {};
  version.majorVersion = 4;
  version.minorVersion = 5;
  version.patchVersion = 6;
  return version;
}

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

هدف-سی

+ (GADVersionNumber)adSDKVersion {
  // Return your SDK's version string here.
  NSString *versionString = kSDKVersionString;
  NSArray<NSString *> *components = [versionString componentsSeparatedByString:@"."];
  GADVersionNumber version = {};
  if (components.count == 3) {
    version.majorVersion = components[0].integerValue;
    version.minorVersion = components[1].integerValue;
    version.patchVersion = components[2].integerValue;
  } else {
    NSLog(@"Unexpected version string: %@. Returning 0.0.0 for adSDKVersion.", versionString);
  }
  return version;
}

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

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

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

مثال زیر با فراخوانی کنترل‌کننده‌ی تکمیل GADRTBSignalCompletionHandler سیگنال‌ها را جمع‌آوری کرده و به Google Mobile Ads SDK برمی‌گرداند:

هدف-سی

- (void)collectSignalsForRequestParameters:(GADRTBRequestParameters *)params
                         completionHandler:(GADRTBSignalCompletionHandler)handler {
  // Add your signal collection logic here.
  NSString *signals = kSampleSignalPlaceholder;

  // Return the signals as a string to the Google Mobile Ads SDK.
  handler(signals, nil);
}

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

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

اگر آداپتور سیگنال امن شما در جمع‌آوری سیگنال‌ها ناموفق بود، کنترل‌کننده‌ی تکمیل را با سیگنال‌های nil و یک شیء NSError فراخوانی کنید.

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

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

برای موارد اضافی شبکه تبلیغاتی، مقدار nil را برگردانید

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

در مثال زیر، متد +networkExtrasClass مقدار nil را برمی‌گرداند:

هدف-سی

+ (nullable Class<GADAdNetworkExtras>)networkExtrasClass {
  // Network extras are not applicable because signal providers do not request ads.
  return nil;
}