Google DAI Pod Serving API की मदद से, सर्वर-साइड पर विज्ञापन शामिल करें Google Ads की मदद से, वीडियो स्टिचिंग पर कंट्रोल रखा जा सकता है.
इस गाइड में, Pod Serving API का इस्तेमाल करने और उन्हें हासिल करने का तरीका बताया गया है ये सुविधाएं IMA डीएआई SDK टूल पर भी मिलती हैं. इसके बारे में खास सवालों के लिए ठीक तरह से काम करने के लिए, अपने Google खाता मैनेजर से संपर्क करें.
Pod Serving API, एचएलएस या एमपीईजी-डीएश में पॉड सर्विंग स्ट्रीम के साथ काम करता है स्ट्रीमिंग प्रोटोकॉल पर लागू हो. इस गाइड में एचएलएस से लाइव स्ट्रीमिंग करने के साथ-साथ, खास जानकारी को हाइलाइट करें कुछ चरणों में, एचएलएस और एमपीईजी-डीएएस के बीच का अंतर बताया गया है.
वीओडी (वीडियो ऑन डिमांड) स्ट्रीम के लिए, अपने ऐप्लिकेशन में Pod Serving API इंटिग्रेट करने के लिए, इसके लिए, नीचे दिया गया तरीका अपनाएं:
Ad Manager पर स्ट्रीम के रजिस्ट्रेशन का अनुरोध करना
स्ट्रीम रजिस्ट्रेशन एंडपॉइंट के लिए पोस्ट का अनुरोध करें. इसके बदले में आपको JSON जवाब, जिसमें स्ट्रीम आईडी शामिल है, जिसे मेनिफ़ेस्ट में बदलाव के लिए भेजा जा सकता है सर्वर और उससे जुड़े Pod Serving API एंडपॉइंट.
एपीआई एंडपॉइंट
POST: /ondemand/pods/api/v1/network/{network_code}/stream_registration
Host: dai.google.com
Content-Type: application/json
पाथ पैरामीटर
{network_code} |
आपका Google Ad Manager 360 नेटवर्क कोड |
JSON के बॉडी पैरामीटर
targeting_parameters |
एक JSON ऑब्जेक्ट जिसमें कॉन्टेंट सोर्स आईडी (cmsid), वीडियो आईडी (vid) और विज्ञापन टारगेटिंग पैरामीटर. ज़रूरी है |
JSON में जवाब दिया गया
media_verification_url |
प्लेबैक ट्रैकिंग इवेंट को पिंग करने के लिए बेस यूआरएल. मीडिया की मदद से खाते की पुष्टि करें इस बेस यूआरएल में विज्ञापन इवेंट आईडी जोड़कर, यूआरएल बनाया जाता है. |
metadata_url |
विज्ञापन पॉड मेटाडेटा का अनुरोध करने के लिए यूआरएल. |
stream_id |
मौजूदा स्ट्रीम सेशन की पहचान करने के लिए इस्तेमाल की गई स्ट्रिंग. |
valid_for |
मौजूदा स्ट्रीम सेशन के खत्म होने में लगने वाला समय
dhms (दिन, घंटे, मिनट, सेकंड) फ़ॉर्मैट. उदाहरण के लिए,
2h0m0.000s , दो घंटे की अवधि दिखाता है.
|
valid_until |
ISO 8601 के तौर पर, वह समय जब मौजूदा स्ट्रीम सेशन खत्म हो जाता है
yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm में तारीख और समय स्ट्रिंग
फ़ॉर्मैट.
|
अनुरोध का उदाहरण (cURL)
curl -X POST \
-d '{"targeting_parameters":{"cmsid":"12345","vid":"sample-video"}}' \
-H 'Content-Type: application/json' \
https://dai.google.com/ondemand/pods/api/v1/network/21775744923/stream_registration
रिस्पॉन्स का उदाहरण
{
"media_verification_url": "https://dai.google.com/.../media/",
"metadata_url": "https://dai.google.com/.../metadata",
"stream_id": "6e69425c-0ac5-43ef-b070-c5143ba68541:CHS",
"valid_for": "8h0m0s",
"valid_until": "2023-03-24T08:30:26.839717986-07:00"
}
गड़बड़ियां होने पर, JSON के रिस्पॉन्स के बिना स्टैंडर्ड एचटीटीपी गड़बड़ी कोड दिखाए जाते हैं शरीर.
JSON के रिस्पॉन्स को पार्स करें और ज़रूरी वैल्यू सेव करें.
मेनिफ़ेस्ट मैनिफ़ेक्टर से स्ट्रीम मेनिफ़ेस्ट का अनुरोध करें
मेनिफ़ेस्ट में बदलाव करने वाले हर एलिमेंट के लिए, अनुरोध और रिस्पॉन्स का अलग-अलग फ़ॉर्मैट होता है. संपर्क जानकारी आपको बदलाव करने की अनुमति देने वाली कंपनी को अपनी खास ज़रूरतों को समझने के लिए ऐसा करना चाहिए. अगर आप: अपना मेनिफ़ेस्ट मैनिफ़ेक्टर लागू करना और मेनिफ़ेस्ट मैनिफ़ेस्टर में बदलाव करने के बारे में जानकारी गाइड पढ़ें. इस कॉम्पोनेंट के लिए ज़रूरी शर्तें.
आम तौर पर, आपको वह स्ट्रीम आईडी पास करना होगा जो रजिस्ट्रेशन एंडपॉइंट के ऊपर, आपके मेनिफ़ेस्ट मैनिफ़ेक्टर के साथ इसे बनाने के लिए सेशन के हिसाब से मेनिफ़ेस्ट किए जा सकते हैं. जब तक कि आपके मेनिफ़ेस्ट में साफ़ तौर पर बताया न गया हो तो आपके मेनिफ़ेस्ट अनुरोध के जवाब में एक वीडियो स्ट्रीम शामिल है कॉन्टेंट और विज्ञापनों, दोनों के लिए एक साथ इस्तेमाल किया जा सकता है.
अनुरोध का उदाहरण (cURL)
curl https://{manifest_manipulator}/video/1331997/stream/6e69425c-0ac5-43ef-b070-c5143ba68541:CHS/vod_manifest.m3u8
रिस्पॉन्स का उदाहरण (एचएलएस)
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs0",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="abcd1234_ subitles-en.vtt"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
abcd1234_video-1080p.m3u8
स्ट्रीम चलाएं
मेनिफ़ेस्ट में बदलाव करने वाले सर्वर से मिले मेनिफ़ेस्ट को वीडियो प्लेयर और प्लेबैक शुरू करने के लिए किया जा सकता है.
Ad Manager से विज्ञापनों के पॉड मेटाडेटा का अनुरोध करना
पहले चरण में मिले metadata_url
के लिए GET
का अनुरोध करें. यह
चरण तब होना चाहिए, जब आपको अपने मेनिफ़ेस्ट से स्टिला किया गया मेनिफ़ेस्ट मिला हो
गुमराह करने वाला टूल. इसके बदले में, आपको एक JSON ऑब्जेक्ट मिलता है, जिसमें ये चीज़ें शामिल होती हैं
पैरामीटर:
tags |
यह की-वैल्यू पेयर का एक सेट है. इसमें वे सभी विज्ञापन इवेंट शामिल होते हैं जो
स्ट्रीम. कुंजियां, किसी विज्ञापन इवेंट के पहले 17 वर्णों की होती हैं
ऐसा आईडी जो स्ट्रीम के तय समय वाले मेटाडेटा में या इवेंट के मामले में दिखता है
progress टाइप का पूरा विज्ञापन इवेंट आईडी.
हर वैल्यू एक ऑब्जेक्ट होता है, जिसमें ये पैरामीटर शामिल होते हैं:
|
||||||||||||||||||
ads |
की-वैल्यू पेयर का सेट, जो स्ट्रीम में दिखने वाले सभी विज्ञापनों का ब्यौरा देता है. कॉन्टेंट बनाने
कुंजियां, ऐसे विज्ञापन आईडी होते हैं जो tags ऑब्जेक्ट में मिली वैल्यू से मेल खाते हैं
ऊपर दी गई सूची में मौजूद हैं. हर वैल्यू एक ऑब्जेक्ट होता है, जिसमें ये पैरामीटर शामिल होते हैं:
|
||||||||||||||||||
ad_breaks |
की-वैल्यू पेयर का सेट, जो स्ट्रीम में दिखने वाले सभी विज्ञापन के लिए ब्रेक की जानकारी देता है.
कुंजियां विज्ञापन के लिए ब्रेक के आईडी होती हैं, जो tags में मिली वैल्यू से मेल खाती हैं
और ऊपर दी गई सूची में शामिल ads ऑब्जेक्ट हैं. हर वैल्यू एक ऑब्जेक्ट होती है
इसमें ये पैरामीटर शामिल हैं:
|
अपने वीडियो में समय-समय वाले मेटाडेटा इवेंट से जोड़ने के लिए, इन वैल्यू को सेव करें स्ट्रीम.
अनुरोध का उदाहरण (cURL)
curl https://dai.google.com/.../metadata
रिस्पॉन्स का उदाहरण
{
"tags":{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15,
"clickthrough_url":"https://.../",
...
},
...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15,
"ads":1
},
...
}
}
विज्ञापन इवेंट सुनें
ऑडियो/वीडियो स्ट्रीम में ट्रिगर किए गए विज्ञापन इवेंट के ज़रिए, टाइमस्टैंप वाले मेटाडेटा को सुनें वीडियो प्लेयर की स्क्रीन पर.
MPEG-टीएस स्ट्रीम के लिए, मेटाडेटा इन-बैंड ID3 v2.3 टैग के तौर पर दिखता है. हर
मेटाडेटा टैग का आईडी TXXX
है और मान google_
स्ट्रिंग से शुरू होता है
इसके बाद, कई वर्ण शामिल हैं. यह वैल्यू, विज्ञापन इवेंट आईडी है.
TXXX
में मौजूद XXX
, प्लेसहोल्डर नहीं है. स्ट्रिंग TXXX
, ID3 टैग आईडी है
"उपयोगकर्ता के तय किए गए टेक्स्ट" के लिए रिज़र्व रखा गया है.
ID3 टैग का उदाहरण
TXXXgoogle_1234567890123456789
MP4 स्ट्रीम के लिए, इन्हें इन-बैंड मैसेज इवेंट के तौर पर भेजा जाता है और ये आईडी3 v2.3 की नकल करते हैं
टैग. काम के हर मैसेज बॉक्स के लिए, इनमें से कोई एक वैल्यू scheme_id_uri
होती है
https://aomedia.org/emsg/ID3
या
https://developer.apple.com/streaming/emsg-id3
और message_data
मान
ID3TXXXgoogle_
से शुरू होता है. यह message_data
वैल्यू, बिना
ID3TXXX
प्रीफ़िक्स, विज्ञापन इवेंट का आईडी है.
मैसेज बॉक्स का उदाहरण
मीडिया प्लेयर की लाइब्रेरी के आधार पर, डेटा का स्ट्रक्चर अलग-अलग हो सकता है.
अगर विज्ञापन इवेंट आईडी google_1234567890123456789
है, तो जवाब ऐसा दिखता है
शामिल करें:
{
"scheme_id_uri": "https://developer.apple.com/streaming/emsg-id3",
"presentation_time": 27554,
"timescale": 1000,
"message_data": "ID3TXXXgoogle_1234567890123456789",
...
}
कुछ मीडिया प्लेयर लाइब्रेरी, ID3 की नकल करने वाले मैसेज इवेंट अपने-आप दिखाती हैं नेटिव ID3 टैग के रूप में टैग. इस मामले में, MP4 स्ट्रीम में एक जैसे ID3 टैग मौजूद हैं MPEG_TS के रूप में.
क्लाइंट वीडियो प्लेयर ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई) अपडेट करना
हर विज्ञापन इवेंट आईडी को, चौथे चरण में मौजूद tags
ऑब्जेक्ट में मौजूद कुंजी से मैच किया जा सकता है.
इन वैल्यू का मिलान दो चरणों में होता है:
विज्ञापन इवेंट के पूरे आईडी से मैच करने वाली कुंजी के लिए,
tags
ऑब्जेक्ट की जांच करें. अगर आपने मिलान मिल गया है, तो इवेंट टाइप और उससे जुड़ेad
को फिर से पाएं औरad_break
ऑब्जेक्ट. इन इवेंट का टाइपprogress
होना चाहिए.अगर पूरे विज्ञापन इवेंट आईडी के लिए कोई मैच नहीं मिलता है, तो
tags
की जांच करें ऑब्जेक्ट, विज्ञापन इवेंट आईडी के पहले 17 वर्णों से मेल खाने वाली कुंजी के लिए. इवेंट टाइप और उससे जुड़ेad
औरad_break
ऑब्जेक्ट वापस पाएं. इससेprogress
के अलावा दूसरे टाइप के सभी इवेंट फिर से हासिल हो जाएंगे.अपने खिलाड़ी के यूज़र इंटरफ़ेस (यूआई) को अपडेट करने के लिए, वापस लाई गई इस जानकारी का इस्तेमाल करें. उदाहरण के लिए, जब आपको
start
या पहलाprogress
इवेंट मिलता है, तो अपने खिलाड़ी की फ़ोटो छिपाएं नियंत्रण और प्रदर्शित करने के लिए एक ओवरले है, जो विज्ञापन के लिए ब्रेक, उदाहरण के लिए: "तीन में से पहला विज्ञापन".
उदाहरण विज्ञापन इवेंट आईडी
google_1234567890123456789 // Progress event ID
google_5555555555123456789 // First Quartile event ID
टैग ऑब्जेक्ट का उदाहरण
{
"google_5555555555":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"firstquartile"
},
"google_1234567890123456789":{
"ad":"0000229834_ad1",
"ad_break_id":"0000229834",
"type":"progress"
},
...
}
मीडिया की पुष्टि करने के लिए पिंग भेजें
हर बार विज्ञापन इवेंट होने पर, Ad Manager को मीडिया की पुष्टि करने वाला पिंग भेजना ज़रूरी है
progress
के अलावा किसी अन्य तरह का ईमेल मिला हो.
किसी विज्ञापन इवेंट के लिए, मीडिया की पुष्टि करने वाला पूरा यूआरएल जनरेट करने के लिए, यूआरएल के आखिर में
स्ट्रीम रजिस्ट्रेशन से ली गई media_verification_url
वैल्यू में विज्ञापन इवेंट आईडी
जवाब.
पूरे यूआरएल के साथ जीईटी अनुरोध करें. अगर पुष्टि करने का अनुरोध
सफल रहा, तो आपको 202
स्टेटस कोड के साथ एक एचटीटीपी रिस्पॉन्स मिला है.
ऐसा न करने पर, आपको एचटीटीपी गड़बड़ी कोड 404
मिलेगा.
अनुरोध का उदाहरण (cURL)
curl https://{...}/media/google_5555555555123456789
सही जवाब का उदाहरण
HTTP/1.1 202 Accepted