इस गाइड में, विज्ञापन pod सेगमेंट वाले तरीके का इस्तेमाल करके, विज्ञापन या स्लेट सेगमेंट का अनुरोध करने के लिए, मेनिफ़ेस्ट मैनिपुलेटर को कॉन्फ़िगर करने का तरीका बताया गया है.
कोई स्ट्रीमिंग प्रोटोकॉल चुनें:
ज़रूरी शर्तें
आगे बढ़ने से पहले, आपको पॉड सर्विंग रीडायरेक्ट वाले डाइनैमिक विज्ञापन डालने (डीएआई) की सुविधा और एन्कोडिंग प्रोफ़ाइल के लिए, लाइव स्ट्रीम इवेंट सेट अप करना होगा. लाइव स्ट्रीम इवेंट सेट अप करने के लिए, इनमें से कोई एक तरीका चुनें:
- Ad Manager का यूज़र इंटरफ़ेस (यूआई): DAI के लिए लाइव स्ट्रीम सेट अप करें.
- Ad Manager API:
LiveStreamEventService.createLiveStreamEventsतरीके को कॉल करने के लिए, क्लाइंट लाइब्रेरी का इस्तेमाल करें.LiveStreamEvent.dynamicAdInsertionTypeपैरामीटर कोPOD_SERVING_REDIRECTपर सेट करें.
लाइव स्ट्रीम इवेंट सेट अप करने के बाद, Ad Manager के यूज़र इंटरफ़ेस (यूआई) या एपीआई से इवेंट की एन्कोडिंग प्रोफ़ाइलें वापस पाएं. इसके लिए, DaiEncodingProfileService.getDaiEncodingProfilesByStatement तरीके का इस्तेमाल करें.
कॉन्टेंट स्ट्रीम वापस पाना
जब कोई उपयोगकर्ता लाइव स्ट्रीम इवेंट चुनता है, तो क्लाइंट ऐप्लिकेशन, Google Ad Manager को स्ट्रीम करने का अनुरोध करता है. स्ट्रीम के जवाब में, ऐप्लिकेशन Google DAI सेशन आईडी और मेटाडेटा को स्ट्रीम मेनिफ़ेस्ट अनुरोध में शामिल करने के लिए निकालता है.
यहां दिए गए उदाहरण में, Google DAI सेशन आईडी को मेनिफ़ेस्ट मैनिपुलेटर को पास करने का तरीका बताया गया है:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
वीडियो कॉन्टेंट चलाने के अनुरोध को प्रोसेस करते समय, Google DAI सेशन आईडी और अनुरोध से मिले CUSTOM_ASSET_KEY को सेव करें, ताकि विज्ञापन स्टिचिंग की जा सके.
विज्ञापन ब्रेक सेगमेंट की पहचान करना और उन्हें अलग-अलग हिस्सों में बांटना
हर वैरिएंट मेनिफ़ेस्ट को प्रोसेस करते समय, अपनी स्ट्रीम में EXT-X-CUE-IN और EXT-X-CUE-OUT टैग ढूंढें. इनसे विज्ञापन ब्रेक की शुरुआत और खत्म होने का पता चलता है.
क्लाइंट के वीडियो प्लेयर के लिए, EXT-X-CUE-IN और EXT-X-CUE-OUT टैग को EXT-X-DISCONTINUITY एलिमेंट से बदलें, ताकि कॉन्टेंट और विज्ञापनों के बीच स्विच किया जा सके.
यहां दिए गए मेनिफ़ेस्ट के उदाहरण में, EXT-X-CUE-IN और EXT-X-CUE-OUT टैग को बदला गया है:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
यहां बदले गए मेनिफ़ेस्ट का एक उदाहरण दिया गया है:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Google DAI के विज्ञापन सेगमेंट एन्क्रिप्ट (सुरक्षित) नहीं किए जाते. अगर आपका कॉन्टेंट एन्क्रिप्ट (सुरक्षित) किया गया है, तो हर विज्ञापन ब्रेक के पहले विज्ञापन सेगमेंट से पहले EXT-X-KEY:METHOD=NONE एलिमेंट डालकर, एन्क्रिप्शन हटाएं. विज्ञापन ब्रेक के खत्म होने पर, सही EXT-X-KEY डालकर एन्क्रिप्शन की सुविधा को फिर से चालू करें.
आने वाले विज्ञापन ब्रेक के शुरू होने के समय, अवधि, और इंडेक्स को ट्रैक करें.
हैश पर आधारित मैसेज ऑथेंटिकेशन कोड (एचएमएसी) टोकन जनरेट करना
सेगमेंट रीडायरेक्ट पॉड की मदद से किए गए हर सेगमेंट अनुरोध में, पुष्टि करने के लिए एचएमएसी-हस्ताक्षर वाला टोकन शामिल होना चाहिए.
इस टोकन को हर विज्ञापन ब्रेक के लिए एक बार कैलकुलेट करें और इसे सभी स्ट्रीम सेशन में शेयर करें.
टोकन पैरामीटर इकट्ठा करना
टोकन बॉडी में जानकारी भरने के लिए, विज्ञापन के मौजूदा ब्रेक से यह जानकारी इकट्ठा करें:
| टोकन पैरामीटर | ||
|---|---|---|
custom_asset_key
|
ज़रूरी है | Google Ad Manager से मिली कस्टम लाइव स्ट्रीम ऐसेट की कुंजी. |
cust_params
|
वैकल्पिक | कस्टम टारगेटिंग पैरामीटर. cust_params देखें.
|
exp
|
ज़रूरी है | मौजूदा टोकन के खत्म होने का टाइमस्टैंप (सेकंड में). |
network_code
|
ज़रूरी है | Ad Manager 360 नेटवर्क कोड. |
pod_id
|
ज़रूरी है | विज्ञापन ब्रेक का आइडेंटिफ़ायर. 1 से शुरू होने वाला कोई पूर्णांक. हर विज्ञापन ब्रेक के लिए, यह आइडेंटिफ़ायर एक से बढ़ जाता है.
यह वैल्यू, मौजूदा इवेंट में एक ही विज्ञापन ब्रेक देखने वाले सभी उपयोगकर्ताओं के लिए एक जैसी होनी चाहिए. |
pd
|
यह ज़रूरी है. हालांकि, उन इवेंट के लिए यह ज़रूरी नहीं है जिनमें बिना अवधि वाले विज्ञापन ब्रेक चालू हैं. | विज्ञापन ब्रेक की अवधि, मिलीसेकंड में. इसे ad_pod_duration के तौर पर रेफ़र किया गया है.
|
scte35
|
वैकल्पिक | Base64 में एन्कोड किया गया SCTE-35 सिग्नल. Google DAI, बनाए गए विज्ञापन ब्रेक में हमेशा सिग्नल कॉपी करता है. भले ही, सिग्नल गलत हो.
अगर यह गलत है, तो आपको जवाब में X-Ad-Manager-Dai-Warning एचटीटीपी हेडर में एक मैसेज मिलेगा. साथ ही, सिग्नल अब भी विज्ञापन ब्रेक बनाएगा. DAI, SCTE-35 सिग्नल का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानने के लिए विज्ञापन मार्कर के साथ काम करने वाले फ़ॉर्मैट लेख पढ़ें.
|
टोकन स्ट्रिंग बनाना
टोकन स्ट्रिंग बनाने के लिए, हर पैरामीटर को वर्णमाला के क्रम में NAME=VALUE फ़ॉर्मैट में लिखें. साथ ही, नाम-वैल्यू के हर जोड़े को ~ टिल्ड वर्ण से अलग करें.
जिन वैकल्पिक पैरामीटर का इस्तेमाल नहीं किया गया है उनके लिए, वैल्यू के तौर पर खाली स्ट्रिंग का इस्तेमाल करें या पैरामीटर को पूरी तरह से हटा दें.
यहां टोकन स्ट्रिंग को फ़ॉर्मैट करने का एक उदाहरण दिया गया है:
custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE
एचएमएसी सिग्नेचर जनरेट करना
HMAC सिग्नेचर, HEX फ़ॉर्मैट में टोकन स्ट्रिंग का SHA-256 हैश होता है. सीक्रेट कुंजी, Google Ad Manager में आपके लाइव स्ट्रीम इवेंट से जुड़ी एचएमएसी पुष्टि करने की कुंजी होती है.
साइन टोकन स्ट्रिंग
एचएमएसी सिग्नेचर जनरेट करने के बाद, सिग्नेचर को टोकन स्ट्रिंग में इस फ़ॉर्मैट में जोड़ें:
~hmac=HMAC_SIGNATURE
टोकन स्ट्रिंग को कोड में बदलें
टोकन को यूआरएल पैरामीटर के तौर पर पास करने के लिए, सुरक्षा के लिहाज़ से यूआरएल को कोड में बदलें.
यहां दिए गए उदाहरण में, हस्ताक्षर किया गया और एन्कोड किया गया एचएमएसी टोकन जनरेट किया गया है. इसमें इस्तेमाल नहीं किए गए वैकल्पिक पैरामीटर, खाली स्ट्रिंग हैं:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
यहां दिए गए उदाहरण में, बिना इस्तेमाल किए गए वैकल्पिक पैरामीटर के बिना, हस्ताक्षर किया गया और कोड में बदला गया एचएमएसी टोकन जनरेट किया गया है:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
विज्ञापन सेगमेंट के यूआरएल बनाना
EXT-X-DISCONTINUITY टैग के बीच मौजूद हर कॉन्टेंट सेगमेंट को ऐसे यूआरएल से बदलें जो विज्ञापन पॉड सेगमेंट के तरीके पर ले जाता हो.
यहां दिए गए उदाहरण में, विज्ञापन पॉड सेगमेंट को असेंबल किया गया है. ध्यान दें कि विज्ञापन सेगमेंट, ज़ीरो-आधारित इंडेक्स का इस्तेमाल करते हैं:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
यहां दिए गए उदाहरण में, विज्ञापन पॉड सेगमेंट को मेनिफ़ेस्ट में डाला गया है:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
ज़रूरी नहीं: विज्ञापन के लिए ब्रेक शेड्यूल करना
विज्ञापन दिखाने की दर बढ़ाने के लिए, विज्ञापन पॉड की अवधि, कस्टम टारगेटिंग पैरामीटर, और SCTE-35 सिग्नल डेटा के साथ, विज्ञापन ब्रेक की सूचना (ईएबीएन) भेजें. ज़्यादा जानकारी के लिए, विज्ञापन ब्रेक की सूचनाएं पहले से भेजने का तरीका लेख पढ़ें.