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 पैकेज मैनेजर या iOS के लिए IMA डीएआई SDK टूल की डाउनलोड की गई कॉपी.
  • डीएआई विज्ञापनों के साथ वीडियो स्ट्रीम चलाने के लिए, IMA डीएआई SDK टूल के साथ पहले से सेट अप किया गया iOS ऐप्लिकेशन. अगर आपके पास पहले से ऐसा कोई ऐप्लिकेशन नहीं है, तो हमारा सुझाव है कि शुरुआत में iOS DAI BasicExample इस्तेमाल करें. BasicExample में दिए गए कोडबेस के बारे में इस गाइड में बताया गया है. IMA डीएआई SDK टूल को लागू करने के बारे में ज़्यादा जानकारी के लिए, आसानी से सिखाने वाली गाइड देखें.

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

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