সুরক্ষিত সংকেত দিয়ে শুরু করুন

সুরক্ষিত সংকেতগুলি এনকোড করা ডেটা যা ক্লায়েন্ট ডিভাইসে সংগ্রহ করা হয় এবং নির্বাচিত বিডারদের সাথে ভাগ করা হয়। এই নির্দেশিকা আপনাকে দেখায় কিভাবে IMA SDK ব্যবহার করে Google Ad Manager-এ নিরাপদ সংকেত সংগ্রহ ও পাঠাতে হয়।

নিরাপদ সংকেত API-এর জন্য iOS-এর জন্য IMA SDK-এর 3.18.1 বা উচ্চতর সংস্করণ প্রয়োজন।

সিগন্যাল এবং বিডার নির্বাচন করতে এবং নিরাপদ সিগন্যাল শেয়ারিং সক্ষম করতে, বিডারদের সাথে নিরাপদ সিগন্যাল শেয়ার করুন দেখুন।

একটি তৃতীয় পক্ষের সংকেত প্রদানকারী ব্যবহার করুন

সুরক্ষিত সংকেত ব্যবহার করতে, সিগন্যাল সংগ্রহ করতে, সেগুলিকে এনকোড করতে এবং IMA SDK-এ পাস করতে আপনাকে অবশ্যই আপনার অ্যাপে একটি সংকেত সংগ্রাহক অ্যাডাপ্টার ক্লাস স্থাপন করতে হবে৷

তাদের সাথে একটি অ্যাকাউন্ট সেট আপ করতে, ফ্রেমওয়ার্ক অন্তর্ভুক্ত করতে এবং আপনার অ্যাপে তাদের সুরক্ষিত সংকেত অ্যাডাপ্টার সেট আপ করতে আপনার তৃতীয় পক্ষের প্রদানকারীর নির্দেশাবলী অনুসরণ করুন৷

iOS-এর জন্য IMA SDK স্বয়ংক্রিয়ভাবে প্রতিটি সুরক্ষিত সংকেত অ্যাডাপ্টার শুরু করে, আপনার কোডে কোনো অতিরিক্ত পরিবর্তন ছাড়াই।

আপনি কীভাবে আপনার প্রকল্পে একটি নিরাপদ সংকেত অ্যাডাপ্টার যুক্ত করতে পারেন তার একটি উদাহরণ এখানে রয়েছে:

কাস্টম ডেটা পাঠান

একটি তৃতীয় পক্ষের সংকেত প্রদানকারী ব্যবহার করার পাশাপাশি, আপনি কাস্টম ডেটা সহ সংকেত সংগ্রহ, এনকোড এবং পাঠাতে পারেন। কাস্টম ডেটা সহ নিরাপদ সিগন্যাল পাঠাতে পারার আগে, আপনাকে অবশ্যই অ্যাড ম্যানেজারে কাস্টম সিগন্যাল চালু করতে হবে।

প্রতিটি স্ট্রিম অনুরোধের জন্য, নিম্নলিখিতগুলি করুন:

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