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

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

सेवा: dai.google.com

stream तरीके का पाथ, https://dai.google.com से जुड़ा है

तरीका: स्ट्रीम

तरीके
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 फ़ील्ड होते हैं.

Open Measurement

Verifications फ़ील्ड में, सर्वर-साइड-बीकनिंग स्ट्रीम के लिए, Open Measurement की पुष्टि से जुड़ी जानकारी होती है. 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 अगर इस समय कोई दूसरा अनुरोध पहले से ही पिंग भेज रहा है.

विज्ञापन मीडिया आईडी (एचएलएस)

विज्ञापन मीडिया आइडेंटिफ़ायर को 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

(अब काम नहीं करता) एचएलएस की मुख्य प्लेलिस्ट का यूआरएल. stream_manifest का इस्तेमाल करें. सिर्फ़ एचएलएस.
stream_manifest string

स्ट्रीम का मेनिफ़ेस्ट. यह एचएलएस में मौजूद मुख्य प्लेलिस्ट और DASH में मौजूद एमपीडी से मेल खाता है. सर्वर-साइड-बीकनिंग स्ट्रीम बनाते समय, "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

ब्रेक के ये टाइप मान्य हैं: बीच में, पहले, और बाद में.
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 एट्रिब्यूट में TTML साइडकार फ़ाइल का यूआरएल होता है. इसी तरह, 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

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

पुष्टि करने का तरीका

पुष्टि करने की प्रोसेस में, Open Measurement की जानकारी शामिल होती है. इससे तीसरे पक्ष के विज्ञापन दिखने की जानकारी और पुष्टि करने की प्रोसेस को मेज़र करने में मदद मिलती है. फ़िलहाल, सिर्फ़ 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

बूटस्ट्रैप पुष्टि करने वाले कोड में पास की गई एक अपारदर्शी स्ट्रिंग.

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

अगर यह स्टैटिक टाइप का साथी है, तो VAST में <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

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

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

VAST में <AdParameters> नोड की वैल्यू.