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

प्लैटफ़ॉर्म चुनें: HTML5 Android iOS tvOS Cast Roku

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

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

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

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

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

IMA डीएआई पॉड सर्विंग की खास जानकारी

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

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

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

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

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

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

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

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

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

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

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

  • API_KEY: सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है - यह एक वैकल्पिक एपीआई पासकोड है. आईएमए डीएआई 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() में बदलाव करें. साथ ही, VOD पॉड दिखाने वाले विज्ञापन का अनुरोध बनाने के लिए ImaSdkFactory.createPodVodStreamRequest() में बदलाव करें.

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

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

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

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

लाइव स्ट्रीम पॉड सर्व करना

स्ट्रीम आईडी पाने के लिए, StreamManager.getStreamId() वाले तरीके को कॉल करें. इसे "[[STREAMID]]" की जगह STEAM_URL में डालना होगा. यह बदलाव करने के बाद, 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 पर मौजूद सैंपल देखें.