डीआई के लिए IMA SDK टूल सेट अप करना

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

वह DAI समाधान चुनें जिसमें आपकी दिलचस्पी है

पॉड सर्विंग डीएआई

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

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

IMA DAI Pod Serving की खास जानकारी

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

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

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

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

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

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

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

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

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

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

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

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

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

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

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

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

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

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

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

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

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

स्ट्रीम के अनुरोध का इंस्टेंस बनाने के बाद, AdsLoader.requestStream() का इस्तेमाल करके स्ट्रीम का अनुरोध करें:

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

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

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

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

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

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

  1. स्ट्रीम आईडी पाने के लिए, StreamManager.getStreamId() तरीके को कॉल करें.
  2. अपने वीडियो टेक्नोलॉजी पार्टनर (वीटीपी) से स्ट्रीम के यूआरएल का अनुरोध करें.
  3. वीटीपी से यूआरएल मिलने के बाद, स्ट्रीम लोड करने के लिए यूआरएल के साथ StreamManager.loadThirdPartyStream() तरीके को कॉल करें. साथ ही, वीटीपी से मिले किसी भी सबटाइटल को कॉल करें.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

VOD पॉड दिखाने के अनुरोधों के लिए, IMA VideoStreamPlayer.loadUrl() कॉलबैक को तब कॉल करता है, जब स्ट्रीम लोड हो जाती है. स्ट्रीम का कॉन्टेंट चलाने के लिए, VideoStreamPlayer.loadUrl() कॉलबैक में videoPlayer.setStreamUrl() और videoPlayer.play() कॉल जोड़ें:

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

IMA DAI ऐसेट मिटाना

IMA DAI SDK की मदद से, पॉड सर्विंग स्ट्रीम में विज्ञापनों का अनुरोध करने और उन्हें दिखाने की प्रोसेस पूरी होने के बाद, हमारा सुझाव है कि पॉड सर्विंग सेशन पूरा होने के बाद, सभी संसाधनों को हटा दें. स्ट्रीम का प्लेबैक रोकने, विज्ञापन की सभी ट्रैकिंग रोकने, और लोड की गई सभी स्ट्रीम ऐसेट को रिलीज़ करने के लिए, StreamManager.destroy() को कॉल करें.

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