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

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

अपनी पसंद का डीएआई सलूशन चुनें

डीएआई दिखाने वाले पॉड

इस गाइड में बताया गया है कि iOS के लिए IMA डीएआई SDK टूल को एक आसान वीडियो प्लेयर के साथ इस्तेमाल करके, डीएआई पॉड सर्विंग को लाइव या वीओडी स्ट्रीम कैसे चलाएं. अगर आपको पूरे सैंपल के साथ फ़ॉलो करना है, तो पॉड दिखाने का उदाहरण डाउनलोड करें.

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

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

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

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

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

शुरू करने से पहले, आपको इनकी ज़रूरत होगी:

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

पॉड सर्विंग वैरिएबल सेट अप करें

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

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

  • STREAM_URL (सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): वीडियो स्ट्रीम का वह यूआरएल जो आपके मेनिफ़ेस्ट में बताए गए टूल या पॉड सर्विंग का इस्तेमाल करने वाले थर्ड पार्टी पार्टनर से मिलता है. अनुरोध करने से पहले, आपको IMA डीएआई SDK से मिला स्ट्रीम आईडी डालना होगा. इस मामले में, स्ट्रीम यूआरएल में प्लेसहोल्डर "[[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?
  ...

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

लाइव स्ट्रीम पॉड सर्विंग

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

  ...

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

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

  ...

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

लाइव स्ट्रीम पॉड सर्विंग

स्ट्रीम आईडी पाने के लिए, 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 तरीकों में बदलाव करें. इसके बाद, अपने वीडियो टेक्नोलॉजी पार्टनर (VTP) से स्ट्रीम यूआरएल का अनुरोध करें. इसके बाद, IMAStreamManager.loadThirdPartyStream() को कॉल करें, ताकि IMA स्ट्रीम का यूआरएल और 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
  }

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