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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  ...

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

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

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