DAI-এর জন্য IMA SDK সেট-আপ করা

প্ল্যাটফর্ম বেছে নিন: HTML5 Android iOS tvOS Cast Roku

IMA SDK আপনার ওয়েবসাইট ও অ্যাপে মাল্টিমিডিয়া বিজ্ঞাপন ইন্টিগ্রেট করা সহজ করে তোলে। IMA SDK যেকোনও VAST-এর সাথে মানানসই বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক ম্যানেজ করতে পারে। IMA DAI SDK-এর মাধ্যমে, অ্যাপগুলি বিজ্ঞাপন ও কন্টেন্ট ভিডিওর জন্য—VOD বা লাইভ কন্টেন্ট— স্ট্রিম অনুরোধ করে। SDK তারপর একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত পাঠায়, যাতে আপনাকে অ্যাপের মধ্যে বিজ্ঞাপন ও কন্টেন্ট ভিডিওর মধ্যে পরিবর্তন ম্যানেজ করতে না হয়।

আপনি যে DAI সমাধানে আগ্রহী সেটি বেছে নিন

পড পরিবেশনকারী DAI

এই নির্দেশিকা দেখায় যে কীভাবে ভিডিও প্লেয়ারের সাথে tvOS-এর জন্য IMA DAI SDK ব্যবহার করে DAI পড পরিবেশন করা লাইভ বা VOD স্ট্রিম চালানো যায়। সম্পূর্ণ স্যাম্পেল ইন্টিগ্রেশন দেখতে বা ফলো করতে, Pod Serving স্যাম্পেল অ্যাপ (Obj C বা Swift) ডাউনলোড করুন।

IMA DAI পড পরিবেশন সংক্রান্ত ওভারভিউ

tvOS-এর জন্য IMA DAI SDK ব্যবহার করে পড পরিবেশন করার জন্য দুটি প্রধান কম্পোনেন্ট প্রয়োগ করতে হয়:

  • StreamRequest: Google-এর বিজ্ঞাপন সার্ভারে স্ট্রিম অনুরোধকে সংজ্ঞায়িত করে এমন একটি অবজেক্ট। পড সার্ভিং চালু করতে IMAPodStreamRequest বা IMAPodVODStreamRequest ব্যবহার করে তৈরি করতে হবে। দুটি পদ্ধতিতেই নেটওয়ার্ক কোড প্রয়োজন এবং IMAPodStreamRequest কাস্টম অ্যাসেট কী-ও প্রয়োজন। API Key হল ঐচ্ছিক।

  • IMAStreamManager: এমন একটি অবজেক্ট যা ভিডিও স্ট্রিম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ট্র্যাকিং পিং ফায়ার করা এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।

পূর্বশর্ত

শুরু করার আগে, আপনার এগুলি প্রয়োজন:

  • Xcode 13 বা তার পরবর্তী যেকোনও ভার্সন।
  • IMA SDK ইনস্টল করার পদ্ধতি:
  • DAI বিজ্ঞাপন সহ ভিডিও স্ট্রিম চালানোর জন্য IMA DAI SDK-এর সাথে আগে থেকেই সেট-আপ করা একটি tvOS অ্যাপ। আপনার কাছে এই ধরনের কোনও অ্যাপ না থাকলে, আমরা শুরু করার পয়েন্ট হিসেবে tvOS DAI BasicExample ব্যবহার করার সাজেশন দিই। BasicExample-এ এই নির্দেশিকায় উল্লেখ করা কোডবেস আছে। IMA DAI SDK কীভাবে প্রয়োগ করতে হয় সেই সম্পর্কে আরও জানতে, দ্রুত শুরু করার নির্দেশিকা দেখুন।

আপনার পড পরিবেশনকারী ভেরিয়েবল সেট-আপ করা

ViewController.swift-এ Pod Serving-এর জন্য সব পরিবর্তন করুন Swift বা ViewController.m-এ Objective-C. এই নির্দেশিকায় দেওয়া স্নিপেটগুলি সাধারণত Swift ভাষায় লেখা হয়। প্রথম ধাপ হল ধ্রুবক ভেরিয়েবল আপডেট করা।

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

  • STREAM_URL (শুধুমাত্র লাইভ স্ট্রিমের জন্য ব্যবহৃত হয়): আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা পড সার্ভিং ব্যবহার করে থার্ড-পার্টি পার্টনারের দেওয়া ভিডিও স্ট্রিম URL. অনুরোধ করার আগে, আপনাকে IMA DAI SDK-এর দেওয়া স্ট্রিম আইডি যোগ করতে হবে। এই ক্ষেত্রে, স্ট্রিম URL-এ একটি প্লেসহোল্ডার, "[[STREAMID]]" থাকে, যা অনুরোধ করার আগে স্ট্রিম ID দিয়ে পরিবর্তন করতে হয়।
  • NETWORK_CODE: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড।
  • CUSTOM_ASSET_KEY (শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহার করা হয়): কাস্টম অ্যাসেট কী যা Ad Manager 360-তে আপনার পড পরিবেশন ইভেন্ট শনাক্ত করে। আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা থার্ড-পার্টি পড পরিবেশনকারী পার্টনার এটি তৈরি করতে পারে।
  • API_KEY (শুধুমাত্র লাইভ স্ট্রিমের জন্য ব্যবহৃত হয়): একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে স্ট্রিম আইডি রিট্রিভ করার জন্য প্রয়োজন হতে পারে।

নিচে দেওয়া তথ্যের সাথে মিল রেখে উদাহরণটির ভেরিয়েবল অংশ পরিবর্তন করুন:

...
class ViewController:
  UIViewController,
  IMAAdsLoaderDelegate,
  IMAStreamManagerDelegate,
  AVPlayerViewControllerDelegate
{
  static let streamUrl = ""
  static let networkCode = ""
  static let customAssetKey = ""
  static let APIKey = ""
  static let backupStreamURLString = ""

  var adsLoader: IMAAdsLoader?
  ...

লাইভ বা VOD পড স্ট্রিম অনুরোধের মধ্যে যেকোনও একটি তৈরি করুন

লাইভস্ট্রিম পড পরিবেশন করা

requestStream পদ্ধতি পরিবর্তন করে IMAPodStreamRequest ইনস্ট্যানশিয়েট করার মাধ্যমে লাইভ পড স্ট্রিম অনুরোধ তৈরি করুন।

  ...

  func requestStream() {
    guard let playerViewController = self.playerViewController else return
    guard let adContainerView = self.adContainerView else return
    guard let adsLoader = self.adsLoader else return

    self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
    adDisplayContainer = IMAAdDisplayContainer(
      adContainer: adContainerView, viewController: self)

    // Create a podserving stream request.
    request = IMAPodStreamRequest(
      networkCode: self.networkCode,
      customAssetKey: self.customAssetKey,
      adDisplayContainer: adDisplayContainer,
      videoDisplay: self.videoDisplay,
      userContext: nil)

    adsLoader.requestStream(with: request)
  }

  ...

VOD স্ট্রিম পড পরিবেশন করা

IMAPodVODStreamRequest ইনস্ট্যান্ট করে VOD পড স্ট্রিম অনুরোধ তৈরি করতে requestStream পদ্ধতি পরিবর্তন করুন।

  ...

  func requestStream() {
    guard let playerViewController = self.playerViewController else return
    guard let adContainerView = self.adContainerView else return
    guard let adsLoader = self.adsLoader else return

    self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
    adDisplayContainer = IMAAdDisplayContainer(
      adContainer: adContainerView, viewController: self)

    // Create a podserving stream request.
    request = IMAPodVODStreamRequest(
      networkCode: self.networkCode,
      adDisplayContainer: adDisplayContainer,
      videoDisplay: self.videoDisplay,
      userContext: nil)

    adsLoader.requestStream(with: request)
  }

  ...

স্ট্রিম URL এডিট ও সেট করা

লাইভস্ট্রিম পড পরিবেশন করা

স্ট্রিম আইডি পেতে streamManager.streamId ব্যবহার করে IMAAdsLoaderDelegate পদ্ধতি পরিবর্তন করুন। তারপর, "[[STREAMID]]"-এর জায়গায় STREAM_URL-এ স্ট্রিম আইডি যোগ করুন। এই পরিবর্তন করার পরে, videoDisplay.loadStream() ব্যবহার করে নতুন স্ট্রিম URL সেট করুন।

  ...

  // MARK: - IMAAdsLoaderDelegate
  func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
    let streamManager = adsLoadedData.streamManager
    let streamId = streamManager.streamId
    let urlString = streamUrl.replacingOccurrences(of: "[[STREAMID]]", with: streamId)
    let loadedStreamUrl = URL(string:urlString)
    self.videoDisplay.loadStream(loadedStreamUrl, subtitles:@[])
    self.videoDisplay.play()
    streamManager.delegate = self
    streamManager.initialize(with: nil)
    self.streamManager = streamManager
  }

  ...

VOD স্ট্রিম পড পরিবেশন করা

স্ট্রিম আইডি পেতে streamManager.streamId ব্যবহার করে IMAAdsLoaderDelegate পদ্ধতি পরিবর্তন করুন। তারপর, আপনার ভিডিও প্রযুক্তি পার্টনারের (VTP) থেকে স্ট্রিম URL-এর অনুরোধ করুন এবং IMAStreamManager.loadThirdPartyStream() কল করুন যাতে IMA স্ট্রিম URL এবং আপনার TVP-এর মাধ্যমে ফেরত পাঠানো যেকোনও সাবটাইটেল লোড করতে পারে।

  ...

  // MARK: - IMAAdsLoaderDelegate
  func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
    let streamManager = adsLoadedData.streamManager
    let streamId = streamManager.streamId
    // 'vtpInterface' is a place holder for your own video technology partner
    // (VTP) API calls.
    let streamUrl = vtpInterface.requestStreamURL(streamID)
    self.streamManager.loadThirdPartyStream(streamUrl, streamSubtitles:@[])
    streamManager.delegate = self
    streamManager.initialize(with: nil)
    self.streamManager = streamManager
  }

IMA DAI অ্যাসেট ক্লিন-আপ করা

IMA DAI SDK-এর মাধ্যমে পড সার্ভিং স্ট্রিমে বিজ্ঞাপনের অনুরোধ করা এবং দেখানোর কাজ সফলভাবে শেষ করার পরে, পড সার্ভিং সেশন সম্পূর্ণ হলে আমরা আপনাকে যেকোনও রিসোর্স ক্লিন-আপ করার সাজেশন দিই। IMAStreamManager.destroy() কল করে স্ট্রিম প্লেব্যাক বন্ধ করুন, সব বিজ্ঞাপন ট্র্যাকিং বন্ধ করুন এবং লোড করা সব স্ট্রিম অ্যাসেট রিলিজ করুন।

tvOS SDK ব্যবহারের অন্যান্য উদাহরণ দেখতে, GitHub-এ নমুনা দেখুন।