IMA डीएआई SDK टूल का इस्तेमाल शुरू करना

IMA SDK टूल की मदद से, अपनी वेबसाइटों और ऐप्लिकेशन में आसानी से मल्टीमीडिया विज्ञापन इंटिग्रेट किए जा सकते हैं. IMA SDK टूल, वीएएसटी (वीडियो विज्ञापन देने के लिए टेंप्लेट) का पालन करने वाले किसी भी विज्ञापन सर्वर से विज्ञापनों का अनुरोध कर सकते हैं. साथ ही, आपके ऐप्लिकेशन में विज्ञापन चलाने की सुविधा को मैनेज कर सकते हैं. IMA डीएआई SDK की मदद से, ऐप्लिकेशन विज्ञापन और कॉन्टेंट वीडियो के लिए स्ट्रीम का अनुरोध करते हैं. यह वीओडी या लाइव कॉन्टेंट हो सकता है. इसके बाद, SDK टूल एक ऐसी वीडियो स्ट्रीम दिखाता है जिसमें विज्ञापन और कॉन्टेंट, दोनों शामिल होते हैं. इससे आपको अपने ऐप्लिकेशन में, विज्ञापन और कॉन्टेंट वीडियो के बीच स्विच करने की ज़रूरत नहीं पड़ती.

डीआई (डायनामिक विज्ञापन) का वह समाधान चुनें जिसमें आपकी दिलचस्पी है

पॉड में डीएआई का इस्तेमाल करना

इस गाइड में, tvOS के लिए IMA डीएआई SDK टूल का इस्तेमाल करके, वीडियो प्लेयर के साथ डीएआई पॉड सेविंग लाइव या वीओडी स्ट्रीम चलाने का तरीका बताया गया है. इंटिग्रेशन का पूरा सैंपल देखने या उससे जुड़े निर्देशों का पालन करने के लिए, Pod Serving का उदाहरण ऐप्लिकेशन (Obj C या Swift) डाउनलोड करें.

IMA डीएआई पॉड दिखाने की सुविधा के बारे में खास जानकारी

tvOS के लिए IMA डीएआई SDK का इस्तेमाल करके पॉड विज्ञापन दिखाने की सुविधा लागू करने के लिए, दो मुख्य घटक ज़रूरी हैं:

  • StreamRequest: यह एक ऐसा ऑब्जेक्ट है जो Google के विज्ञापन सर्वर को स्ट्रीम का अनुरोध करता है. पॉडकास्ट दिखाने की सुविधा चालू करने के लिए, इसे IMAPodStreamRequest या IMAPodVODStreamRequest का इस्तेमाल करके बनाया जाना चाहिए. दोनों तरीकों के लिए नेटवर्क कोड ज़रूरी है. साथ ही, IMAPodStreamRequest के लिए कस्टम एसेट पासकोड भी ज़रूरी है. एपीआई पासकोड देना ज़रूरी नहीं है.

  • IMAStreamManager: यह एक ऐसा ऑब्जेक्ट है जो वीडियो स्ट्रीम और IMA डीएआई SDK टूल के बीच कम्यूनिकेशन मैनेज करता है. जैसे, ट्रैकिंग पिंग को ट्रिगर करना और स्ट्रीम इवेंट को पब्लिशर को फ़ॉरवर्ड करना.

ज़रूरी शर्तें

शुरू करने से पहले, आपके पास ये चीज़ें होनी चाहिए:

  • Xcode 13 या इसके बाद का वर्शन.
  • CocoaPods (इसका इस्तेमाल करना बेहतर होता है), Swift Package Manager या tvOS के लिए IMA DAI SDK की डाउनलोड की गई कॉपी.
  • डीएआई विज्ञापनों के साथ वीडियो स्ट्रीम चलाने के लिए, IMA डीएआई SDK टूल के साथ पहले से सेट अप किया गया tvOS ऐप्लिकेशन. अगर आपके पास पहले से ऐसा कोई ऐप्लिकेशन नहीं है, तो हमारा सुझाव है कि आप शुरुआत के लिए, tvOS DAI BasicExample का इस्तेमाल करें. BasicExample में, इस गाइड में रेफ़र किया गया कोडबेस है. IMA DAI SDK टूल को लागू करने के तरीके के बारे में ज़्यादा जानने के लिए, शुरुआती गाइड देखें.

पॉडकास्ट दिखाने के लिए वैरिएबल सेट अप करना

पॉड सर्विंग के लिए ज़रूरी सभी बदलाव, Swift में ViewController.swift या Objective-C में ViewController.m में किए जाते हैं. इस गाइड में दिए गए स्निपेट, डिफ़ॉल्ट रूप से Swift भाषा का इस्तेमाल करते हैं. पहला चरण, स्थिर वैरिएबल अपडेट करना है.

यहां विज्ञापन पॉड स्ट्रीम के अनुरोध के लिए कॉन्स्टेंट जोड़े गए हैं:

  • STREAM_URL (सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): यह वीडियो स्ट्रीम का यूआरएल होता है. इसे आपके मेनिफ़ेस्ट मैनिप्युलेटर या तीसरे पक्ष के पार्टनर की ओर से दिया जाता है. यह पार्टनर, पॉड सर्विंग का इस्तेमाल करता है. अनुरोध करने से पहले, आपको IMA डीएआई एसडीके से मिला स्ट्रीम आईडी डालना होगा. इस मामले में, स्ट्रीम यूआरएल में एक प्लेसहोल्डर, "[[STREAMID]]" शामिल होता है. अनुरोध करने से पहले, इसे स्ट्रीम आईडी से बदल दिया जाता है.
  • NETWORK_CODE: आपके Ad Manager 360 खाते का नेटवर्क कोड.
  • CUSTOM_ASSET_KEY (सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): यह कस्टम एसेट की वह कुंजी है जो Ad Manager 360 में आपके पॉड सर्विंग इवेंट की पहचान करती है. इसे आपका मेनिफ़ेस्ट मैनिप्युलेटर या तीसरे पक्ष का पॉड सर्विंग पार्टनर बना सकता है.
  • API_KEY (सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): यह एक वैकल्पिक एपीआई पासकोड है. IMA डीएआई SDK से स्ट्रीम आईडी पाने के लिए, इसकी ज़रूरत पड़ सकती है.

उदाहरण के वैरिएबल सेक्शन को बदलकर, इनसे मैच करें:

...
class ViewController:
  UIViewController,
  IMAAdsLoaderDelegate,
  IMAStreamManagerDelegate,
  AVPlayerViewControllerDelegate
{
  static let streamUrl =
    "https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
  static let networkCode = "51636543"
  static let customAssetKey = "google-sample"
  static let APIKey = ""
  static let backupStreamURLString =
    "http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"

  var adsLoader: IMAAdsLoader?
  ...

लाइव या वीओडी पॉड स्ट्रीम का अनुरोध करना

लाइव स्ट्रीम पॉड दिखाना

IMAPodStreamRequest को इंस्टैंशिएट करके, लाइव पॉड स्ट्रीम का अनुरोध बनाने के लिए, 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 = IMAPodStreamRequest(
      networkCode: self.networkCode,
      customAssetKey: self.customAssetKey,
      adDisplayContainer: adDisplayContainer,
      videoDisplay: self.videoDisplay,
      userContext: nil)

    adsLoader.requestStream(with: request)
  }

  ...

वीओडी स्ट्रीम पॉड दिखाना

requestStream तरीके में बदलाव करके, वीओडी पॉड स्ट्रीम का अनुरोध बनाएं. इसके लिए, IMAPodVODStreamRequest को इंस्टैंशिएट करें.

  ...

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

  ...

स्ट्रीम के यूआरएल में बदलाव करना और उसे सेट करना

लाइव स्ट्रीम पॉड दिखाना

स्ट्रीम आईडी पाने के लिए, streamManager.streamId का इस्तेमाल करके IMAAdsLoaderDelegate के तरीकों में बदलाव करें. इसके बाद, "[[STREAMID]]" की जगह पर स्ट्रीम आईडी डालें.STREAM_URL यह बदलाव करने के बाद, videoDisplay.loadStream() का इस्तेमाल करके स्ट्रीम का नया यूआरएल सेट किया जा सकता है.

  ...

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

  ...

वीओडी स्ट्रीम पॉड दिखाना

स्ट्रीम आईडी पाने के लिए, streamManager.streamId का इस्तेमाल करके IMAAdsLoaderDelegate के तरीकों में बदलाव करें. इसके बाद, अपने वीडियो टेक्नोलॉजी पार्टनर (वीटीपी) से स्ट्रीम यूआरएल का अनुरोध करें. साथ ही, IMAStreamManager.loadThirdPartyStream() को कॉल करके, IMA को स्ट्रीम यूआरएल और आपके टीवीपी से मिले सबटाइटल लोड करने के लिए कहें.

  ...

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

हो गया! अब आपके पास tvOS के लिए IMA डीएआई SDK टूल की मदद से, पॉड सेविंग स्ट्रीम में विज्ञापनों का अनुरोध करने और उन्हें दिखाने का विकल्प है. इस्तेमाल किए जा रहे IMA DAI SDK के अन्य उदाहरण देखने के लिए, GitHub पर सैंपल देखें.