با سیگنال های امن شروع کنید

سیگنال های امن داده های رمزگذاری شده ای هستند که در دستگاه مشتری جمع آوری شده و با پیشنهاد دهندگان منتخب به اشتراک گذاشته می شوند. این راهنما نحوه جمع‌آوری و ارسال سیگنال‌های ایمن به Google Ad Manager را با استفاده از IMA SDK به شما نشان می‌دهد.

API سیگنال های امن به نسخه 3.18.1 یا بالاتر IMA SDK برای iOS نیاز دارد.

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

از یک ارائه دهنده سیگنال شخص ثالث استفاده کنید

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

دستورالعمل‌های ارائه‌دهنده شخص ثالث خود را برای راه‌اندازی حساب با آنها، شامل چارچوب‌ها و راه‌اندازی آداپتور سیگنال‌های امن آنها در برنامه خود دنبال کنید.

IMA SDK برای iOS به طور خودکار هر آداپتور سیگنال های ایمن را بدون هیچ گونه تغییر اضافی در کد شما مقداردهی اولیه می کند.

در اینجا مثالی از نحوه اضافه کردن یک آداپتور سیگنال امن به پروژه خود آورده شده است:

ارسال داده های سفارشی

علاوه بر استفاده از یک ارائه دهنده سیگنال شخص ثالث، می توانید سیگنال ها را با داده های سفارشی جمع آوری، رمزگذاری و ارسال کنید. قبل از اینکه بتوانید سیگنال‌های ایمن با داده‌های سفارشی ارسال کنید، باید سیگنال‌های سفارشی را در Ad Manager روشن کنید.

برای هر درخواست جریان، موارد زیر را انجام دهید:

  1. یک شی IMASecureSignals حاوی داده های سفارشی رمزگذاری شده شما به عنوان یک رشته ایجاد کنید.
  2. با تنظیم ویژگی IMAStreamRequest.secureSignals ، شی IMASecureSignals را به درخواست جریان خود اضافه کنید:

هدف-C

app/ViewController.m

- (void)requestStream {
  // Create a stream request. Use one of "Livestream request" or "VOD request",
  //  depending on your type of stream.
  IMAStreamRequest *request;
  if (kStreamType == StreamTypeLive) {
    // Livestream request. Replace the asset key with your value.
    request = [[IMALiveStreamRequest alloc] initWithAssetKey:kLiveStreamAssetKey
                                                networkCode:kNetworkCode
                                          adDisplayContainer:self.adDisplayContainer
                                                videoDisplay:self.imaVideoDisplay
                                                userContext:nil];
  } else {
    // VOD request. Replace the content source ID and video ID with your values.
    request = [[IMAVODStreamRequest alloc] initWithContentSourceID:kVODContentSourceID
                                                          videoID:kVODVideoID
                                                      networkCode:kNetworkCode
                                                adDisplayContainer:self.adDisplayContainer
                                                      videoDisplay:self.imaVideoDisplay
                                                      userContext:nil];
  }
  
  IMASecureSignals *signals =
      [[IMASecureSignals alloc] initWithCustomData:@"My encoded signal string"];
  request.secureSignals = signals;
  
  [self.adsLoader requestStreamWithRequest:request];
}

سویفت

app/ViewController.swift

 func requestStream() {
  // Create a stream request. Use one of "Livestream request" or "VOD request".
  let signals = IMASecureSignals(customData: "My encoded signal string")
  if ViewController.requestType == StreamType.live {
    // Livestream request.
    let request = IMALiveStreamRequest(
      assetKey: ViewController.assetKey,
      networkCode: ViewController.networkCode,
      adDisplayContainer: adDisplayContainer!,
      videoDisplay: imaVideoDisplay,
      userContext: nil)
    request.secureSignals = signals
    adsLoader?.requestStream(with: request)
  } else {
    // VOD stream request.
    let request = IMAVODStreamRequest(
      contentSourceID: ViewController.contentSourceID,
      videoID: ViewController.videoID,
      networkCode: ViewController.networkCode,
      adDisplayContainer: adDisplayContainer!,
      videoDisplay: imaVideoDisplay,
      userContext: nil)
    request.secureSignals = signals
    adsLoader?.requestStream(with: request)
  }
}