डाइनैमिक ऐड इंसर्शन वीओडी एपीआई

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

सेवा: dai.google.com

stream तरीके का पाथ, https://dai.google.com के हिसाब से तय होता है

तरीका: stream

तरीके
stream POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

यह फ़ंक्शन, दिए गए कॉन्टेंट सोर्स और वीडियो का आईडी के लिए, एचएलएस डीएआई स्ट्रीम बनाता है.

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

यह फ़ंक्शन, दिए गए कॉन्टेंट सोर्स और वीडियो आईडी के लिए DASH DAI स्ट्रीम बनाता है.

एचटीटीपी अनुरोध

POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

अनुरोध का हेडर

पैरामीटर
api‑key string

स्ट्रीम बनाते समय दी गई एपीआई पासकोड, पब्लिशर के नेटवर्क के लिए मान्य होना चाहिए.

अनुरोध के मुख्य हिस्से में एपीआई पासकोड देने के बजाय, इसे इस फ़ॉर्मैट में एचटीटीपी ऑथराइज़ेशन हेडर में पास किया जा सकता है:

Authorization: DCLKDAI key="<api-key>"

पाथ पैरामीटर

पैरामीटर
content-source string

स्ट्रीम का सीएमएस आईडी.

video-id string

स्ट्रीम का वीडियो आईडी.

अनुरोध का मुख्य भाग

अनुरोध का मुख्य हिस्सा application/x-www-form-urlencoded टाइप का होता है और इसमें ये पैरामीटर शामिल होते हैं:

पैरामीटर
dai-ssb वैकल्पिक

सर्वर-साइड-बीकनिंग स्ट्रीम बनाने के लिए, इसे true पर सेट करें. डिफ़ॉल्ट रूप से, यह false पर सेट होता है. डिफ़ॉल्ट स्ट्रीम की ट्रैकिंग, क्लाइंट शुरू करता है और सर्वर साइड पर पिंग करता है.

DFP टारगेटिंग पैरामीटर वैकल्पिक टारगेट करने के अतिरिक्त पैरामीटर.
स्ट्रीम पैरामीटर को बदलना वैकल्पिक स्ट्रीम बनाने के पैरामीटर की डिफ़ॉल्ट वैल्यू बदलें.
HMAC ऑथेंटिकेशन वैकल्पिक HMAC पर आधारित टोकन का इस्तेमाल करके पुष्टि करें.

जवाब का मुख्य भाग

अगर अनुरोध सही से काम करता है, तो जवाब के मुख्य हिस्से में एक नया Stream शामिल होता है. सर्वर-साइड-बीकनिंग स्ट्रीम के लिए, इस Stream में सिर्फ़ stream_id और stream_manifest फ़ील्ड शामिल होते हैं.

मेज़रमेंट खोलें

Verifications फ़ील्ड में, सर्वर-साइड-बीकनिंग स्ट्रीम के अलावा अन्य स्ट्रीम के लिए, OpenMeasurement की पुष्टि करने से जुड़ी जानकारी होती है. Verifications में एक या उससे ज़्यादा Verification एलिमेंट होते हैं. इनमें ऐसे संसाधन और मेटाडेटा शामिल होते हैं जिनकी मदद से, तीसरे पक्ष के मेज़रमेंट कोड का इस्तेमाल करके क्रिएटिव के प्लेबैक की पुष्टि की जा सकती है. सिर्फ़ JavaScriptResource वैल्यू का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, IAB Tech Lab और VAST 4.1 की खास जानकारी देखें.

तरीका: मीडिया की पुष्टि करना

प्लेबैक के दौरान विज्ञापन मीडिया आइडेंटिफ़ायर मिलने के बाद, stream एंडपॉइंट से media_verification_url का इस्तेमाल करके तुरंत अनुरोध करें. media_verification_url एक ऐब्सलूट पाथ है. सर्वर-साइड-बीकनिंग स्ट्रीम के लिए, मीडिया की पुष्टि करने के अनुरोध ज़रूरी नहीं हैं. इनमें सर्वर, मीडिया की पुष्टि शुरू करता है.

media verification एंडपॉइंट के अनुरोध, आइडेमपोटेंट होते हैं.

तरीके
media verification GET {media_verification_url}/{ad_media_id}

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

एचटीटीपी अनुरोध

GET {media-verification-url}/{ad-media-id}

जवाब का मुख्य भाग

media verification, ये जवाब देता है:

  • HTTP/1.1 204 No Content अगर मीडिया की पुष्टि हो जाती है और सभी पिंग भेज दिए जाते हैं.
  • HTTP/1.1 404 Not Found अगर यूआरएल का फ़ॉर्मैट गलत होने या उसके खत्म होने की वजह से, अनुरोध मीडिया की पुष्टि नहीं कर पाता है.
  • HTTP/1.1 404 Not Found अगर इस आईडी के लिए, पुष्टि करने का पिछला अनुरोध स्वीकार कर लिया गया हो.
  • HTTP/1.1 409 Conflict अगर इस समय कोई दूसरा अनुरोध पहले से ही पिंग भेज रहा है.

विज्ञापन मीडिया आईडी (HLS)

विज्ञापन मीडिया आइडेंटिफ़ायर को एचएलएस टाइम किए गए मेटाडेटा में एन्कोड किया जाएगा. इसके लिए, TXXX कुंजी का इस्तेमाल किया जाएगा. यह कुंजी, "उपयोगकर्ता की ओर से तय की गई टेक्स्ट जानकारी" फ़्रेम के लिए रिज़र्व की गई है. फ़्रेम का कॉन्टेंट, अनएन्क्रिप्टेड होगा और हमेशा "google_" टेक्स्ट से शुरू होगा.

फ़्रेम में मौजूद पूरे टेक्स्ट कॉन्टेंट को, विज्ञापन की पुष्टि के हर अनुरोध के लिए media_verification_url में जोड़ना चाहिए.

विज्ञापन के मीडिया आईडी (DASH)

विज्ञापन मीडिया आइडेंटिफ़ायर को मेनिफ़ेस्ट में डालने के लिए, DASH के EventStream एलिमेंट का इस्तेमाल किया जाएगा.

हर EventStream का स्कीम आईडी यूआरआई urn:google:dai:2018 होगा. इनमें ऐसे इवेंट शामिल होंगे जिनमें messageData एट्रिब्यूट में, "google_" से शुरू होने वाला विज्ञापन मीडिया आईडी शामिल होगा. messageData एट्रिब्यूट के पूरे कॉन्टेंट को, विज्ञापन की पुष्टि के हर अनुरोध के लिए media_verification_url एट्रिब्यूट में जोड़ना चाहिए.

जवाब का डेटा

स्ट्रीम

स्ट्रीम का इस्तेमाल, JSON फ़ॉर्मैट में नई बनाई गई स्ट्रीम के सभी संसाधनों की सूची को रेंडर करने के लिए किया जाता है .
JSON के काेड में दिखाना
{
  "stream_id": string,
  "total_duration": number,
  "content_duration": number,
  "valid_for": string,
  "valid_until": string,
  "subtitles": [object(Subtitle)],
  "hls_master_playlist": string,
  "stream_manifest": string,
  "media_verification_url": string,
  "apple_tv": object(AppleTV),
  "ad_breaks": [object(AdBreak)],
}
फ़ील्ड
stream_id string

स्ट्रीम आइडेंटिफ़ायर.
total_duration number

स्ट्रीम की अवधि, सेकंड में.
content_duration number

सेकंड में, बिना विज्ञापनों के कॉन्टेंट की अवधि.
valid_for string

स्ट्रीम की अवधि, "00h00m00s" फ़ॉर्मैट में मान्य है.
valid_until string

आरएफ़सी 3339 फ़ॉर्मैट में, वह तारीख जब तक स्ट्रीम मान्य है.
subtitles [object(Subtitle)]

सबटाइटल की सूची. अगर वैल्यू मौजूद नहीं है, तो इसे शामिल नहीं किया जाता. सिर्फ़ एचएलएस.
hls_master_playlist string

(DEPRECATED) HLS मास्टर प्लेलिस्ट का यूआरएल. stream_manifest का इस्तेमाल करें. सिर्फ़ एचएलएस.
stream_manifest string

स्ट्रीम का मेनिफ़ेस्ट. यह HLS में मास्टर प्लेलिस्ट और DASH में MPD से जुड़ा होता है. यह "stream_id" के अलावा, ऐसा इकलौता फ़ील्ड है जो सर्वर-साइड-बीकनिंग स्ट्रीम बनाते समय जवाब में मौजूद होता है.
media_verification_url string

मीडिया की पुष्टि करने वाला यूआरएल.
apple_tv object(AppleTV)

AppleTV डिवाइसों के लिए, वैकल्पिक जानकारी. सिर्फ़ एचएलएस.
ad_breaks [object(AdBreak)]

विज्ञापन के लिए ब्रेक की सूची. अगर यह खाली है, तो इसे शामिल नहीं किया जाता.

AppleTV

AppleTV में, Apple TV डिवाइसों से जुड़ी जानकारी होती है.
JSON के काेड में दिखाना
{
  "interstitials_url": string,
}
फ़ील्ड
interstitials_url string

इंटरस्टीशियल यूआरएल.

AdBreak

AdBreak, स्ट्रीम में मौजूद एक विज्ञापन ब्रेक के बारे में बताता है. इसमें विज्ञापन दिखाने की जगह, अवधि, टाइप (मिड/प्री/पोस्ट) और विज्ञापनों की सूची शामिल होती है.
JSON के काेड में दिखाना
{
  "type": string,
  "start": number,
  "duration": number,
  "ads": [object(Ad)],
}
फ़ील्ड
type string

ब्रेक के लिए मान्य टाइप ये हैं: mid, pre, और post.
start number

स्ट्रीम में वह पोज़िशन जहां ब्रेक शुरू होता है. यह वैल्यू सेकंड में होती है.
duration number

विज्ञापन के लिए ब्रेक की अवधि, सेकंड में.
ads [object(Ad)]

विज्ञापनों की सूची. अगर यह खाली है, तो इसे शामिल नहीं किया जाता.
विज्ञापन, स्ट्रीम में दिखने वाले विज्ञापन के बारे में बताता है. इसमें ब्रेक में विज्ञापन की पोज़िशन, विज्ञापन की अवधि, और कुछ वैकल्पिक मेटाडेटा शामिल होता है.
JSON के काेड में दिखाना
{
  "seq": number,
  "start": number,
  "duration": number,
  "title": string,
  "description": string,
  "advertiser": string,
  "ad_system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
  "clickthrough_url": string,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "events": [object(Event)],
  "verifications": [object(Verification)],
  "universal_ad_id": object(UniversalAdID),
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
  "skip_metadata": object(SkipMetadata),
  "extensions": [],
}
फ़ील्ड
seq number

ब्रेक में विज्ञापन की पोज़िशन.
start number

स्ट्रीम में विज्ञापन शुरू होने की पोज़िशन, सेकंड में.
duration number

विज्ञापन की अवधि (सेकंड में).
title string

विज्ञापन का वैकल्पिक टाइटल.
description string

विज्ञापन की जानकारी देना ज़रूरी नहीं है.
advertiser string

विज्ञापन देने वाले व्यक्ति या कंपनी का वैकल्पिक आइडेंटिफ़ायर.
ad_system string

विज्ञापन सिस्टम की जानकारी देना ज़रूरी नहीं है.
ad_id string

विज्ञापन आईडी (ज़रूरी नहीं).
creative_id string

क्रिएटिव आईडी देना ज़रूरी नहीं है.
creative_ad_id string

क्रिएटिव विज्ञापन आईडी (ज़रूरी नहीं).
deal_id string

डील आईडी (ज़रूरी नहीं).
clickthrough_url string

क्लिकथ्रू यूआरएल (ज़रूरी नहीं).
icons [object(Icon)]

आइकॉन की सूची. अगर यह खाली है, तो इसे शामिल नहीं किया जाता.
wrappers [object(Wrapper)]

रैपर की सूची. अगर यह खाली है, तो इसे शामिल नहीं किया जाता.
events [object(Event)]

विज्ञापन में मौजूद इवेंट की सूची.
verifications [object(Verification)]

ओपन मेज़रमेंट की पुष्टि करने वाली वैकल्पिक एंट्री. इनमें ऐसे संसाधन और मेटाडेटा शामिल होते हैं जिनकी ज़रूरत तीसरे पक्ष के मेज़रमेंट कोड को लागू करने के लिए होती है. इससे क्रिएटिव के प्लेबैक की पुष्टि की जा सकती है.
universal_ad_id object(UniversalAdID)

यूनिवर्सल विज्ञापन आईडी (ज़रूरी नहीं).
companions [object(Companion)]

इस विज्ञापन के साथ दिखाए जा सकने वाले अन्य विज्ञापन.
interactive_file object(InteractiveFile)

इंटरैक्टिव क्रिएटिव (SIMID) का इस्तेमाल करना ज़रूरी नहीं है. इसे विज्ञापन दिखाने के दौरान दिखाया जाना चाहिए.
skip_metadata object(SkipMetadata)

स्किप किए जा सकने वाले विज्ञापनों के लिए वैकल्पिक मेटाडेटा. अगर यह सेट है, तो इसका मतलब है कि विज्ञापन को स्किप किया जा सकता है. इसमें स्किप करने के यूज़र इंटरफ़ेस (यूआई) और ट्रैकिंग इवेंट को मैनेज करने के निर्देश शामिल होते हैं.
extensions string

VAST में मौजूद सभी <Extension> नोड की वैकल्पिक सूची.

इवेंट

इवेंट में, इवेंट का टाइप और इवेंट के प्रज़ेंटेशन का समय शामिल होता है.
JSON के काेड में दिखाना
{
  "time": number,
  "type": string,
}
फ़ील्ड
time number

इस इवेंट के प्रज़ेंटेशन का समय.
type string

यह इस इवेंट का टाइप है.

सबटाइटल

सबटाइटल, वीडियो स्ट्रीम के लिए साइडकार सबटाइटल ट्रैक के बारे में बताता है. यह दो सबटाइटल फ़ॉर्मैट सेव करता है: TTML और WebVTT. TTMLPath एट्रिब्यूट में, टीटीएमएल साइडकार फ़ाइल का यूआरएल होता है. इसी तरह, WebVTTPath एट्रिब्यूट में, WebVTT साइडकार फ़ाइल का यूआरएल होता है.
JSON के काेड में दिखाना
{
  "language": string,
  "language_name": string,
  "ttml": string,
  "webvtt": string,
}
फ़ील्ड
language string

भाषा कोड, जैसे कि 'en' या 'de'.
language_name string

भाषा का ऐसा नाम जिससे उसके बारे में जानकारी मिलती हो. अगर एक ही भाषा के लिए कई सेट मौजूद हैं, तो यह खास सेट के सबटाइटल में अंतर करता है
ttml string

TTML साइडकार फ़ाइल का वैकल्पिक यूआरएल.
webvtt string

WebVTT साइडकार फ़ाइल का वैकल्पिक यूआरएल.

SkipMetadata

SkipMetadata, क्लाइंट को ऐसी जानकारी देता है जिसकी मदद से वे स्किप किए जा सकने वाले विज्ञापनों के लिए, स्किप इवेंट को मैनेज कर पाते हैं.
JSON के काेड में दिखाना
{
  "offset": number,
  "tracking_url": string,
}
फ़ील्ड
offset number

ऑफ़सेट से पता चलता है कि विज्ञापन में स्किप बटन दिखाने के लिए, प्लेयर को कितने सेकंड तक इंतज़ार करना चाहिए. अगर VAST में यह जानकारी नहीं दी गई है, तो इसे शामिल नहीं किया जाता.
tracking_url string

TrackingURL में ऐसा यूआरएल होता है जिसे स्किप इवेंट पर पिंग किया जाना चाहिए.

आइकॉन

इस आइकॉन में VAST आइकॉन के बारे में जानकारी होती है.
JSON के काेड में दिखाना
{
  "click_data": object(ClickData),
  "creative_type": string,
  "click_fallback_images": [object(FallbackImage)],
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "x_position": string,
  "y_position": string,
  "program": string,
  "alt_text": string,
}
फ़ील्ड
click_data object(ClickData)

creative_type string

click_fallback_images [object(FallbackImage)]

height int32

width int32

resource string

type string

x_position string

y_position string

program string

alt_text string

ClickData

ClickData में, आइकॉन के क्लिकथ्रू के बारे में जानकारी होती है.
JSON के काेड में दिखाना
{
  "url": string,
}
फ़ील्ड
url string

FallbackImage

FallbackImage में, VAST फ़ॉलबैक इमेज के बारे में जानकारी होती है.
JSON के काेड में दिखाना
{
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "alt_text": string,
}
फ़ील्ड
creative_type string

height int32

width int32

resource string

alt_text string

Wrapper

रैपर में, रैपर विज्ञापन के बारे में जानकारी होती है. अगर कोई डील आईडी मौजूद नहीं है, तो इसमें वह शामिल नहीं होता.
JSON के काेड में दिखाना
{
  "system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
}
फ़ील्ड
system string

विज्ञापन सिस्टम का आइडेंटिफ़ायर.
ad_id string

रैपर विज्ञापन के लिए इस्तेमाल किया गया विज्ञापन आईडी.
creative_id string

रैपर विज्ञापन के लिए इस्तेमाल किया गया क्रिएटिव आईडी.
creative_ad_id string

रैपर विज्ञापन के लिए इस्तेमाल किया गया क्रिएटिव विज्ञापन आईडी.
deal_id string

रैपर विज्ञापन के लिए डील आईडी. यह ज़रूरी नहीं है.

पुष्टि

पुष्टि करने की प्रोसेस में ओपन मेज़रमेंट की जानकारी शामिल होती है. इससे तीसरे पक्ष को विज्ञापन दिखने से जुड़े आंकड़े और पुष्टि करने से जुड़े मेज़रमेंट में मदद मिलती है. फ़िलहाल, सिर्फ़ JavaScript रिसॉर्स इस्तेमाल किए जा सकते हैं. https://iabtechlab.com/standards/open-measurement-sdk/ पर जाएं
JSON के काेड में दिखाना
{
  "vendor": string,
  "java_script_resources": [object(JavaScriptResource)],
  "tracking_events": [object(TrackingEvent)],
  "parameters": string,
}
फ़ील्ड
vendor string

पुष्टि करने वाला वेंडर.
java_script_resources [object(JavaScriptResource)]

पुष्टि करने के लिए, JavaScript संसाधनों की सूची.
tracking_events [object(TrackingEvent)]

पुष्टि के लिए, ट्रैकिंग इवेंट की सूची.
parameters string

An opaque string passed to bootstrap verification code.

JavaScriptResource

JavaScriptResource में, JavaScript के ज़रिए पुष्टि करने के लिए जानकारी होती है.
JSON के काेड में दिखाना
{
  "script_url": string,
  "api_framework": string,
  "browser_optional": boolean,
}
फ़ील्ड
script_url string

JavaScript पेलोड का यूआरआई.
api_framework string

APIFramework, वीडियो फ़्रेमवर्क का नाम है. यह पुष्टि करने के लिए कोड का इस्तेमाल करता है.
browser_optional boolean

क्या इस स्क्रिप्ट को ब्राउज़र के बाहर चलाया जा सकता है.

TrackingEvent

TrackingEvent में ऐसे यूआरएल होते हैं जिन्हें क्लाइंट को कुछ स्थितियों में पिंग करना चाहिए.
JSON के काेड में दिखाना
{
  "event": string,
  "uri": string,
}
फ़ील्ड
event string

ट्रैकिंग इवेंट का टाइप.
uri string

ट्रैकिंग इवेंट, जिसे पिंग किया जाना है.

UniversalAdID

UniversalAdID का इस्तेमाल, एक यूनीक क्रिएटिव आइडेंटिफ़ायर देने के लिए किया जाता है. इसे सभी विज्ञापन सिस्टम में बनाए रखा जाता है.
JSON के काेड में दिखाना
{
  "id_value": string,
  "id_registry": string,
}
फ़ील्ड
id_value string

विज्ञापन के लिए चुने गए क्रिएटिव का यूनिवर्सल विज्ञापन आईडी.
id_registry string

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

Companion

इस कुकी में कंपैनियन विज्ञापनों के बारे में जानकारी होती है. ये विज्ञापन, वीडियो विज्ञापन के साथ दिखाए जा सकते हैं.
JSON के काेड में दिखाना
{
  "click_data": object(ClickData),
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "ad_slot_id": string,
  "api_framework": string,
  "tracking_events": [object(TrackingEvent)],
}
फ़ील्ड
click_data object(ClickData)

इस कंपैनियन के लिए क्लिक डेटा.
creative_type string

अगर यह स्टैटिक टाइप का कंपैनियन है, तो वीएएसटी में <StaticResource> नोड पर CreativeType एट्रिब्यूट.
height int32

इस कंपैनियन की पिक्सल में ऊंचाई.
width int32

इस कंपैनियन की चौड़ाई, पिक्सल में.
resource string

स्टैटिक और iframe कंपैनियन के लिए, यह लोड और दिखाया जाने वाला यूआरएल होगा. एचटीएमएल कंपैनियन के लिए, यह एचटीएमएल स्निपेट होगा, जिसे कंपैनियन के तौर पर दिखाया जाना चाहिए.
type string

यह कंपेनियन किस तरह का है. यह स्टैटिक, iframe या एचटीएमएल हो सकता है.
ad_slot_id string

इस कंपैनियन के लिए स्लॉट आईडी.
api_framework string

इस कंपैनियन के लिए एपीआई फ़्रेमवर्क.
tracking_events [object(TrackingEvent)]

इस कंपैनियन के लिए ट्रैकिंग इवेंट की सूची.

InteractiveFile

InteractiveFile में इंटरैक्टिव क्रिएटिव (यानी कि SIMID) के बारे में जानकारी होती है. इसे विज्ञापन चलाने के दौरान दिखाया जाना चाहिए.
JSON के काेड में दिखाना
{
  "resource": string,
  "type": string,
  "variable_duration": boolean,
  "ad_parameters": string,
}
फ़ील्ड
resource string

इंटरैक्टिव क्रिएटिव का यूआरएल.
type string

संसाधन के तौर पर दी गई फ़ाइल का एमआईएमई टाइप.
variable_duration boolean

इस क्रिएटिव में, अवधि बढ़ाने के लिए कहा जा सकता है या नहीं.
ad_parameters string

यह वीएएसटी में <AdParameters> नोड की वैल्यू है.