खास जानकारी
वेब पाने वाले के SDK टूल में, विज्ञापन के लिए ब्रेक और साथ-साथ चलने वाले विज्ञापनों के लिए नेटिव सहायता की सुविधा है
का इस्तेमाल किया जा सकता है. यह एपीआई की मदद से विज्ञापन का क्रम, विज्ञापन सोर्स,
साथ ही, विज्ञापन के लिए ब्रेक की क्लिप और उनके काम करने का तरीका भी बताया गया है. इस गाइड में,
Break
उस वीडियो के चलने के इंटरवल के बारे में बताता है जिसमें एक या उससे ज़्यादा विज्ञापन या बंपर शामिल हैं और
हर विज्ञापन या बंपर को
BreakClip
.
ये ब्रेक, लोड किए जा रहे या चल रहे मीडिया से जुड़े होते हैं.
विज्ञापन के टाइप
वेब रिसीवर SDK टूल, क्लाइंट साइड विज्ञापन इंसर्शन (सीएसएआई) और सर्वर के साथ काम करता है स्टिच किया गया विज्ञापन इंसर्शन (एसएसएआई). क्लाइंट-स्टिच के ज़रिए दिखाए जाने वाले विज्ञापनों को, मैन्युअल तरीके से ऐप्लिकेशन या VAST और VMAP टेम्प्लेट फ़ाइलों से एक्सट्रैक्ट किया गया होता है. कॉन्टेंट लोड करने से पहले, सर्वर से सिले गए विज्ञापनों की जानकारी मैन्युअल तरीके से दी जानी चाहिए: एम्बेड किए गए विज्ञापन या वीडियो चलने के दौरान डाइनैमिक तौर पर, एम्बेड किए गए वीडियो के तौर पर दिखते हैं विज्ञापन. इनमें से हर विज्ञापन टाइप को लागू करने के बारे में नीचे विस्तार से बताया गया है.
मैन्युअल क्लाइंट-स्टिच
मैन्युअल तौर पर क्लाइंट-स्टिच किया गया विज्ञापन के लिए ब्रेक, विज्ञापन के लिए ब्रेक का एक ऐसा टाइप होता है जिसे स्टिच किया जाता है
क्लाइंट एक साथ जुड़ता है और ऐप्लिकेशन, इसका इस्तेमाल करके मैन्युअल तौर पर तय करता है
SDK टूल के एपीआई. विज्ञापन का यह टाइप, मुख्य कॉन्टेंट की स्ट्रीम में एम्बेड नहीं किया गया है. कॉन्टेंट बनाने
BreakClip
को यह जानकारी देनी होगी
contentId
जो विज्ञापन के कॉन्टेंट पर ले जाने वाला यूआरएल है.
contentType
विज्ञापन कॉन्टेंट के फ़ॉर्मैट और
title
.
Break
में
isEmbedded
और
expanded
डिफ़ॉल्ट मान false
पर सेट किया गया है. कॉन्टेंट बनाने
position
इन्हें वीडियो शुरू होने से पहले विज्ञापन, वीडियो के बीच में दिखने वाले विज्ञापन या वीडियो खत्म होने के बाद विज्ञापन के लिए ब्रेक पर सेट किया जा सकता है. ज़्यादा जानकारी के लिए,
ब्रेकिंग पोज़िशन सेक्शन पर जाएं). आपकी जानकारी के लिए,
प्लेबैक के लिए विज्ञापन, वेब रिसीवर SDK लोड करने के लिए एक अन्य प्लेयर इंस्टेंस जनरेट करता है
और विज्ञापन का कॉन्टेंट चलाएं. इन ब्रेक के लिए stitched timeline
की ज़रूरत होती है. ये ब्रेक ऐसे होने चाहिए
स्टैटिक तरीके से जोड़ा गया (यहां ज़्यादा देखें
विज्ञापन इंसर्शन सेक्शन में बताया गया है). नीचे दिया गया सैंपल, वेबसाइट या ऐप्लिकेशन पर
मैन्युअल क्लाइंट-स्टिच किए गए विज्ञापन को लागू करना:
// Create the BreakClip.
let clipClient = new cast.framework.messages.BreakClip('bc_client');
clipClient.title = 'The Ad Title to be displayed during playback';
clipClient.contentId = 'https://example.com/ad.m3u8';
clipClient.contentType = 'application/vnd.apple.mpegurl';
// Optional: Used when HLS ad container formats differ from the main content's.
clipClient.hlsSegmentFormat = cast.framework.messages.HlsSegmentFormat.FMP4;
// Create the Break using the BreakClip id above.
let breakPostrollClient = new cast.framework.messages.Break(
'break_postroll_client', ['bc_client'], -1);
breakPostrollClient.isEmbedded = false; // Optional: default is false.
breakPostrollClient.expanded = false; // Optional: default is false.
VAST
वेब रिसीवर SDK टूल, IAB स्टैंडर्ड VAST (वीडियो विज्ञापन दिखाना) को जोड़ने की सुविधा देता है टेंप्लेट) विज्ञापन. दिए जाने पर, एक्सएमएल टेंप्लेट को पार्स किया जाता है, ताकि ब्रेक लेने के बाद, क्लाइंट-स्टिच की गई ब्रेक की क्लिप.
वीएएसटी विज्ञापन बनाने के लिए, पाने वाले ऐप्लिकेशन को एक
VastAdsRequest
और इसे BreakClip
में साफ़ तौर पर बताएं
vastAdsRequest
प्रॉपर्टी. VastAdsRequest
ऑब्जेक्ट में, adsResponse
(a
एक्सएमएल टेंप्लेट का स्ट्रिंग दिखाना) या adTagUrl
(यूआरएल)
जहां एक्सएमएल टेंप्लेट होस्ट किया गया है) प्रॉपर्टी सेट अप की गई हो. अगर यूआरएल तय किया गया है, तो
SDK टूल, टेंप्लेट फ़ेच करेगा. इनकैप्सुलेटिंग Break
इसके बाद चलता है
क्लाइंट के स्टिच किए गए विज्ञापनों के तरीके. ये विज्ञापन दूसरे विज्ञापनों के साथ जोड़े जा सकते हैं
मैन्युअल क्लाइंट-स्टिच किए गए विज्ञापनों को एक ही ब्रेक में या अलग-अलग ब्रेक में
कॉन्टेंट का एक हिस्सा है. नीचे दिए गए उदाहरण में वीएएसटी (वीडियो विज्ञापन देने के लिए टेंप्लेट) को बुनियादी तौर पर लागू करने के बारे में बताया गया है
विज्ञापन:
// Create the VastAdsRequest.
let vastTemplate = new cast.framework.messages.VastAdsRequest();
vastTemplate.adTagUrl = 'https://example.com/ads.xml'
// Create the BreakClip.
let clipVast = new cast.framework.messages.BreakClip('bc_vast');
clipVast.vastAdsRequest = vastTemplate;
// Create the Break using the BreakClip id above.
let breakPostrollVast = new cast.framework.messages.Break(
'break_postroll_vast', ['bc_vast'], -1);
breakPostrollVast.isEmbedded = false; // Optional: default is false.
breakPostrollVast.expanded = false; // Optional: default is false.
जब VAST BreakClip
वाला Break
डाला जाता है, तो वेब पाने वाला
SDK टूल वैकल्पिक रूप से फ़ेच करेगा और फिर टेंप्लेट को पार्स करेगा. पार्स करते समय, SDK टूल
एक नया BreakClip
जनरेट करेगा और उसे यहां से निकाली गई वैल्यू के साथ भरेगा
टेंप्लेट जैसे कि contentId
, contentType
, title
, duration
,
whenSkippable
और clickThroughUrl
. ब्रेक की जनरेट की गई क्लिप के लिए id
GENERATED:N
पर सेट किया जाता है, जहां N
एक पूर्णांक होता है, जो हर नए के लिए 1
तक बढ़ता है
VAST ब्रेक की क्लिप, 0
को बनाई गई. इसके बाद, जनरेट किया गया विज्ञापन इसमें जोड़ दिया जाता है
BreakClip
कलेक्शन. मौजूदा Break
में हर VAST ब्रेक की क्लिप का id
है
इसके बाद, जनरेट की गई ब्रेक क्लिप के id
से बदल दिया जाएगा. स्निपेट
नीचे दिए गए स्निपेट में,
MEDIA_STATUS
ऐसे ब्रेक लेने से पहले और बाद में दिखाए जाने वाले विज्ञापनों से जुड़े मैसेज.
वीएएसटी विज्ञापनों के साथ ब्रेक लेने से पहले की Break
और BreakClip
जानकारी.
"breaks": [
{
"id": "break_postroll_vast",
"breakClipIds": [
"bc_vast"
],
"position": 0,
"isWatched": false
}
],
"breakClips": [
{
"id": "bc_vast"
}
]
वीएएसटी विज्ञापनों की मदद से ब्रेक लेने के बाद मिली Break
और BreakClip
की जानकारी.
"breaks": [
{
"id": "break_postroll_vast",
"breakClipIds": [
"GENERATED:0"
],
"position": 0,
"isWatched": true
}
],
"breakClips": [
{
"id": "bc_vast"
},
{
"id": "GENERATED:0",
"contentId": "https://example.com/break-clip-1.mpd",
"contentType": "application/dash+xml",
"title": "Ad Title Extracted from Template",
"duration": 10,
"whenSkippable": 5,
"clickThroughUrl": "https://example.com/ad-target"
}
]
वीएमएपी
वेब रिसीवर SDK टूल, IAB VMAP (एक से ज़्यादा वीडियो विज्ञापन की प्लेलिस्ट) के साथ काम करता है
मानक. VMAP दिया जाने पर, वेब पाने वाला SDK टूल, VMAP को पार्स करेगा
रिस्पॉन्स और किसी भी <AdBreak>
के लिए क्लाइंट-स्टिच Break
ऑब्जेक्ट जनरेट करें
एंट्री होती हैं. यह इसके साथ सही BreakClips
भी जनरेट करेगा
VMAP में दी गई हर <AdSource>
एंट्री के लिए, एक vastAdsRequest
ऑब्जेक्ट है. यहां की यात्रा पर हूं
आपके कॉन्टेंट में विज्ञापन डालने के लिए VMAP चालू करना चाहिए, तो ऐप्लिकेशन को
VastAdsRequest
ऑब्जेक्ट को असाइन करके उसे
vmapAdsRequest
प्रॉपर्टी
MediaInformation
में
LoadRequestData
.
इन विज्ञापनों को स्टैटिक तरीके से डाला जाना चाहिए (यहां ज़्यादा देखें
विज्ञापन इंसर्शन सेक्शन में बताया गया है). नीचे एक स्निपेट दिया गया है, जिसमें
VMAP अनुरोध का निर्माण.
// Create the VastAdsRequest.
let vastTemplate = new cast.framework.messages.VastAdsRequest();
vastTemplate.adTagUrl = 'https://example.com/vmap.xml'
// Add it to the MediaInformation of the LoadRequest.
loadRequestData.media.vmapAdsRequest = vastTemplate;
एम्बेड किया गया
एम्बेड किया गया विज्ञापन के लिए ब्रेक, विज्ञापन के लिए ब्रेक का एक ऐसा टाइप होता है जो सर्वर साइड से जुड़ा होता है
स्ट्रीम में शामिल कर सकते हैं. Break
की अवधि को घटाया गया है
मीडिया समय का हिसाब लगाते समय, मुख्य कॉन्टेंट की अवधि से निकालें.
BreakClip
को यह जानकारी देनी होगी
duration
के साथ-साथ
title
.
Break
में
isEmbedded
इसे true
और पर सेट किया गया
expanded
false
पर सेट किया गया है. कॉन्टेंट बनाने
position
इसे वीडियो शुरू होने से पहले विज्ञापन या वीडियो के बीच में दिखने वाले विज्ञापन के तौर पर सेट किया जा सकता है. वीडियो खत्म होने के बाद विज्ञापन के लिए ब्रेक
सकारात्मक सटीक position
मानों के साथ समर्थित है. इस बारे में ज़्यादा जानने के लिए, यहां जाएं:
ब्रेक पोज़िशनिंग सेक्शन पर जाएं. जब विज्ञापन
चलाएं, तो वेब रिसीवर SDK टूल, विज्ञापन सेगमेंट के तौर पर स्ट्रीम को चलाना जारी रखता है
उसमें एम्बेड किए गए वीडियो होते हैं. इस तरह के विज्ञापन के लिए, लोड करने का कोई अतिरिक्त तरीका नहीं है.
प्लेहेड के दायरे में आने पर, उपयोगकर्ता को विज्ञापन से जुड़ा काम का मेटाडेटा दिखाया जाता है
ब्रेक की समयसीमा. इन ब्रेक के लिए embedded timeline
की ज़रूरत होती है और इन्हें जोड़ना ज़रूरी है
स्टैटिक तरीके से (विज्ञापन इंसर्शन सेक्शन में ज़्यादा देखें). कॉन्टेंट बनाने
नीचे दिया गया नमूना embedded
विज्ञापन को बुनियादी तौर पर लागू करने का तरीका दिखाता है.
// Create the BreakClip.
let clipEmbedded = new cast.framework.messages.BreakClip('bc_embedded');
clipEmbedded.title = 'The Ad Title to be displayed during playback';
clipEmbedded.duration = 15;
// Create the Break using the BreakClip id above.
let breakPrerollEmbedded = new cast.framework.messages.Break(
'break_preroll_embedded', ['bc_embedded'], 0);
breakPrerollEmbedded.isEmbedded = true;
breakPrerollEmbedded.expanded = false; // Optional: default is false.
एम्बेड किया गया बड़ा किया गया
एम्बेड किया गया बड़ा विज्ञापन ब्रेक एक तरह का विज्ञापन ब्रेक होता है, जो सर्वर से जुड़ा होता है
स्ट्रीम में लोगों की दिलचस्पी बढ़ाई जा सकती है. Break
की अवधि को शामिल किया गया है
मीडिया समय का हिसाब लगाते समय, मुख्य कॉन्टेंट की अवधि में दिखाया जाएगा.
BreakClip
को यह जानकारी देनी होगी
duration
के साथ-साथ
title
.
Break
में
isEmbedded
इसे true
और पर सेट किया गया
expanded
true
पर सेट किया गया. कॉन्टेंट बनाने
position
इसे वीडियो शुरू होने से पहले विज्ञापन या वीडियो के बीच में दिखने वाले विज्ञापन के तौर पर सेट किया जा सकता है. वीडियो खत्म होने के बाद विज्ञापन के लिए ब्रेक
पॉज़िटिव position
वैल्यू के साथ काम करता है. इस बारे में ज़्यादा जानने के लिए, यहां जाएं:
ब्रेक पोज़िशनिंग सेक्शन पर जाएं. जब विज्ञापन
चलाएं, तो वेब रिसीवर SDK टूल, विज्ञापन सेगमेंट के तौर पर स्ट्रीम को चलाना जारी रखता है
उसमें एम्बेड किए गए वीडियो होते हैं. इस तरह के विज्ञापन के लिए, लोड करने का कोई अतिरिक्त तरीका नहीं है.
प्लेहेड के दायरे में आने पर, उपयोगकर्ता को विज्ञापन से जुड़ा काम का मेटाडेटा दिखाया जाता है
ब्रेक की समयसीमा. इन ब्रेक के लिए embedded timeline
की ज़रूरत होती है और इन्हें जोड़ा जा सकता है
या तो स्टैटिक तरीके से या डाइनैमिक रूप से (ज़्यादा जानकारी के लिए यहां देखें
विज्ञापन इंसर्शन सेक्शन में बताया गया है). नीचे दिया गया सैंपल, वेबसाइट या ऐप्लिकेशन पर
embedded expanded
विज्ञापन को लागू करना:
// Create the BreakClip.
let clipEmbeddedExpanded =
new cast.framework.messages.BreakClip('bc_embedded_expanded');
clipEmbeddedExpanded.title = 'The Ad Title to be displayed during playback';
clipEmbeddedExpanded.duration = 15;
// Create the Break using the BreakClip id above.
let breakPrerollEmbeddedExpanded = new cast.framework.messages.Break(
'break_preroll_embedded_expanded', ['bc_embedded_expanded'], 0);
breakPrerollEmbeddedExpanded.isEmbedded = true;
breakPrerollEmbeddedExpanded.expanded = true;
प्लेयर की टाइमलाइन के टाइप
प्लेयर इंस्टेंस बनाते समय, वेब रिसीवर SDK टूल यह तय करता है कि
कॉन्टेंट को चलाने के दौरान विज्ञापन दिखाने में मदद मिलती है. प्रत्येक टाइमलाइन कुछ विज्ञापन को सक्षम करती है
ब्रेक टाइप जोड़े जा सकते हैं. टाइमलाइन का टाइप,
विज्ञापन के टाइप, लोड होने में लगने वाले समय के दौरान
MediaInformation
का तरीका
LoadRequestData
.
अगर एम्बेड किए गए विज्ञापन के लिए ब्रेक मौजूद हैं, तो embedded
टाइमलाइन चुनी जाती है. अगर आपने
क्लाइंट के जोड़े विज्ञापन के लिए ब्रेक मौजूद हैं, stitched
टाइमलाइन चुनी गई है.
अगर कोई विज्ञापन मौजूद नहीं है, तो SDK टूल डिफ़ॉल्ट रूप से embedded
का इस्तेमाल करता है
समयावधि. समयावधि चुनने के बाद, इसे वर्तमान
मीडिया आइटम. नीचे दी गई टेबल में, हर समयावधि के बारे में पूरी जानकारी दी गई है.
टाइमलाइन का टाइप | ब्यौरा |
---|---|
एम्बेड की गई टाइमलाइन | मीडिया टाइम का इलस्ट्रेशन, जो विज्ञापन दिखाने में मदद करता है जो मुख्य कॉन्टेंट में एम्बेड होते हैं (एम्बेड किए गए और एम्बेड किए गए बड़े किए गए विज्ञापन के लिए ब्रेक) की सुविधा होती है. जब विज्ञापन के लिए किसी ब्रेक को बड़ा नहीं किया जाता, तो उसकी अवधि इसका प्रतिशत को कुल अवधि से घटाया जाता है कॉन्टेंट. दूसरी ओर, जब कोई बड़ा किया गया विज्ञापन ब्रेक मौजूद है, इसका समय इस अवधि मुख्य कॉन्टेंट का हिस्सा होता है. |
स्टिच की गई टाइमलाइन | मीडिया टाइम का इलस्ट्रेशन, जो विज्ञापन दिखाने में मदद करता है जिन्हें बाहरी मीडिया फ़ाइलों से लिया गया है (मैन्युअल क्लाइंट-स्टिच, VAST और VMAP विज्ञापन के लिए ब्रेक लें). जोड़े जाने पर, विज्ञापन के लिए ब्रेक की अवधि है मुख्य कॉन्टेंट की अवधि का हिस्सा नहीं होता है. |
नीचे दी गई पहली से तीन इमेज में, कुछ ऐसे कॉन्टेंट के बारे में बताया गया है जिसमें विज्ञापन के अलग-अलग टाइप और उनके संबंधित टाइमलाइन मान. कॉन्टेंट को प्री-रोल ब्रेक के साथ कॉन्फ़िगर किया गया हो जिसमें दो ब्रेक क्लिप और मिड-रोल और पोस्ट-रोल ब्रेक शामिल हैं एक ब्रेक की क्लिप. वीडियो चलना शुरू होने के बाद से दीवार घड़ी का समय, मुख्य कॉन्टेंट का मीडिया समय और मौजूदा ब्रेक का समय वीडियो ब्रेक की क्लिप, हर इमेज के नीचे मौजूद है.
ब्रेक पोज़िशनिंग
वेब रिसीवर SDK टूल की मदद से, डेवलपर यह तय कर सकते हैं कि विज्ञापन के लिए ब्रेक की जगह कहां होनी चाहिए
को सेट करके
position
Break
की प्रॉपर्टी है. यह वैल्यू, मुख्य कॉन्टेंट के मीडिया समय के बारे में बताती है
इनका इस्तेमाल करके, pre-roll
, mid-roll
, और post-roll
विज्ञापन के लिए ब्रेक बनाए जा सकते हैं.
इनकी परिभाषा इस तरह है:
ब्रेक पोज़िशन | ब्यौरा |
---|---|
वीडियो शुरू होने से पहले विज्ञापन | विज्ञापन के लिए एक ब्रेक, जो मुख्य कॉन्टेंट से पहले दिखाया जाता है. यह है
breakPosition को 0 पर सेट करके दिखाया जाता है |
वीडियो के बीच में दिखने वाले विज्ञापन | विज्ञापन के लिए ब्रेक, जिसे कॉन्टेंट के बीच में चलाया जाता है. इसे इससे दिखाया जाता है
breakPosition को वह समय सेट करते हुए जिसमें ब्रेक का समय है
शुरुआती हिस्सा मुख्य कॉन्टेंट की शुरुआत के बाद का है और
ब्रेक के खत्म होने का समय, मुख्य कॉन्टेंट के खत्म होने के समय से कम होता है
समय. |
वीडियो खत्म होने के बाद विज्ञापन | विज्ञापन के लिए एक ब्रेक, जो मुख्य कॉन्टेंट के बाद दिखाया जाता है. यह है
के लिए breakPosition को -1 पर सेट करके दिखाया जाता है
स्टिच की गई टाइमलाइन. एम्बेड किए गए यूआरएल के लिए
टाइमलाइन से breakPosition
इसे मुख्य कॉन्टेंट के कुल समय के हिसाब से सेट किया जाना चाहिए
ब्रेक की अवधि. यह सुविधा लाइव कॉन्टेंट के लिए उपलब्ध नहीं है. |
इंटरोऑपरेबिलिटी मैट्रिक्स
तुरंत रेफ़रंस के तौर पर, टेबल 1 विज्ञापन के टाइप की खास जानकारी दिखाती है और विज्ञापन से जुड़ी सुविधाओं के साथ कैसे काम करता है.
सुविधा के लिए सहायता | मैन्युअल तौर पर बनाया गया क्लाइंट-स्टिला विज्ञापन | VAST | वीएमएपी | एम्बेड किया गया विज्ञापन | एम्बेड किया गया बड़ा किया गया विज्ञापन |
---|---|---|---|---|---|
इनके साथ काम करता है | VAST | मैन्युअल क्लाइंट-स्टिच | लागू नहीं | एम्बेड किया गया बड़ा किया गया | एम्बेड किया गया |
समयावधि | स्टिच किया गया | स्टिच किया गया | स्टिच किया गया | एम्बेड किया गया | एम्बेड किया गया |
विज्ञापन इंसर्शन | स्टैटिक | स्टैटिक | स्टैटिक | स्टैटिक | स्टैटिक, डाइनैमिक |
विज्ञापन हटाना | |||||
वीडियो शुरू होने से पहले दिखने वाला विज्ञापन | |||||
वीडियो के बीच में दिखने वाला विज्ञापन | |||||
वीडियो खत्म होने के बाद दिखने वाला विज्ञापन | |||||
विज्ञापन स्किप करना | |||||
ब्रेक सीक इंटरसेप्टर | |||||
क्लिप लोड इंटरसेप्टर को बंद करें |
इवेंट
'की ब्रेक इवेंट' होने पर, Cast SDK टूल अलग-अलग टाइप के इवेंट की जानकारी भेजेगा
BreaksEvent
.
पैसे पाने वाला ऐप्लिकेशन, PlayerManager
का इस्तेमाल करके अपने चैनल की सदस्यता ले सकता है
addEventListener
एपीआई.
इन इवेंट का इस्तेमाल, आंकड़ों और विज्ञापन प्लेबैक को ट्रैक करने के लिए किया जा सकता है. जब VMAP (वीडियो एक से ज़्यादा विज्ञापन प्लेलिस्ट) और VAST (वीडियो विज्ञापन देने के लिए टेंप्लेट) विज्ञापन का इस्तेमाल किया है, तो जवाबों में दिए गए कोई भी स्टैंडर्ड ट्रैकिंग इवेंट अपने-आप SDK टूल की मदद से भेजा जाता है.
इवेंट के टाइप टेबल 2 में दिए गए हैं. साथ ही, यहां इवेंट टाइप के बारे में पूरी जानकारी भी दी गई है उन्हें कब से चालू किया जा सकता है.
ब्रेक इवेंट | ब्यौरा |
---|---|
BREAK_STARTED |
तब ट्रिगर होता है, जब मुख्य कॉन्टेंट का मौजूदा मीडिया टाइम इसके बराबर हो
ऐसे ब्रेक का position जो अब तक नहीं देखा गया है. |
BREAK_CLIP_LOADING |
स्टिच की गई टाइमलाइन के ब्रेक की क्लिप लोड होने पर ही ट्रिगर होती है. |
BREAK_CLIP_STARTED |
यह तब ट्रिगर होता है, जब ब्रेक की कोई क्लिप चलना शुरू होती है. |
BREAK_CLIP_ENDED |
ब्रेक की क्लिप खत्म होने पर ट्रिगर होता है. कॉन्टेंट बनाने
endedReason
इन स्थितियों में जानकारी अपने-आप भर जाएगी:
|
BREAK_ENDED |
ब्रेक के दौरान लगी पिछली क्लिप के खत्म होने पर ट्रिगर होती है. |
विज्ञापन इंसर्शन
Cast SDK टूल की मदद से, ऐप्लिकेशन अलग-अलग समय पर विज्ञापन दिखा और हटा सकते हैं
का इस्तेमाल किया जा सकता है. विज्ञापन इंसर्शन के दो टाइप हैं, स्टैटिक और डाइनैमिक.
स्टैटिक विज्ञापन इंसर्शन के लिए ज़रूरी है कि विज्ञापनों
LoadRequestData
वह भी इससे पहले. डाइनैमिक विज्ञापन इंसर्शन
BreakManager
addBreak
एपीआई का इस्तेमाल, पहले से लोड किए गए कॉन्टेंट में ब्रेक डालने के लिए किया जाता है. हर तरह का इंसर्शन
का तरीका कुछ विज्ञापन के टाइप के साथ काम करता हो. साथ काम करता है
की खास जानकारी, इंटरऑपरेबिलिटी मैट्रिक्स में दी गई है.
स्टैटिक विज्ञापन इंसर्शन
स्टैटिक विज्ञापन इंसर्शन की सुविधा की मदद से, पहले काम का विज्ञापन मेटाडेटा जोड़ा जाता है
इस्तेमाल करने में कुछ दिक्कतें हैं. यह जानकारी इसमें दी गई है:
MediaInformation
LoadRequestData
में से. उदाहरण के लिए, इसे किसी कनेक्ट किए गए भेजने वाले के खाते में सेट किया जा सकता है
लोड करने का मूल अनुरोध भेजा जाता है या उसे वेब रिसीवर ऐप्लिकेशन के ज़रिए शामिल किया जा सकता है
LOAD
के अनुरोध को इंटरसेप्ट कर रहा है. LoadRequestData
को वापस
प्रोसेसिंग के लिए वेब रिसीवर SDK, प्लेयर बना दिया गया है. यहां ज़्यादा देखें
मीडिया लोड हो रहा है. सैंपल
नीचे दिखाया गया है कि LOAD
अनुरोध में मैन्युअल क्लाइंट-स्टिच किया गया विज्ञापन जोड़ा जा रहा है
इंटरसेप्टर.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, loadRequestData => {
// Create the BreakClip.
let clipClient = new cast.framework.messages.BreakClip('bc_client');
clipClient.title = 'The Ad Title to be displayed during playback';
clipClient.contentId = 'https://example.com/ad.mp4';
clipClient.contentType = 'video/mp4';
// Create the Break using the BreakClip id above.
let breakPostrollClient = new cast.framework.messages.Break(
'break_postroll_client', ['bc_client'], -1);
// Set the ad information in the load request data.
let media = loadRequestData.media;
media.breakClips = [clipClient];
media.breaks = [breakPostrollClient];
return loadRequestData;
});
डाइनैमिक विज्ञापन इंसर्शन
डाइनैमिक विज्ञापन इंसर्शन की सुविधा, कॉन्टेंट के दौरान विज्ञापन के लिए ब्रेक सेट करती है
प्लेबैक. ऐसा करने के लिए, BreakManager
का इंस्टेंस पाएं और इस नंबर पर कॉल करें
यह
addBreak
एपीआई. इसके लिए कम से कम दो पैरामीटर की ज़रूरत होती है,
एम्बेड किए गए वीडियो को बड़ा किया गया
Break
और
इसका कलेक्शन
BreakClip
.
इसमें एक वैकल्पिक तीसरी प्रॉपर्टी शामिल की गई है, ताकि बदलाव बलपूर्वक भेजे जा सकें
जब true
पर सेट हो, तब MediaStatus
ब्रॉडकास्ट के ज़रिए कनेक्टेड भेजने वाले लोग. टास्क कब शुरू होगा
ब्रेक और ब्रेक की क्लिप जोड़ने के लिए, हर आईडी अलग-अलग होना चाहिए. ये विज्ञापन
प्लेयर बनाने के बाद ही, उन्हें जोड़ा जा सकता है. वेब रिसीवर SDK टूल सक्रिय होता है
यह
PLAYER_LOADING
प्लेयर बनने के बाद इवेंट. नीचे दिया गया सैंपल देखें. इसे
एक इवेंट हैंडलर जो किसी स्ट्रीम के ID3 मेटाडेटा में हुए बदलावों के बारे में जवाब देता है और
टाइमलाइन में डालने के लिए, Break
और BreakClip
ऑब्जेक्ट बनाता है.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();
playerManager.addEventListener(cast.framework.events.EventType.ID3, (event) => {
// Create the BreakClip.
let clipEmbeddedExpanded = parseBreakClipFromData(event.segmentData);
let breakEmbeddedExpanded = parseExpandedBreakFromData(event.segmentData);
// Add the break and break clip.
breakManager.addBreak(breakEmbeddedExpanded, [clipEmbeddedExpanded]);
});
डाइनैमिक विज्ञापन हटाना
डाइनैमिक ब्रेक हटाने के लिए, ऐप्लिकेशन को कॉल करना चाहिए
removeBreakById
मिलता है. फ़ंक्शन ब्रेक के एक स्ट्रिंग आइडेंटिफ़ायर को
को समयावधि से निकाला गया. बताया गया breakId
किसी एम्बेड किए गए वीडियो,
बड़ा किया गया विज्ञापन के लिए ब्रेक. अगर विज्ञापन के लिए किसी दूसरे तरह के ब्रेक का पता चलता है, तो
टाइमलाइन में मौजूद रहेगा. नीचे वह नमूना देखें, जो ब्रेक को हटा देता है.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();
breakManager.removeBreakById('break_midroll_embedded_expanded');
ब्रेक लेने का तरीका
SDK टूल, डिफ़ॉल्ट ऐक्शन के बारे में बताता है. यह बताता है कि खिलाड़ी किस मोड में कॉन्टेंट चलाता है और कब ब्रेक लेता है
और साथ ही, इसमें दिए गए कुछ एपीआई का इस्तेमाल करके, इसे अपनी पसंद के मुताबिक बनाने का तरीका बताता है
इंच
BreakManager
.
ब्रेक का डिफ़ॉल्ट तरीका
जब सामान्य प्लेबैक के ज़रिए या Break
पर आगे-पीछे करके Break
डाला जाता है,
SDK टूल यह जांच करके आकलन करेगा कि लोगों ने इसे पहले देखा है या नहीं
यह
isWatched
प्रॉपर्टी. बनाए जाने के बाद, इस प्रॉपर्टी के लिए ब्रेक की डिफ़ॉल्ट वैल्यू false
है. अगर आपने
प्रॉपर्टी true
है, मुख्य आईडी डालने पर ब्रेक नहीं चलाया जाएगा
कॉन्टेंट चलता रहेगा. अगर प्रॉपर्टी false
है, तो ब्रेक होगा
डाला गया.
पिछले ब्रेक देखने पर, लागू करने की डिफ़ॉल्ट प्रोसेस में सभी Break
शामिल होते हैं
वे आइटम जिनका position
, सीक ऑपरेशन के बीच है
seekFrom
और
seekTo
वैल्यू. ब्रेक की इस सूची से, SDK टूल उस Break
को चलाएगा जिसका position
वह seekTo
वैल्यू के सबसे करीब है जिसकी isWatched
प्रॉपर्टी इस पर सेट है
false
. इसके बाद उस ब्रेक की isWatched
प्रॉपर्टी true
और
प्लेयर अपने ब्रेक की क्लिप चलाना शुरू करेगा. ब्रेक देखने के बाद,
मुख्य कॉन्टेंट seekTo
की पोज़िशन से फिर से चलेगा. अगर ऐसा नहीं है
ब्रेक मौजूद है, फिर कोई ब्रेक नहीं चलाया जाएगा और मुख्य कॉन्टेंट फिर से शुरू हो जाएगा
seekTo
पोज़िशन पर चल रहा है.
ब्रेक के दौरान प्लेबैक की सुविधा चालू होने पर, SDK टूल सभी ज़रूरी अपडेट, कनेक्ट किए गए डिवाइस पर ब्रॉडकास्ट करेगा
इसमें ऐप्लिकेशन भेजने वाले लोगों के आवेदन
MediaStatus
.
ये ऐप्लिकेशन, ब्रॉडकास्ट मैसेज का इस्तेमाल करके,
यह
breakStatus
प्रॉपर्टी. यह प्रॉपर्टी सिर्फ़ ब्रेक ब्रेक के दौरान तय की जाती है.
पाने वाले ऐप्लिकेशन, इससे जुड़ी जानकारी के बारे में सीधे तौर पर क्वेरी भी कर सकते हैं
BreakClip
के मौजूदा समय के हिसाब से प्लेहेड की स्थिति
PlayerManager
पर कॉल करके दिखाया गया
getBreakClipCurrentTimeSec
.
इसी तरह, ऐप्लिकेशन इसके हिसाब से मौजूदा BreakClip
की अवधि के लिए क्वेरी कर सकते हैं
कॉल किया जा रहा है
getBreakClipDurationSec
.
कस्टम ब्रेक व्यवहार
डिफ़ॉल्ट तरीके
ब्रेक और ब्रेक की क्लिप में बदलाव करने के लिए,
setBreakClipLoadInterceptor
और
setBreakSeekInterceptor
BreakManager
में बताए गए तरीके.
ब्रेक सीक इंटरसेप्टर
ब्रेक सीक इंटरसेप्टर की मदद से, ऐप्लिकेशन को वीडियो पर आगे/पीछे जाने की गतिविधि को कंट्रोल किया जा सकता है
से ज़्यादा मिलती-जुलती हैं या नहीं. सीक ऑपरेशन का अनुरोध किए जाने पर फ़ंक्शन ट्रिगर होता है
जो एक या ज़्यादा ब्रेक पर आगे या पीछे जाता है. कॉल करने पर,
BreakSeekData
को कॉलबैक फ़ंक्शन में पैरामीटर के तौर पर पास किया जाता है. BreakSeekData
ऑब्जेक्ट
इसमें
Break
वे ऑब्जेक्ट जिनकी position
प्रॉपर्टी मौजूदा संख्या के बीच की किसी संख्या पर सेट है
प्लेहेड टाइम को इस तौर पर तय किया गया है
seekFrom
और सीक डेस्टिनेशन टाइम
seekTo
.
यह इंटरसेप्टर इसकी अनुमति देता है कि Break
ऑब्जेक्ट को उनके हिसाब से बने ब्रेक में रखा जाए
संशोधित. लागू किए जाने पर, ब्रेक सीक इंटरसेप्टर को यह बताना होगा कि कौनसा विज्ञापन
वैकल्पिक रूप से बदला गया BreakSeekData
ऑब्जेक्ट लौटाकर, चलाने के लिए ब्रेक लें. कॉन्टेंट बनाने
प्लेयर, रिटर्न वैल्यू में शामिल सभी ब्रेक को चलाएगा. अगर कोई मान
null
का या ब्रेक सीक इंटरसेप्टर से कुछ भी वापस नहीं मिलता है, ब्रेक है
छोड़ा गया.
इंटरसेप्टर को आसानी से लागू करने के लिए, नीचे दिया गया सैंपल देखें यह सुविधा, पहले से देखे गए ब्रेक के अपवाद हैं.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();
breakManager.setBreakSeekInterceptor((breakSeekData) => {
// Filter the breaks array by removing watched breaks.
const unwatchedBreaks =
breakSeekData.breaks.filter(adBreak => !adBreak.isWatched);
breakSeekData.breaks = unwatchedBreaks;
return breakSeekData;
});
ब्रेक क्लिप लोड इंटरसेप्टर
ब्रेक क्लिप लोड इंटरसेप्टर का इस्तेमाल करके, BreakClip
ऑब्जेक्ट में बदलाव किया जा सकता है
शुरू होने से पहले.
ब्रेक क्लिप लोड इंटरसेप्टर को सिर्फ़ इसके लिए इस्तेमाल किया जाता है
स्टिच की गई टाइमलाइन के ब्रेक
इसे इसकी मदद से सेट किया जा सकता है
setBreakClipLoadInterceptor
.
Break
में घुसने से पहले, हर व्यक्ति को एक बार इस इंटरसेप्टर को कॉल किया जाता है
उस ब्रेक में BreakClip
तय किया गया. SDK टूल, ओरिजनल वर्शन को पास करता है
BreakClip
ऑब्जेक्ट का इस्तेमाल, कॉलबैक फ़ंक्शन के पैरामीटर के तौर पर कर सकते हैं. इसके बाद ऐप्लिकेशन संशोधित कर सकता है
इस BreakClip
को जोड़ें और इसे दिखाएं, ताकि SDK टूल ब्रेक को फ़ेच कर सके और दिखा सके
अपडेट किए गए कॉन्फ़िगरेशन वाली क्लिप. अगर null
या कुछ नहीं मिलता है, तो ब्रेक का समय
क्लिप को छोड़ दिया गया.
नीचे दिया गया उदाहरण देखें, जिसमें ब्रेक की क्लिप के contentUrl
में बदलाव करने का तरीका बताया गया है:
एक उपयोगिता फ़ंक्शन, getUrlFromClipId
को कॉल करता है, जहां BreakClip
का id
को एक यूआरएल के साथ मैप किया गया है.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();
breakManager.setBreakClipLoadInterceptor(
(breakClip, breakClipLoadInterceptorContext) => {
// Obtains the URL of a break clip id from a function call.
breakClip.contentUrl = getUrlFromClipId(breakClip.id);
return breakClip;
});
विज्ञापन स्किप करना
वेब रिसीवर SDK टूल, एपीआई उपलब्ध कराता है. इनकी मदद से, विज्ञापन के लिए ब्रेक और ब्रेक की किसी खास अवधि को स्किप किया जा सकता है विज्ञापन के लिए ब्रेक का समय होता है. यह SDK टूल, लोगों को ब्रेक क्लिप को स्किप करने की सुविधा देता है. भेजने वाले के ऐप्लिकेशन या स्मार्ट डिसप्ले डिवाइसों से इंटरैक्ट करना.
उपयोगकर्ता के लिए स्किप किए जा सकने वाले ब्रेक की क्लिप
ब्रेक की क्लिप को स्किप किए जा सकने वाले के तौर पर सेट करने से, उपयोगकर्ता कनेक्ट किए गए सेंडर से इंटरैक्ट कर सकते हैं
ऐप्लिकेशन और स्मार्ट डिसप्ले डिवाइस का इस्तेमाल करें.
इस समय ब्रेक की क्लिप चल रही है. सेट करना
whenSkippable
प्रॉपर्टी की सकारात्मक संख्या को सेकंड की गैर-ऋणात्मक संख्या में सेट करने से यह सुविधा
BreakClip
ऑब्जेक्ट. प्लेयर ब्रेक की क्लिप को स्किप करने की सुविधा देगा
ब्रेक की क्लिप इतने सेकंड तक चली. इस वैल्यू को 0
पर सेट किया जा रहा है
उपयोगकर्ताओं को ब्रेक क्लिप को तुरंत छोड़ने की सुविधा देता है.
// Create the BreakClip.
let clip = new cast.framework.messages.BreakClip('bc');
clip.title = 'The Ad Title to be displayed during playback';
clip.whenSkippable = 10; // Users can skip the clip after 10 seconds of playback.
यह जानकारी, भेजने वाले के मूल अनुरोध में या पाने वाला ऐप्लिकेशन. स्किप किए जाने पर, स्टिच की गई टाइमलाइन वाले विज्ञापन के लिए ब्रेक की क्लिप मौजूदा ब्रेक की क्लिप चलाना बंद कर देगा. प्लेयर या तो अगला पेज लोड करेगा क्लिप मौजूद होने या मुख्य कॉन्टेंट लोड होने पर उसे ब्रेक करें. स्किप करने पर, ब्रेक की क्लिप एम्बेड की गई टाइमलाइन के आधार पर विज्ञापन के लिए ब्रेक की स्थिति, वीडियो के आखिर में दिखेगी उस समय स्ट्रीम का प्लेबैक जारी रख सकता है.
प्रोग्राम के हिसाब से विज्ञापनों को स्किप करना
विज्ञापन किसी उपयोगकर्ता के इंटरैक्शन के बिना भी अपने-आप स्किप हो सकते हैं.
पूरा ब्रेक लेने के लिए, ऐप्लिकेशन को
isWatched
प्रॉपर्टी Break
से true
तक की है. लोड होने के दौरान ऐसा कभी भी किया जा सकता है
क्रम या कॉन्टेंट चलाना. isWatched
प्रॉपर्टी का आकलन
प्लेयर जब ब्रेक का position
मुख्य कॉन्टेंट के मौजूदा समय में पूरा हो जाए. पर
उस पॉइंट पर, प्लेयर यह तय करेगा कि ब्रेक लिया जाना चाहिए या नहीं.
नीचे दिया गया वह नमूना देखें, जो सभी ब्रेक के दौरान लूप में चलता है और
प्लेयर लोड होते समय मान दिखाता है.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();
playerManager.addEventListener(cast.framework.events.EventType.PLAYER_LOADING,
(event) => {
// Obtain the breaks and iterate through each item to skip all ad breaks.
let breaks = breakManager.getBreaks();
breaks.forEach((brk) => {
brk.isWatched = true;
});
});
प्रोग्राम के हिसाब से ब्रेक की किसी खास क्लिप को स्किप करने के लिए,
ब्रेक क्लिप लोड इंटरसेप्टर का इस्तेमाल किया जाना चाहिए. इन्होंने बदलाव किया है
null
लौटा रहा है या कॉलबैक फ़ंक्शन में मान नहीं लौटा रहा है, क्लिप
उस ब्रेक को छोड़ दिया जाएगा.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
const breakManager = playerManager.getBreakManager();
breakManager.setBreakClipLoadInterceptor(
(breakClip, breakClipLoadInterceptorContext) => {
return null;
});