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

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

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

पॉड के तौर पर काम करने वाला डीएआई

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

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

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

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

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

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

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

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

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

पॉड सर्विंग के लिए ज़रूरी सभी बदलाव 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)
  }

  ...

वीओडी (वीडियो ऑन डिमांड) स्ट्रीम पॉड सर्विंग

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

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