डीआई के लिए IMA SDK टूल सेट अप करना

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

वह DAI समाधान चुनें जिसमें आपकी दिलचस्पी है

पॉड सर्विंग डीएआई

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

IMA DAI Pod Serving की खास जानकारी

tvOS के लिए IMA DAI SDK का इस्तेमाल करके पॉड सर्विंग लागू करने में, दो मुख्य कॉम्पोनेंट शामिल होते हैं:

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

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

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

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

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

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

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

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

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

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

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

लाइव पॉड स्ट्रीम का अनुरोध बनाने के लिए, 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)
  }

  ...

वीओडी स्ट्रीम के लिए पॉड सर्वर करना

requestStream को इंस्टैंटिएट करके, वीओडी पॉड स्ट्रीम का अनुरोध बनाने के लिए, 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 तरीकों में बदलाव करें. इसके बाद, स्ट्रीम आईडी को STREAM_URL में डालें. इसके लिए, "[[STREAMID]]" को बदलें. यह बदलाव करने के बाद, 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
  }

IMA DAI ऐसेट मिटाना

IMA DAI SDK की मदद से, पॉड सर्विंग स्ट्रीम में विज्ञापनों का अनुरोध करने और उन्हें दिखाने की प्रोसेस पूरी होने के बाद, हमारा सुझाव है कि पॉड सर्विंग सेशन पूरा होने के बाद, सभी संसाधनों को हटा दें. स्ट्रीम का प्लेबैक रोकने, विज्ञापन की सभी ट्रैकिंग रोकने, और लोड की गई सभी स्ट्रीम ऐसेट को रिलीज़ करने के लिए, IMAStreamManager.destroy() को कॉल करें.

tvOS SDK के इस्तेमाल के अन्य उदाहरण देखने के लिए, GitHub पर मौजूद सैंपल देखें.