بدء استخدام الإشارات الآمنة

الإشارات الآمنة هي بيانات مشفّرة يتم جمعها على جهاز العميل ومشاركتها مع مقدّمي عروض أسعار محدّدين. يوضّح لك هذا الدليل كيفية جمع الإشارات الآمنة وإرسالها إلى "مدير إعلانات Google" باستخدام حزمة IMA SDK.

تتطلّب واجهة برمجة التطبيقات "الإشارات الآمنة" الإصدار 3.18.1 أو إصدارًا أحدث من حزمة تطوير البرامج (SDK) لإعلانات الوسائط التفاعلية على نظام التشغيل iOS.

لاختيار الإشارات وعروض الأسعار وتفعيل مشاركة الإشارات الآمنة، اطّلِع على مقالة مشاركة الإشارات الآمنة مع مقدّمي عروض الأسعار.

استخدام مقدّم إشارات تابع لجهة خارجية

لاستخدام الإشارات الآمنة، يجب نشر فئة محوّل مجمّع الإشارات في تطبيقك لجمع الإشارات وتشفيرها وتمريرها إلى حزمة تطوير البرامج (SDK) الخاصة بـ IMA.

اتّبِع تعليمات موفِّر الخدمة التابع لجهة خارجية لإعداد حساب معه، وتضمين الأُطر، وإعداد أداة ربط الإشارات الآمنة في تطبيقك.

تعمل حزمة IMA SDK لنظام التشغيل iOS تلقائيًا على تهيئة كل مهايئ للإشارات الآمنة، بدون إجراء أي تغييرات إضافية على الرمز البرمجي.

في ما يلي مثال على كيفية إضافة محوّل إشارات آمنة إلى مشروعك:

إرسال بيانات مخصّصة

بالإضافة إلى استخدام موفّر إشارات تابع لجهة خارجية، يمكنك أيضًا جمع الإشارات وتشفيرها وإرسالها باستخدام بيانات مخصّصة. قبل أن تتمكّن من إرسال إشارات آمنة باستخدام بيانات مخصّصة، عليك تفعيل الإشارات المخصّصة في "إدارة إعلانات Google".

لكل طلب بث، اتّبِع الخطوات التالية:

  1. أنشِئ عنصر IMASecureSignals يحتوي على بياناتك المخصّصة المرمّزة كسلسلة.
  2. أضِف عنصر IMASecureSignals إلى طلب البث من خلال ضبط السمة IMAStreamRequest.secureSignals:

Objective-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];
}

Swift

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