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

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

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

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

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

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