विज्ञापन पॉड के समय के मेटाडेटा के साथ विज्ञापन डालना

इस गाइड में, विज्ञापन ब्रेक के लिए सटीक समय और अवधि पाने के लिए, Ad pod Timing Metadata (ATM) तरीके का इस्तेमाल करके विज्ञापन ब्रेक जोड़ने का तरीका बताया गया है. इसमें, वीडियो शुरू होने से पहले दिखने वाले विज्ञापन भी शामिल हैं.

वीडियो शुरू होने से पहले दिखने वाले विज्ञापन जोड़ने और वीडियो के बीच में दिखने वाले विज्ञापन ब्रेक के बाद, कॉन्टेंट पर वापस जाने की सुविधा को मैनेज करने के लिए, हमारा सुझाव है कि आप इन एपीआई को कॉल करें:

  • Ad pod Timing Metadata (ATM) API: विज्ञापन पॉड के फ़ैसले के नतीजों के बारे में क्वेरी करना. इसमें, विज्ञापन और स्लेट की अवधि शामिल है.
  • विज्ञापन सेगमेंट एंडपॉइंट: विज्ञापन या स्लेट सेगमेंट का अनुरोध करना. इसमें, मौजूदा विज्ञापन पॉड को खत्म करने का विकल्प भी शामिल है.

ज़रूरत पड़ने पर, एक साथ कई लाइव स्ट्रीम इवेंट के लिए, हमारा सुझाव है कि आप Early Ad Break Notification (EABN) API को कॉल करें, ताकि विज्ञापन ब्रेक शुरू होने से पहले, विज्ञापन के फ़ैसले शेड्यूल किए जा सकें.

ज़रूरी शर्तें

शुरू करने के लिए, आपको पॉड दिखाने के लिए रीडायरेक्ट करने की सुविधा वाले डाइनैमिक विज्ञापन इंसर्शन (डीएआई) टाइप के लिए, लाइव स्ट्रीम इवेंट सेट अप करना होगा. इनमें से कोई एक तरीका चुनें:

कॉन्टेंट स्ट्रीम वापस पाना

जब कोई उपयोगकर्ता लाइव स्ट्रीम इवेंट चुनता है, तो क्लाइंट ऐप्लिकेशन, 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 को अनुरोध से सेव करें, ताकि विज्ञापन स्टिचिंग की जा सके.

विज्ञापन पॉड के टाइमिंग मेटाडेटा को वापस पाना

विज्ञापन पॉड की टाइमिंग वापस पाने के लिए, यह तरीका अपनाएं:

  1. एचएमएसी टोकन जनरेट करना.
  2. एचएमएसी टोकन के साथ, एटीएम एपीआई को कॉल करना.

वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के लिए, टाइमिंग मेटाडेटा का अनुरोध करना

लाइव स्ट्रीम इवेंट के लिए, वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों की सेटिंग की पुष्टि करने के लिए, ये विकल्प इस्तेमाल करें:

वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के फ़ैसले के नतीजे वापस पाने के लिए, एटीएम एपीआई को अनुरोध भेजें.

यहां दिए गए उदाहरण में, वीडियो शुरू होने से पहले दिखने वाले विज्ञापनों के लिए, एटीएम का अनुरोध भेजा गया है:

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"

वीडियो के बीच में दिखने वाले विज्ञापनों के लिए, टाइमिंग मेटाडेटा का अनुरोध करना

वीडियो के बीच में दिखने वाले विज्ञापनों के लिए, विज्ञापन पॉड का मेटाडेटा वापस पाने के लिए, यह तरीका अपनाएं:

  1. लाइव स्ट्रीम मेनिफ़ेस्ट को पार्स करें, ताकि विज्ञापन मार्कर ढूंढे जा सकें. इनमें, वीडियो के बीच में दिखने वाले हर विज्ञापन ब्रेक के लिए, टाइमिंग और अवधि की जानकारी होती है.
  2. विज्ञापन पॉड और स्लेट की सटीक अवधि का अनुरोध करने के लिए, एटीएम एपीआई एंडपॉइंट को कॉल करें. एपीआई, विज्ञापन पॉड के फ़ैसले के नतीजों के साथ एक 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:17.450
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXTINF:2.450,
contentorigin.com/6.ts
#EXT-X-CUE-IN
#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/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 का इस्तेमाल करें.

अगर विज्ञापन पॉड पूरा होने से पहले, कॉन्टेंट पर वापस जाना है, तो मेनिफ़ेस्ट मैनिपुलेटर को फ़ाइनल विज्ञापन सेगमेंट के यूआरएल में d= पैरामीटर जोड़ना होगा. उदाहरण के लिए, EXT-X-CUE-IN टैग का पता लगने पर. यह पैरामीटर, सेगमेंट को छोटा करता है, ताकि क्लाइंट वीडियो प्लेयर की टाइमलाइन पर कोई असर न पड़े.

यहां दिए गए उदाहरण में, वीडियो शुरू होने से पहले दिखने वाले विज्ञापन सेगमेंट का यूआरएल, मेनिफ़ेस्ट में जोड़ा गया है. ध्यान दें कि विज्ञापन सेगमेंट, ज़ीरो-बेस्ड इंडेक्स का इस्तेमाल करते हैं:

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.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
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.000,
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.000,
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
#EXTINF:2.450,
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/3.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

स्लेट सेगमेंट बनाना

विज्ञापन और कॉन्टेंट के बीच मौजूद गैप को भरने के लिए, स्लेट सेगमेंट जोड़ें. हर स्लेट सेगमेंट की अवधि तय करने के लिए, एटीएम एपीआई के JSON जवाब में मौजूद slates.segment_durations.values कलेक्शन का इस्तेमाल करें. पूरे विज्ञापन ब्रेक को भरने के लिए, ज़रूरत के हिसाब से सेगमेंट की अवधि के क्रम को लूप करें.

अगर विज्ञापन पॉड पूरा होने से पहले, कॉन्टेंट पर वापस जाना है, तो फ़ाइनल स्लेट सेगमेंट के यूआरएल में d= पैरामीटर जोड़ें. उदाहरण के लिए, EXT-X-CUE-IN टैग का पता लगने पर. यह पैरामीटर, सेगमेंट को छोटा करता है, ताकि क्लाइंट वीडियो प्लेयर की टाइमलाइन पर कोई असर न पड़े. d= पैरामीटर की वैल्यू, एक पूर्णांक होनी चाहिए. यह वैल्यू, सेगमेंट को छोटा करने के लिए मिलीसेकंड में अवधि दिखाती है.

यहां दिए गए उदाहरण में, स्लेट सेगमेंट जोड़ा गया है:

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= पैरामीटर को मिलीसेकंड में जोड़ें.

तुरंत वापस जाना: `d=` पैरामीटर का इस्तेमाल करके, एक री-अलाइनमेंट स्लेट सेगमेंट जोड़ें और इसके बाद कॉन्टेंट जोड़ें.d=

वीडियो प्लेयर, बदली हुई टाइमलाइन के बिना, कॉन्टेंट पर वापस चला जाता है.

यहां दिए गए उदाहरण में, विज्ञापन ब्रेक की बाकी अवधि को स्लेट सेगमेंट से भरकर, ट्रांज़िशन बनाया गया है.

#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-DISCONTINUITY
#EXTINF:5.000,
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.000,
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.000,
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
#EXT-X-DISCONTINUITY
#EXTINF:2.450,
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/1.ts?stream_id=SESSION_ID&d=2450
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

इस तरीके में, आपका मेनिफ़ेस्ट मैनिपुलेटर, ज़रूरत के हिसाब से स्लेट को लूप करता है और d= यूआरएल पैरामीटर को सिर्फ़ आखिरी स्लेट सेगमेंट में जोड़ता है. यह प्रोसेस, कॉन्टेंट की शेड्यूल की गई शुरुआत के साथ सटीक रूप से अलाइन होती है.

यहां दिए गए उदाहरण में, d= पैरामीटर के साथ एक स्लेट सेगमेंट का इस्तेमाल करने का तरीका बताया गया है. इससे, जब लूप की गई स्लेट से बाकी बचे पूरे ब्रेक को नहीं भरा जाता, तब भी प्लेयर की टाइमलाइन को सटीक बनाए रखने में मदद मिलती है.

#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-DISCONTINUITY
#EXTINF:5.000,
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.000,
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.000,
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:2.450,
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&d=2450
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

ज़रूरी नहीं: विज्ञापन ब्रेक शेड्यूल करना

फ़िल रेट को बेहतर बनाने के लिए, Early Ad Break Notification (EABN) भेजें. इसमें, विज्ञापन पॉड की अवधि, कस्टम टारगेटिंग पैरामीटर, और SCTE-35 सिग्नल का डेटा शामिल करें. ज़्यादा जानकारी के लिए, विज्ञापन ब्रेक की सूचनाएं पहले से भेजना लेख पढ़ें.