इस गाइड में, विज्ञापन पॉड टाइमिंग मेटाडेटा (एटीएम) तरीके का इस्तेमाल करके, विज्ञापन ब्रेक जोड़ने का तरीका बताया गया है. इस तरीके से, वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के साथ-साथ, विज्ञापन ब्रेक के सटीक समय और अवधि की जानकारी भी मिलती है.
वीडियो शुरू होने से पहले दिखने वाले विज्ञापन जोड़ने और वीडियो के बीच में दिखने वाले विज्ञापन ब्रेक के बाद, कॉन्टेंट पर वापस जाने की सुविधा को मैनेज करने के लिए, हमारा सुझाव है कि आप इन एपीआई को कॉल करें:
- विज्ञापन पॉड टाइमिंग मेटाडेटा (एटीएम) एपीआई: विज्ञापन और स्लेट की अवधि के साथ-साथ, विज्ञापन पॉड के फ़ैसले के नतीजों के बारे में क्वेरी करना.
- विज्ञापन सेगमेंट एंडपॉइंट: मौजूदा विज्ञापन पॉड को खत्म करने के विकल्प के साथ, विज्ञापन या स्लेट सेगमेंट के लिए अनुरोध करना.
ज़रूरी नहीं, लेकिन हम सुझाव देते हैं कि एक साथ कई लाइव स्ट्रीम इवेंट के लिए, अर्ली ऐड ब्रेक नोटिफ़िकेशन (ईएबीएन) एपीआई को कॉल करें. इससे विज्ञापन ब्रेक शुरू होने से पहले, विज्ञापन के फ़ैसले शेड्यूल किए जा सकते हैं.
ज़रूरी शर्तें
शुरू करने के लिए, आपको पॉड सर्विंग रीडायरेक्ट डाइनैमिक विज्ञापन इंसर्शन (डीएआई) टाइप के लिए, लाइव स्ट्रीम इवेंट सेट अप करना होगा. इनमें से कोई एक तरीका चुनें:
- Ad Manager का यूज़र इंटरफ़ेस (यूआई): डीएआई के लिए लाइव स्ट्रीम सेट अप करना.
- Ad Manager API:
LiveStreamEventService.createLiveStreamEventsतरीके को कॉल करने के लिए, क्लाइंट लाइब्रेरी (उपलब्ध विकल्प) का इस्तेमाल करना.LiveStreamEvent.dynamicAdInsertionTypeपैरामीटर कोPOD_SERVING_REDIRECTपर सेट करना.
कॉन्टेंट स्ट्रीम वापस पाना
जब कोई उपयोगकर्ता लाइव स्ट्रीम इवेंट चुनता है, तो क्लाइंट ऐप्लिकेशन, 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 को अनुरोध से सेव करें, ताकि विज्ञापन स्टिचिंग की जा सके.
विज्ञापन पॉड टाइमिंग मेटाडेटा वापस पाना
विज्ञापन पॉड टाइमिंग वापस पाने के लिए, यह तरीका अपनाएं:
- एचएमएसी टोकन जनरेट करना.
- एचएमएसी टोकन के साथ, एटीएम एपीआई को कॉल करना.
वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के लिए, टाइमिंग मेटाडेटा का अनुरोध करना
लाइव स्ट्रीम इवेंट के लिए, वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों की सेटिंग की पुष्टि करने के लिए, ये विकल्प इस्तेमाल करें:
- डीएआई लाइव स्ट्रीम में, वीडियो शुरू होने से पहले दिखने वाले विज्ञापन (बीटा वर्शन)
- LiveStreamEvent.prerollsettings
वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के फ़ैसले के नतीजे वापस पाने के लिए, एटीएम एपीआई को अनुरोध भेजें.
यहां दिए गए उदाहरण में, वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के लिए, एटीएम का अनुरोध भेजा गया है:
curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"
वीडियो के बीच में दिखने वाले विज्ञापनों के लिए, टाइमिंग मेटाडेटा का अनुरोध करना
वीडियो के बीच में दिखने वाले विज्ञापनों के लिए, विज्ञापन पॉड मेटाडेटा वापस पाने के लिए, यह तरीका अपनाएं:
- लाइव स्ट्रीम मेनिफ़ेस्ट को पार्स करें, ताकि विज्ञापन मार्कर ढूंढे जा सकें. इनमें, वीडियो के बीच में दिखने वाले हर विज्ञापन ब्रेक के लिए, टाइमिंग और अवधि की जानकारी होती है.
- विज्ञापन पॉड और स्लेट की सटीक अवधि का अनुरोध करने के लिए, एटीएम एपीआई एंडपॉइंट को कॉल करें. एपीआई, विज्ञापन पॉड के फ़ैसले के नतीजों के साथ एक JSON ऑब्जेक्ट दिखाता है.
यहां दिए गए उदाहरण में, वीडियो के बीच में दिखने वाले विज्ञापनों के लिए, एटीएम का अनुरोध भेजा गया है:
curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"
अनुरोध पूरा होने पर, आपको इस तरह का JSON ऑब्जेक्ट दिखेगा:
{
"status": "final",
"ads": [
{
"duration_ms": 5046,
"variants": {
"devrel1428000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5045
]
}
},
"devrel1928000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5045
]
}
}
}
}
],
"slate": {
"duration_ms": 0,
"variants": {
"devrel1428000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5005,
...
5046
]
}
},
"devrel1928000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5005,
...
5046
]
}
}
}
}
}
कॉन्टेंट मेनिफ़ेस्ट में विज्ञापन स्टिच करना
इन सेक्शन में, लाइव स्ट्रीम मेनिफ़ेस्ट में बदलाव करने और विज्ञापन सेगमेंट जोड़ने का तरीका बताया गया है.
विज्ञापन ब्रेक सेगमेंट की पहचान करना और डिसकंटिन्यूटी जोड़ना
हर वैरिएंट मेनिफ़ेस्ट को प्रोसेस करते समय, अपनी स्ट्रीम में 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 जोड़कर एन्क्रिप्ट को वापस जोड़ें.
आने वाले विज्ञापन ब्रेक की शुरुआत का समय, अवधि, और इंडेक्स ट्रैक करें.
विज्ञापन सेगमेंट के यूआरएल बनाना
EXT-X-DISCONTINUITY टैग के बीच मौजूद कॉन्टेंट सेगमेंट को, हर विज्ञापन सेगमेंट के यूआरएल से बदलें. यह तय करने के लिए कि कितने विज्ञापन सेगमेंट जोड़ने हैं, एटीएम एपीआई से मिले JSON रिस्पॉन्स में दिए गए ads.segment_durations.values का इस्तेमाल करें.
EXT-X-CUE-IN टैग का पता चलने पर, विज्ञापन पॉड को जल्दी खत्म करने के लिए, आखिरी विज्ञापन सेगमेंट के यूआरएल में d= पैरामीटर जोड़ें. यह पैरामीटर, सेगमेंट को छोटा करता है, ताकि क्लाइंट वीडियो प्लेयर की टाइमलाइन पर कोई असर न पड़े.
यहां दिए गए उदाहरण में, वीडियो शुरू होने से पहले दिखने वाले विज्ञापन सेगमेंट का यूआरएल, मेनिफ़ेस्ट में जोड़ा गया है. ध्यान दें कि विज्ञापन सेगमेंट, ज़ीरो-आधारित इंडेक्स का इस्तेमाल करते हैं:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
यहां दिए गए उदाहरण में, वीडियो के बीच में दिखने वाले विज्ञापन सेगमेंट का यूआरएल, मेनिफ़ेस्ट में जोड़ा गया है:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
यहां दिए गए उदाहरण में, विज्ञापन सेगमेंट को मेनिफ़ेस्ट में जोड़ा गया है:
#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/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?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
स्लेट सेगमेंट बनाना
विज्ञापन और कॉन्टेंट के बीच के गैप को भरने के लिए, स्लेट सेगमेंट जोड़ें.
हर स्लेट सेगमेंट की अवधि तय करने के लिए, एटीएम एपीआई के JSON रिस्पॉन्स में मौजूद slates.segment_durations.values कलेक्शन का इस्तेमाल करें. पूरे विज्ञापन ब्रेक को भरने के लिए, ज़रूरत के हिसाब से सेगमेंट की अवधि के क्रम को लूप करें.
यहां दिए गए उदाहरण में, स्लेट सेगमेंट जोड़ा गया है:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
उदाहरण में मौजूद slate/0, स्लेट के इटरेट होने का नंबर दिखाता है. यह तय करने के लिए कि स्लेट के हर लूप के लिए, 0 से शुरू करके इस नंबर को बढ़ाना है या सभी इटरेट के लिए इसे 0 पर रखना है, अपने क्लाइंट वीडियो प्लेयर की कंपैटिबिलिटी और कैशिंग की क्षमता देखें.
कॉन्टेंट पर वापस जाने की सुविधा मैनेज करना
विज्ञापन पॉड से सभी सेगमेंट जोड़ने के बाद, कॉन्टेंट स्ट्रीम पर वापस जाने के लिए, इनमें से कोई एक तरीका चुनें:
| तरीका | ब्यौरा | क्लाइंट वीडियो प्लेयर पर असर |
|---|---|---|
| स्लेट सेगमेंट से भरना | स्लेट सेगमेंट जोड़ता है और स्लेट को लूप करता है. अवधि भरता है और स्लेट के हर इटरेट के बीच, EXT-X-DISCONTINUITY एलिमेंट जोड़ता है. |
कोई असर नहीं पड़ता. वीडियो प्लेयर, टाइमलाइन में बदलाव किए बिना, कॉन्टेंट पर वापस चला जाता है. |
| एक स्लेट सेगमेंट के साथ फिर से अलाइन करना | एक स्लेट सेगमेंट जोड़ता है. कॉन्टेंट शुरू होने तक की अवधि भरने के लिए, d= पैरामीटर का इस्तेमाल करता है. |
कोई असर नहीं पड़ता. वीडियो प्लेयर, टाइमलाइन में बदलाव किए बिना, कॉन्टेंट पर वापस चला जाता है. |
| तुरंत वापस जाना | कॉन्टेंट सेगमेंट जोड़ें. | वीडियो प्लेयर की टाइमलाइन में बदलाव होता है. आपके क्लाइंट वीडियो प्लेयर को, बदली हुई टाइमलाइन को मैनेज करना होगा. |
ज़रूरी नहीं: विज्ञापन ब्रेक शेड्यूल करना
फ़िल रेट बेहतर बनाने के लिए, अर्ली ऐड ब्रेक नोटिफ़िकेशन (ईएबीएन) भेजें. इसमें, विज्ञापन पॉड की अवधि, कस्टम टारगेटिंग पैरामीटर, और SCTE-35 सिग्नल डेटा शामिल करें. ज़्यादा जानकारी के लिए, विज्ञापन ब्रेक की सूचनाएं पहले से भेजना लेख पढ़ें.