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

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

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

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

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

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

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

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

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

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

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

  • आपका ऐप्लिकेशन, IMA डीएआई को काम करने के लिए VideoStreamPlayerCallback.onUserTextReceived() का इस्तेमाल करके ID3 इवेंट भेजता है. पूरी सेवा वाले डीएआई कोड स्निपेट का उदाहरण देखें.

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

पॉड सर्विंग के लिए ज़रूरी सभी बदलाव SampleAdsWrapper.java में किए जाते हैं. सबसे पहले, कॉन्सटेंट वैरिएबल को अपडेट करें.

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

  • STREAM_URL: सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है - वीडियो स्ट्रीम का यूआरएल, जो आपके मेनिफ़ेस्ट में बताए गए टूल या पॉड सर्विंग का इस्तेमाल करने वाले थर्ड पार्टी पार्टनर से मिलता है. अनुरोध करने से पहले, आपको IMA डीएआई SDK से मिला स्ट्रीम आईडी डालना होगा. इस मामले में, स्ट्रीम यूआरएल में प्लेसहोल्डर "[[STREAMID]]" शामिल होता है, जिसे अनुरोध करने से पहले स्ट्रीम आईडी से बदल दिया जाता है.

  • NETWORK_CODE: आपके Ad Manager 360 खाते का नेटवर्क कोड.

  • CUSTOM_ASSET_KEY: सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है - कस्टम ऐसेट कुंजी, जो Ad Manager 360 में आपके पॉड दिखाने वाले इवेंट की पहचान करती है. इसे मेनिफ़ेस्ट में बदलाव करने वाले आपके टूल या तीसरे पक्ष के पॉड दिखाने वाले पार्टनर की मदद से बनाया जा सकता है.

  • API_KEY: सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है - यह एक वैकल्पिक एपीआई पासकोड है. इसे IMA डीएआई SDK टूल से स्ट्रीम आईडी पाने के लिए ज़रूरी हो सकता है.

Android DAI BasicExample को कई तरह के स्ट्रीम टाइप को चलाने के लिए डिज़ाइन किया गया है. हालांकि, पॉड सर्विंग के लिए, इसे सिर्फ़ एक स्ट्रीम चलाने के लिए सेट किया गया है. उदाहरण के वैरिएबल सेक्शन को बदलें, ताकि वह यहां दी गई चीज़ों से मेल खा सके:

/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
        implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Podserving Stream Constants.
  private static final String STREAM_URL =
          "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]]";
  private static final String NETWORK_CODE = "51636543";
  private static final String CUSTOM_ASSET_KEY = "google-sample";
  private static final String API_KEY = "";

  private static final String PLAYER_TYPE = "DAISamplePlayer";

  /** Log interface, so we can output the log commands to the UI or similar. */
  public interface Logger {

...

पॉड विज्ञापन दिखाने की सुविधा चालू करने के लिए, लाइव या वीओडी पॉड स्ट्रीम का अनुरोध करें

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

buildStreamRequest() वाला वह तरीका हटाएं जिसका इस्तेमाल अलग-अलग तरह की स्ट्रीम बनाने के बीच स्विच करने के लिए किया गया था. इसके बाद, लाइव पॉड विज्ञापन दिखाने वाला विज्ञापन अनुरोध करने के लिए, requestAndPlayAds() को ImaSdkFactory.createPodStreamRequest() कॉल पर सेट करें. आखिर में, AdsLoader.requestStream() का इस्तेमाल करके स्ट्रीम का अनुरोध करें.

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

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

buildStreamRequest() वाला वह तरीका हटाएं जिसका इस्तेमाल अलग-अलग तरह की स्ट्रीम बनाने के बीच स्विच करने के लिए किया गया था. इसके बाद, वीओडी पॉड को दिखाने के लिए विज्ञापन अनुरोध बनाने के लिए, requestAndPlayAds() को कॉल करने के लिए ImaSdkFactory.createPodVodStreamRequest() को बदलें. आखिर में, AdsLoader.requestStream() का इस्तेमाल करके स्ट्रीम का अनुरोध करें.

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

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

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

स्ट्रीम आईडी पाने के लिए, StreamManager.getStreamId() पर कॉल करें. इसके बाद, इसे "[[STREAMID]]" की जगह STEAM_URL में डालना होगा. इस बदलाव के बाद, videoPlayer.setStreamUrl() का इस्तेमाल करके, स्ट्रीम का नया यूआरएल सेट किया जा सकता है.

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);

  streamManager.init();

  videoPlayer.setStreamUrl(streamUrl);
  videoPlayer.play();
}

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

स्ट्रीम आईडी पाने के लिए, StreamManager.getStreamId() पर कॉल करें. इसके बाद, अपने वीडियो टेक्नोलॉजी पार्टनर (VTP) से स्ट्रीम यूआरएल का अनुरोध करें. इसके बाद, StreamManager.loadThirdPartyStream() को कॉल करें, ताकि IMA, स्ट्रीम के यूआरएल और TVP से मिले सबटाइटल को लोड कर सके.

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  // 'vtpInterface' is a place holder for your own video technology partner
  // (VTP) API calls.
  String streamUrl = vtpInterface.requestStreamURL(streamID);

  streamManager.init();

  // Pass any subtitles returned by your VTP in this step as well.
  streamManager.loadThirdPartyStream(streamUrl, subtitles);
}

पॉड सर्विंग चालू होने पर, IMA VideoStreamPlayer.loadUrl() को कॉल नहीं करता. इसलिए, videoPlayer.setStreamUrl() और videoPlayer.play() को किए गए किसी भी कॉल को IMA से हटाया जा सकता है.

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