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

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

पूरी सेवा वाला डीएआई

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

इस गाइड का इस्तेमाल करने से पहले, Chromecast ऐप्लिकेशन फ़्रेमवर्क के वेब रिसीवर प्रोटोकॉल के बारे में अच्छे से जान लें. इस गाइड में, सीएएफ़ रिसीवर के सिद्धांतों के बारे में बुनियादी जानकारी है. जैसे, मैसेज इंटरसेप्टर और mediaInformation ऑब्जेक्ट. इसके अलावा, सीएएफ़ भेजने वाले को एम्युलेट करने के लिए, कास्ट कमांड और कंट्रोल टूल का इस्तेमाल करना भी बहुत आसान है.

IMA डीएआई का इस्तेमाल करने के लिए, आपके पास Ad Manager 360 खाता होना ज़रूरी है. अगर आपके पास Ad Manager खाता है, तो ज़्यादा जानकारी के लिए अपने खाता मैनेजर से संपर्क करें. Ad Manager में साइन अप करने के बारे में जानकारी के लिए, Ad Manager सहायता केंद्र पर जाएं.

अन्य प्लैटफ़ॉर्म के साथ इंटिग्रेट करने या IMA क्लाइंट-साइड SDK टूल का इस्तेमाल करने के बारे में जानकारी पाने के लिए, इंटरैक्टिव मीडिया विज्ञापन SDK टूल देखें.

CAF डीएआई की खास जानकारी

IMA सीएएफ़ डीएआई SDK टूल का इस्तेमाल करके डीएआई को लागू करने के लिए, इस गाइड में दो मुख्य कॉम्पोनेंट के बारे में बताया गया है:

  • StreamRequest: एक ऑब्जेक्ट जो Google के विज्ञापन सर्वर को स्ट्रीम करने के अनुरोध के बारे में जानकारी देता है. स्ट्रीम के अनुरोध दो मुख्य तरह से आते हैं:

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

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

  • रजिस्टर किए गए टेस्ट डिवाइस के साथ Cast Developer Console खाता.
  • होस्ट किया गया ऐसा वेब रिसीवर ऐप्लिकेशन जो आपके Cast Developer Console के साथ पंजीकृत होता है और जिसे इस गाइड से दिए गए कोड को होस्ट करने के लिए बदला जा सकता है.
  • ईमेल भेजने वाला ऐसा ऐप्लिकेशन जिसे आपके वेब रिसीवर ऐप्लिकेशन का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है. इस उदाहरण में, भेजने वाले के तौर पर कास्ट कमांड और कंट्रोल टूल का इस्तेमाल किया गया है.

भेजने वाले के MediaInfo ऑब्जेक्ट कॉन्फ़िगर करें

सबसे पहले, नीचे दिए गए फ़ील्ड शामिल करने के लिए, अपने भेजने वाले ऐप्लिकेशन के MediaInfo ऑब्जेक्ट को कॉन्फ़िगर करें:

contentId इस मीडिया आइटम के लिए यूनीक आइडेंटिफ़ायर
contentUrl अगर किसी वजह से डीएआई के StreamRequest का काम पूरा नहीं हो पाता है, तो फ़ॉलबैक स्ट्रीम का यूआरएल लोड होगा
streamType लाइव स्ट्रीम के लिए, यह वैल्यू `LIVE` पर सेट होनी चाहिए. वीओडी स्ट्रीम के लिए, यह वैल्यू `BUFFERED` पर सेट होनी चाहिए
customData assetKey सिर्फ़ लाइव स्ट्रीम. यह लोड की जाने वाली लाइव स्ट्रीम की पहचान करता है
contentSourceId सिर्फ़ वीओडी (वीडियो ऑन डिमांड) स्ट्रीम. उस मीडिया फ़ीड की पहचान करता है जिसमें अनुरोध की गई स्ट्रीम है.
videoId सिर्फ़ वीओडी (वीडियो ऑन डिमांड) स्ट्रीम. बताए गए मीडिया फ़ीड में अनुरोध की गई स्ट्रीम की पहचान करता है.
ApiKey एक वैकल्पिक एपीआई कुंजी, जिसे IMA डीएआई SDK टूल से स्ट्रीम यूआरएल वापस पाने के लिए ज़रूरी हो सकता है
senderCanSkip एक बूलियन वैल्यू, जिससे पाने वाले को यह पता चलता है कि ईमेल भेजने वाले डिवाइस में 'स्किप करें' बटन दिखाने की सुविधा है या नहीं. इससे स्किप किए जा सकने वाले विज्ञापनों के लिए सहायता चालू हो जाती है

कास्ट करने के निर्देश और कंट्रोल टूल में इन वैल्यू को कॉन्फ़िगर करने के लिए, मीडिया लोड करें टैब पर क्लिक करें. इसके बाद, लोड करने के अनुरोध के कस्टम टाइप को LOAD पर सेट करें. इसके बाद, टेक्स्ट एरिया में JSON डेटा को, यहां दिए गए किसी एक JSON ऑब्जेक्ट से बदलें:

लाइव

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

वीओडी

{
  "media": {
    "contentId": "tos",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
    "streamType": "BUFFERED",
    "customData": {
      "contentSourceId": "2548831",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

लोड करने के अनुरोध वाला यह कस्टम ऑब्जेक्ट, पाने वाले को भेजा जा सकता है, ताकि यहां दिया गया तरीका टेस्ट किया जा सके.

एक सामान्य CAF रिसीवर बनाएं

CAF SDK बेसिक रिसीवर गाइड का पालन करके, एक बेसिक वेब रिसीवर बनाएं.

पैसे पाने वाले व्यक्ति का कोड इस तरह दिखना चाहिए:

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
  </script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    cast.framework.CastReceiverContext.getInstance().start();
  </script>
</body>
</html>

IMA डीएआई SDK टूल इंपोर्ट करें और प्लेयर मैनेजर पाएं

सीएएफ़ के लिए स्क्रिप्ट लोड होने के ठीक बाद, वेब रिसीवर में सीएएफ़ के लिए IMA डीएआई SDK टूल इंपोर्ट करने के लिए, स्क्रिप्ट टैग जोड़ें. सीएएफ़ डीएआई SDK टूल हमेशा काम करता है. इसलिए, इसका कोई खास वर्शन सेट करने की ज़रूरत नहीं है. इसके बाद, आने वाले स्क्रिप्ट टैग में, रिसीवर को शुरू करने से पहले, रिसीवर कॉन्टेक्स्ट और प्लेयर मैनेजर को कॉन्सटेंट के तौर पर सेव करें.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();

    castContext.start();
  </script>
</body>
</html>

IMA स्ट्रीम मैनेजर को शुरू करना

सीएएफ़ डीएआई SDK टूल का स्ट्रीम मैनेजर शुरू करें.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();
    const streamManager = new google.ima.cast.dai.api.StreamManager();

    castContext.start();
  </script>
</body>
</html>

लोड मैसेज इंटरसेप्टर बनाएं

सीएएफ़ डीएआई SDK टूल, सीएएफ़ लोड मैसेज इंटरसेप्टर का इस्तेमाल करता है, ताकि स्ट्रीम के अनुरोध किए जा सकें और कॉन्टेंट के यूआरएल को फ़ाइनल डीएआई स्ट्रीम से बदला जा सके. मैसेज इंटरसेप्टर streamManager.requestStream() को कॉल करता है. यह विज्ञापन के लिए ब्रेक सेट करने, स्ट्रीम का अनुरोध करने, और मौजूदा contentURL को बदलने का काम करता है.

सिर्फ़ एक लोड मैसेज इंटरसेप्टर हो सकता है, इसलिए अगर आपके ऐप्लिकेशन को इंटरसेप्टर का इस्तेमाल करना ज़रूरी है, तो आपको उसी कॉलबैक में किसी भी कस्टम फ़ंक्शन को शामिल करना होगा.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();
    const streamManager = new google.ima.cast.dai.api.StreamManager();

    const getStreamRequest = (request) => null;

    playerManager.setMessageInterceptor(
        cast.framework.messages.MessageType.LOAD, (request) => {
          return streamManager.requestStream(request, getStreamRequest(request))
              .then((request) => {
                this.broadcast('Stream request successful.');
                return Promise.resolve(request);
              })
              .catch((error) => {
                this.broadcast('Stream request failed.');
                return Promise.resolve(request);
              });
        });

    castContext.start();
  </script>
</body>
</html>

स्ट्रीम का अनुरोध करें

सीएएफ़ डीएआई इंटिग्रेशन को पूरा करने के लिए, आपको अपनी स्ट्रीम का अनुरोध बनाना होगा. इसके लिए, आपको उस डेटा का इस्तेमाल करना होगा जो भेजने वाले के mediaInfo ऑब्जेक्ट में शामिल था.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();
    const streamManager = new google.ima.cast.dai.api.StreamManager();

    const getStreamRequest = (request) => {
      const imaRequestData = request.media.customData;
      let streamRequest = null;
      if (imaRequestData.assetKey) {
        // Live stream
        streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
        streamRequest.assetKey = imaRequestData.assetKey;
      } else if (imaRequestData.contentSourceId) {
        // VOD stream
        streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
        streamRequest.contentSourceId = imaRequestData.contentSourceId;
        streamRequest.videoId = imaRequestData.videoId;
      }
      if (streamRequest && imaRequestData.ApiKey) {
        streamRequest.ApiKey = imaRequestData.ApiKey;
      }
      if (streamRequest && imaRequestData.senderCanSkip) {
        streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
      }
      return streamRequest;
    };

    playerManager.setMessageInterceptor(
        cast.framework.messages.MessageType.LOAD, (request) => {
          return streamManager.requestStream(request, getStreamRequest(request))
              .then((request) => {
                return Promise.resolve(request);
              })
              .catch((error) => {
                this.broadcast('Stream request failed.');
                return Promise.resolve(request);
              });
        });

    castContext.start();
  </script>
</body>
</html>

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