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

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

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

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

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

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

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

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

CAF DAI की खास जानकारी

IMA CAF DAI SDK का इस्तेमाल करके DAI लागू करने में, दो मुख्य कॉम्पोनेंट शामिल होते हैं. इनके बारे में इस गाइड में बताया गया है:

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

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

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

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

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

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

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

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

लाइव

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "c-rArva4ShKVIAkNfy6HUQ",
      "networkCode": "21775744923",
      "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",
      "networkCode": "21775744923",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

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

बेसिक सीएएफ़ रिसीवर बनाना

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 DAI SDK इंपोर्ट करना और Player Manager पाना

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

<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 Stream Manager को शुरू करना

CAF DAI SDK के Stream Manager को शुरू करें.

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

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

CAF DAI SDK, CAF लोड मैसेज इंटरसेप्टर का इस्तेमाल करके स्ट्रीम के अनुरोध करता है. साथ ही, कॉन्टेंट यूआरएल को फ़ाइनल DAI स्ट्रीम से बदलता है. मैसेज इंटरसेप्टर, 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>

स्ट्रीम का अनुरोध तैयार करना

CAF DAI इंटिग्रेशन पूरा करने के लिए, आपको stream request बनाना होगा. इसके लिए, आपको उस डेटा का इस्तेमाल करना होगा जो सेंडर से मिले 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.networkCode) {
        streamRequest.networkCode = imaRequestData.networkCode;
      }
      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 के CAF DAI SDK की मदद से, DAI स्ट्रीम का अनुरोध किया जा सकता है और उन्हें चलाया जा सकता है. SDK टूल की अन्य बेहतर सुविधाओं के बारे में जानने के लिए, अन्य गाइड देखें या सैंपल रिसीवर ऐप्लिकेशन डाउनलोड करें.