डीआई (डायनामिक विज्ञापन) का वह समाधान चुनें जिसमें आपकी दिलचस्पी है
पूरी सेवा वाला डीएआई
इस गाइड में, IMA CAF DAI SDK टूल का इस्तेमाल करके, डीएआई स्ट्रीम चलाने का तरीका बताया गया है. अगर आपको इंटिग्रेशन का पूरा सैंपल देखना है या उसका पालन करना है, तो उदाहरण डाउनलोड करें.
इस गाइड का इस्तेमाल करने से पहले, Chromecast ऐप्लिकेशन फ़्रेमवर्क के वेब रिसीवर प्रोटोकॉल के बारे में ज़रूर जानें. इस गाइड में, यह माना गया है कि आपने सीएफ़ रिसीवर के कॉन्सेप्ट के बारे में बुनियादी जानकारी हासिल कर ली है. जैसे, मैसेज इंटरसेप्ट करने वाले टूल और mediaInformation
ऑब्जेक्ट. साथ ही, आपने सीएफ़ भेजने वाले को एमुलेट करने के लिए, कास्ट कमांड और कंट्रोल टूल का इस्तेमाल करने के बारे में भी जानकारी हासिल कर ली है.
IMA DAI का इस्तेमाल करने के लिए, आपके पास Ad Manager 360 खाता होना चाहिए. अगर आपके पास Ad Manager खाता है, तो ज़्यादा जानकारी के लिए अपने खाता मैनेजर से संपर्क करें. Ad Manager के लिए साइन अप करने के बारे में जानकारी पाने के लिए, Ad Manager सहायता केंद्र पर जाएं.
अन्य प्लैटफ़ॉर्म के साथ इंटिग्रेट करने या IMA क्लाइंट-साइड SDK टूल इस्तेमाल करने के बारे में जानने के लिए, इंटरैक्टिव मीडिया विज्ञापन SDK टूल देखें.
सीएफ़ डीएआई की खास जानकारी
IMA CAF DAI SDK का इस्तेमाल करके डीआई लागू करने के लिए, दो मुख्य कॉम्पोनेंट ज़रूरी हैं. इनके बारे में इस गाइड में बताया गया है:
StreamRequest
: यह एक ऑब्जेक्ट है, जो Google के विज्ञापन सर्वर को स्ट्रीम का अनुरोध करता है. स्ट्रीम के अनुरोध दो मुख्य तरह के होते हैं:LiveStreamRequest
: इसमें एसेट पासकोड, एपीआई पासकोड के साथ-साथ अन्य वैकल्पिक पैरामीटर की जानकारी दी जाती है. हालांकि, एपीआई पासकोड देना ज़रूरी नहीं है.VODStreamRequest
: इसमें कॉन्टेंट सोर्स आईडी, वीडियो आईडी, और एपीआई पासकोड के साथ-साथ अन्य वैकल्पिक पैरामीटर की जानकारी दी जाती है. हालांकि, एपीआई पासकोड देना ज़रूरी नहीं है.
StreamManager
: यह एक ऐसा ऑब्जेक्ट है जो वीडियो स्ट्रीम और IMA DAI SDK के बीच कम्यूनिकेशन को मैनेज करता है. जैसे, ट्रैकिंग पिंग को ट्रिगर करना और पब्लिशर को स्ट्रीम इवेंट फ़ॉरवर्ड करना.
ज़रूरी शर्तें
- Cast डेवलपर कंसोल खाता, जिसमें रजिस्टर किया गया टेस्ट डिवाइस हो.
- होस्ट किया गया वेब रिसीवर ऐप्लिकेशन, जिसे आपके Cast डेवलपर कंसोल में रजिस्टर किया गया हो. साथ ही, इस गाइड में दिए गए कोड को होस्ट करने के लिए, इसमें बदलाव किया जा सकता हो.
- भेजने वाला ऐप्लिकेशन, जो आपके वेब रिसीवर ऐप्लिकेशन का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है. इस उदाहरण में, कास्ट कमांड और कंट्रोल टूल को भेजने वाले के तौर पर इस्तेमाल किया गया है.
ईमेल भेजने वाले के MediaInfo ऑब्जेक्ट कॉन्फ़िगर करना
सबसे पहले, अपने ऐप्लिकेशन के MediaInfo ऑब्जेक्ट को कॉन्फ़िगर करें, ताकि इन फ़ील्ड को शामिल किया जा सके:
contentId
|
इस मीडिया आइटम के लिए यूनीक आइडेंटिफ़ायर | |
contentUrl
|
अगर किसी वजह से डीएआई स्ट्रीम रिक्वेस्ट पूरा नहीं हो पाता है, तो लोड करने के लिए फ़ॉलबैक स्ट्रीम यूआरएल | |
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 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 को लोड करने वाली स्क्रिप्ट के ठीक बाद, अपने वेब रिसीवर में CAF के लिए IMA DAI SDK टूल इंपोर्ट करने के लिए, स्क्रिप्ट टैग जोड़ें. CAF DAI 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 स्ट्रीम मैनेजर को शुरू करना
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 टूल, स्ट्रीम के अनुरोध करने और कॉन्टेंट यूआरएल को फ़ाइनल DAI स्ट्रीम से बदलने के लिए, CAF लोड मैसेज इंटरसेप्टर का इस्तेमाल करता है.
मैसेज इंटरसेप्ट करने वाला टूल, 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 के CAF DAI SDK टूल की मदद से, डीएआई स्ट्रीम का अनुरोध किया जा सकता है और उन्हें चलाया जा सकता है. SDK टूल की ज़्यादा बेहतर सुविधाओं के बारे में जानने के लिए, अन्य गाइड देखें या हमारे सैंपल रिसीवर ऐप्लिकेशन डाउनलोड करें.