Dynamic Ad Insertion API מאפשר לבקש ולעקוב אחרי שידורי וידאו על פי דרישה (VOD) עם הטמעת מודעות דינמיות. יש תמיכה בשידורים מסוג HLS ו-DASH.
שירות: dai.google.com
הנתיב של השיטה stream הוא יחסי ל-https://dai.google.com
שיטה: stream
| Methods | |
|---|---|
| stream | POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/streamיצירת שידור HLS DAI למקור התוכן ולמזהה הסרטון שצוינו. 
 יצירת פיד DASH DAI למקור התוכן ולמזהה הסרטון שצוינו. | 
בקשת HTTP
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מפתח ה-API שסופק כשיצרתם את הסטרימינג חייב להיות תקף לרשת של בעל התוכן הדיגיטלי. במקום לספק אותו בגוף הבקשה, אפשר להעביר את מפתח ה-API בכותרת ההרשאה של ה-HTTP בפורמט הבא: Authorization: DCLKDAI key="<api-key>" | 
פרמטרים של נתיב
| פרמטרים | |
|---|---|
| content-source | stringמזהה ה-CMS של מקור הנתונים. | 
| video-id | stringמזהה הסרטון של השידור. | 
גוף הבקשה
גוף הבקשה הוא מסוג application/x-www-form-urlencoded ומכיל את הפרמטרים הבאים:
| פרמטרים | ||
|---|---|---|
| dai-ssb | אופציונלי | מגדירים את הערך  | 
| פרמטרים של טירגוט ב-DFP | אופציונלי | פרמטרים נוספים של טירגוט | 
| שינוי פרמטרים של שידור | אופציונלי | שינוי ערכי ברירת המחדל של פרמטר ליצירת סטרימינג. | 
| אימות HMAC | אופציונלי | אימות באמצעות טוקן שמבוסס על HMAC | 
גוף התשובה
אם הפעולה בוצעה בהצלחה, גוף התגובה יכלול Stream חדש. בשידורים של איתותים בצד השרת, Stream מכיל רק את השדות stream_id ו-stream_manifest.
Open Measurement
השדה Verifications מכיל מידע לאימות של Open Measurement לגבי שידורים שלא כוללים איתותים בצד השרת.
Verifications מכיל רכיב Verification אחד או יותר שמפרטים את המשאבים והמטא-נתונים שנדרשים כדי לאמת את ההפעלה של הקריאייטיב באמצעות קוד מדידה של צד שלישי.
יש תמיכה רק ב-JavaScriptResource. למידע נוסף, אפשר לעיין בIAB Tech Lab ובמפרט VAST 4.1.
שיטה: אימות מדיה
אחרי שמזהים מזהה מדיה של מודעה במהלך ההפעלה, שולחים בקשה באופן מיידי באמצעות media_verification_url מנקודת הקצה stream. הערך media_verification_url הוא נתיב מוחלט.
בקשות לאימות מדיה לא נדרשות לשידורים עם איתותים בצד השרת, שבהם האימות מתבצע על ידי השרת.
בקשות לנקודת הקצה media verification הן חד-פעמיות.
| Methods | |
|---|---|
| media verification | GET {media_verification_url}/{ad_media_id}שליחת הודעה ל-API על אירוע אימות מדיה. | 
בקשת HTTP
GET {media-verification-url}/{ad-media-id}
גוף התשובה
הפונקציה media verification מחזירה את התשובות הבאות:
- HTTP/1.1 204 No Contentאם תהליך האימות של המדיה מסתיים בהצלחה וכל הפינגים נשלחים.
- HTTP/1.1 404 Not Foundאם לא ניתן לאמת את המדיה בבקשה בגלל פורמט שגוי של כתובת ה-URL או שתוקפה פג.
- HTTP/1.1 404 Not Foundאם בקשת אימות קודמת של התעודה הזו אושרה.
- HTTP/1.1 409 Conflictאם כבר נשלחה בקשה אחרת עם פינגים באותו זמן.
מזהי מדיה של מודעות (HLS)
מזהי המדיה של המודעות יקודודים במטא-נתונים מתוזמנים של HLS באמצעות המפתח TXXX, שמוגדר לפריימים של 'מידע טקסט שהוגדר על ידי המשתמש'. תוכן המסגרת לא יהיה מוצפן ותמיד יתחיל בטקסט "google_".
צריך לצרף את כל תוכן הטקסט של המסגרת אל media_verification_url בכל בקשה לאימות מודעה.
מזהי מדיה של מודעות (DASH)
מזהי המדיה של המודעות ייכנסו למניפסט באמצעות הרכיב EventStream של DASH.
לכל EventStream יהיה מזהה URI של Scheme ID urn:google:dai:2018.
הם יכללו אירועים עם המאפיין messageData שמכיל מזהה מדיה של מודעה שמתחיל ב-“google_”.  צריך לצרף את כל התוכן של המאפיין messageData אל media_verification_url בכל בקשה לאימות מודעה.
נתוני התגובה
מקור נתונים
הפונקציה Stream משמשת להצגה של רשימה של כל המשאבים של שידור חדש שנוצר בפורמט 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התאריך שבו הסטרימינג יפוג בתוקף, בפורמט RFC 3339. | 
| subtitles | [object(Subtitle)]רשימת כתוביות. השדה הזה לא מופיע אם הוא ריק. HLS בלבד. | 
| hls_master_playlist | string(לא מומלץ) כתובת ה-URL של פלייליסט המאסטר של HLS. שימוש ב-stream_manifest. HLS בלבד. | 
| stream_manifest | stringהמניפסט של השידור. תואם לפלייליסט הראשי ב-HLS ול-MPD ב-DASH. זהו השדה היחיד, מלבד 'stream_id', שמופיע בתגובה כשיוצרים שידור של איתותים בצד השרת. | 
| media_verification_url | stringכתובת URL לאימות מדיה | 
| apple_tv | object(AppleTV)מידע אופציונלי שספציפי למכשירי AppleTV. HLS בלבד. | 
| ad_breaks | [object(AdBreak)]רשימת הפסקות למודעות. השדה הזה לא מופיע אם הוא ריק. | 
AppleTV
AppleTV מכיל מידע ספציפי למכשירי Apple TV.| ייצוג ב-JSON | 
|---|
| {
  "interstitials_url": string,
} | 
| שדות | |
|---|---|
| interstitials_url | stringכתובת ה-URL של המודעות המעבריות. | 
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)]רשימת Wrappers. השדה הזה לא מופיע אם הוא ריק. | 
| events | [object(Event)]רשימה של האירועים במודעה. | 
| verifications | [object(Verification)]רשומות אופציונליות לאימות של Open Measurement, שמפרטות את המשאבים והמטא-נתונים הנדרשים להרצת קוד מדידה של צד שלישי כדי לאמת את ההפעלה של הקריאייטיב. | 
| universal_ad_id | object(UniversalAdID)מזהה מודעה אוניברסלי אופציונלי. | 
| companions | [object(Companion)]מודעות נלוויות אופציונליות שעשויות להופיע לצד המודעה הזו. | 
| interactive_file | object(InteractiveFile)קריאייטיב אינטראקטיבי אופציונלי (SIMID) שצריך להופיע במהלך ההפעלה של המודעה. | 
| skip_metadata | object(SkipMetadata)מטא-נתונים אופציונליים למודעות שניתן לדלג עליהן. אם הערך מוגדר, המשמעות היא שהמודעה ניתנת לדילוג, והוא כולל הוראות לטיפול בממשק המשתמש לדילוג ובאירוע המעקב. | 
| extensions | stringרשימה אופציונלית של כל הצמתים מסוג <Extension> ב-VAST. | 
אירוע
אירוע מכיל סוג אירוע ושעת הצגה של אירוע.| ייצוג ב-JSON | 
|---|
| { "time": number, "type": string, } | 
| שדות | |
|---|---|
| time | numberמועד השידור של האירוע הזה. | 
| type | stringסוג האירוע הזה. | 
Subtitle
Subtitle מתאר רצועת כתוביות נלווית של שידורי הווידאו. הוא מאחסן שני פורמטים של כתוביות: TTML ו-WebVTT. המאפיין TTMLPath מכיל את כתובת ה-URL של קובץ ה-sidecar של TTML, ובאופן דומה המאפיין WebVTTPath מכיל את כתובת ה-URL של קובץ ה-sidecar של WebVTT.| ייצוג ב-JSON | 
|---|
| {
  "language": string,
  "language_name": string,
  "ttml": string,
  "webvtt": string,
} | 
| שדות | |
|---|---|
| language | stringקוד שפה, למשל 'en' או 'de'. | 
| language_name | stringשם תיאורי של השפה. הוא מבדיל בין קבוצת הכתוביות הספציפית אם יש כמה קבוצות לאותה שפה | 
| ttml | stringכתובת URL אופציונלית לקובץ ה-sidecar של ה-TTML. | 
| webvtt | stringכתובת URL אופציונלית לקובץ ה-sidecar של WebVTT. | 
SkipMetadata
הפרמטר SkipMetadata מספק מידע שדרוש ללקוחות כדי לטפל באירועי דילוג על מודעות שניתן לדלג עליהן.| ייצוג ב-JSON | 
|---|
| {
  "offset": number,
  "tracking_url": string,
} | 
| שדות | |
|---|---|
| offset | numberהשינוי מציין את משך הזמן בשניות שנגן הווידאו צריך להמתין אחרי תחילת המודעה כדי להציג את לחצן הדילוג. המערכת תשמיט את השדה אם לא יצוין ב-VAST. | 
| tracking_url | stringTrackingURL מכילה כתובת URL שצריך לשלוח אליה הודעות ping באירוע הדילוג. | 
סמל
הסמל מכיל מידע על סמל 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
ה-Wrapper מכיל מידע על מודעת 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מחרוזת אטומה שמועברת לקוד האימות של Bootstrap. | 
JavaScriptResource
JavaScriptResource מכיל מידע לאימות באמצעות JavaScript.| ייצוג ב-JSON | 
|---|
| {
  "script_url": string,
  "api_framework": string,
  "browser_optional": boolean,
} | 
| שדות | |
|---|---|
| script_url | stringURI של עומס עבודה של JavaScript | 
| api_framework | stringAPIFramework הוא השם של מסגרת הווידאו שמפעילה את קוד האימות. | 
| browser_optional | booleanאם אפשר להריץ את הסקריפט הזה מחוץ לדפדפן. | 
TrackingEvent
האירוע TrackingEvent מכיל כתובות URL שעל הלקוח לשלוח אליהן הודעות ping במצבים מסוימים.| ייצוג ב-JSON | 
|---|
| {
  "event": string,
  "uri": string,
} | 
| שדות | |
|---|---|
| event | stringסוג אירוע המעקב. | 
| uri | stringאירוע המעקב שעבורו יישלח ה-ping. | 
UniversalAdID
UniversalAdID משמש לספק מזהה קריאייטיב ייחודי שנשמר במערכות הפרסום השונות.| ייצוג ב-JSON | 
|---|
| { "id_value": string, "id_registry": string, } | 
| שדות | |
|---|---|
| id_value | stringמזהה המודעה האוניברסלי של הקריאייטיב שנבחר עבור המודעה. | 
| id_registry | stringמחרוזת שמשמשת לזיהוי כתובת ה-URL של אתר המרשם שבו מופיע בקטגוריה מזהה המודעה האוניברסלי של הקריאייטיב שנבחר. | 
Companion
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המאפיין CreativeType בצומת <StaticResource> ב-VAST, אם מדובר בקמפיין נלווה מסוג סטטי. | 
| height | int32הגובה בפיקסלים של המודעה הנלווית הזו. | 
| width | int32הרוחב בפיקסלים של המודעה הנלווית הזו. | 
| resource | stringבמודעות נלוויות סטטיות ובמודעות נלוויות מסוג iframe, זו תהיה כתובת ה-URL שתישאר טעונה ותוצג. במודעות נלוות מסוג HTML, זהו קטע ה-HTML שצריך להופיע כמודעה הנלווית. | 
| type | stringהסוג של המלווה הזה. הוא יכול להיות סטטי, iframe או HTML. | 
| ad_slot_id | stringמזהה השקע של המלווה הזה. | 
| api_framework | stringמסגרת ה-API של התוסף הזה. | 
| tracking_events | [object(TrackingEvent)]רשימת אירועי המעקב של המלווה הזה. | 
InteractiveFile
קובץ InteractiveFile מכיל מידע על קריאייטיב אינטראקטיבי (למשל, SIMID) שצריך להופיע במהלך ההפעלה של המודעה.| ייצוג ב-JSON | 
|---|
| { "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } | 
| שדות | |
|---|---|
| resource | stringכתובת ה-URL של הקריאייטיב האינטראקטיבי. | 
| type | stringסוג ה-MIME של הקובץ שסופק כמשאב. | 
| variable_duration | booleanהאם הקריאייטיב הזה עשוי לבקש הארכה של משך הזמן. | 
| ad_parameters | stringהערך של הצומת <AdParameters> ב-VAST. |