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

प्लैटफ़ॉर्म चुनें: HTML5 Android iOS tvOS Cast Roku

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

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

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

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

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

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

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

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

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

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

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

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

Pod Serving के लिए, सभी बदलाव 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 डीएआई एसडीके से स्ट्रीम आईडी पाने के लिए इसकी ज़रूरत पड़ सकती है.

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

...
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 को इंस्टैंशिएट करके, लाइव पॉड स्ट्रीम का अनुरोध करने के लिए 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 तरीके में बदलाव करके, 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() को कॉल करके, स्ट्रीम के यूआरएल और आपके वीटीपी से मिले किसी भी सबटाइटल को लोड करने के लिए कहें.

  ...

  // 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 पर मौजूद सैंपल देखें.