पॉड सर्विस डीएआई के साथ सेट अप करना

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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);

वीओडी पॉड सर्विंग के अनुरोधों के लिए, स्ट्रीम लोड होने पर आईएमए 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();
    }

आईएमए डीएआई ऐसेट को क्लीन अप करना

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

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