ממשק API לינארי להטמעת מודעות דינמיות

‫Dynamic Ad Insertion API מאפשר לכם לבקש שידורים לינאריים (בשידור חי) של DAI ולעקוב אחריהם.

שירות: dai.google.com

כל כתובות ה-URI הן יחסיות ל-https://dai.google.com

שיטה: סטרימינג

Methods
stream POST /linear/v1/hls/event/{assetKey}/stream

יוצרת מקור DAI לנתונים עבור מזהה האירוע שצוין.

בקשת HTTP

POST https://dai.google.com/linear/v1/hls/event/{assetKey}/stream

Request header

פרמטרים
api‑key string

מפתח ה-API שצוין כשיוצרים סטרימינג צריך להיות תקף לרשת של בעל האתר.

במקום לספק אותו בגוף הבקשה, אפשר להעביר את מפתח ה-API בכותרת ההרשאה של ה-HTTP בפורמט הבא:

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

פרמטרים של נתיב

פרמטרים
assetKey string

מזהה האירוע של הסטרימינג.
הערה: מפתח הנכס של השידור הוא מזהה שאפשר למצוא גם ב ממשק המשתמש של Ad Manager.

גוף הבקשה

גוף הבקשה הוא מסוג application/x-www-form-urlencoded והוא מכיל את הפרמטרים הבאים:

פרמטרים
dai-ssb אופציונלי

מגדירים את הערך true כדי ליצור שידור של אותות בצד השרת. ברירת המחדל היא false. המעקב בזרם ברירת המחדל מתבצע ביוזמת הלקוח, והפינג מתבצע בצד השרת.

פרמטרים של טירגוט ב-DFP אופציונלי פרמטרים נוספים לטירגוט.
Override Stream Parameters אופציונלי שינוי ערכי ברירת המחדל של פרמטר ליצירת מקור נתונים.
אימות HMAC אופציונלי אימות באמצעות טוקן מבוסס-HMAC.

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל Stream חדש. בסטרימינג של נתוני beacon בצד השרת, Stream מכיל רק את השדות stream_id ו-stream_manifest.

מדידה פתוחה

ה-API של DAI מכיל מידע לאימות של Open Measurement בשדה Verifications. השדה הזה מכיל רכיב Verification אחד או יותר שמפרטים את המשאבים ואת המטא-נתונים שנדרשים להפעלת קוד מדידה של צד שלישי כדי לאמת את ההפעלה של הקריאייטיב. יש תמיכה רק ב-JavaScriptResource. מידע נוסף זמין באתר IAB Tech Lab ובמפרט VAST 4.1.

שיטה: אימות מדיה

אחרי שנתקלים במזהה של מדיה פרסומית במהלך ההפעלה, צריך לשלוח מיד בקשה באמצעות media_verification_url שהתקבל מנקודת הקצה stream. הבקשות האלה לא נדרשות לסטרימינג של נתוני שימוש (beaconing) בצד השרת, שבו השרת מתחיל את אימות המדיה.

הבקשות לנקודת הקצה media verification הן אידמפוטנטיות.

Methods
media verification GET /{media_verification_url}/{ad_media_id}

הודעה ל-API על אירוע אימות מדיה.

בקשת HTTP

GET https://{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_".

כל תוכן הטקסט של המסגרת צריך להתווסף לכתובת ה-URL של אימות המודעה לפני שליחת כל בקשה לאימות מודעה.

שיטה: metadata

נקודת הקצה של המטא-נתונים בכתובת metadata_url מחזירה מידע שמשמש ליצירת ממשק משתמש של מודעה. נקודת הקצה של המטא-נתונים לא זמינה לסטרימינג של אותות (beacons) בצד השרת, שבו השרת אחראי להפעלת אימות של מדיה פרסומית.

Methods
metadata GET /{metadata_url}/{ad-media-id}

GET /{metadata_url}

אחזור של פרטי מטא-נתונים של מודעות.

בקשת HTTP

GET https://{metadata_url}/{ad-media-id}

GET https://{metadata_url}

פרמטרים של שאילתה

פרמטרים
delta_token אופציונלי string

אסימון אטום שמייצג את מצב הסנכרון הנוכחי של הלקוח. אם מספקים טוקן, השרת מחזיר בתגובה רק את המטא-נתונים שהשתנו מאז שהטוקן נוצר, יחד עם טוקן חדש next_delta_token. אם לא מציינים את הפרמטר הזה, השרת מחזיר את כל המטא-נתונים של טווח זמן שהוגדר ל-DVR כולו.

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, התגובה תחזיר מופע של PodMetadata.

עבודה עם מטא-נתונים

המטא-נתונים מחולקים לשלושה קטעים נפרדים: tags,‏ ads ומודעה breaks. נקודת הכניסה לנתונים היא הקטע tags. משם, חוזרים על התהליך עם התגים ומחפשים את הרשומה הראשונה שהשם שלה הוא קידומת של מזהה המדיה של המודעה שנמצא בזרם הווידאו. לדוגמה, יכול להיות שמזהה המדיה של המודעה ייראה כך:

google_1234567890

אחר כך מוצאים אובייקט תג בשם google_12345. במקרה הזה, הוא זהה למזהה המדיה של המודעה. אחרי שמאתרים את האובייקט הנכון של קידומת המדיה של המודעה, אפשר לחפש את מזהי המודעות, מזהי ההפסקות למודעה ואת סוג האירוע. לאחר מכן, מזהי המודעות משמשים ליצירת אינדקס של אובייקטים מסוג ads, ומזהי ההפסקות למודעה משמשים ליצירת אינדקס של אובייקטים מסוג breaks.

נתוני התגובה

מקור נתונים

הפונקציה Stream משמשת לעיבוד רשימה של משאבים עבור סטרימינג שנוצר לאחרונה בפורמט JSON.
ייצוג JSON
{
  "stream_id": string,
  "stream_manifest": string,
  "hls_master_playlist": string,
  "media_verification_url": string,
  "metadata_url": string,
  "session_update_url": string,
  "polling_frequency": number,
}
שדות
stream_id string

מזהה מקור הנתונים ב-GAM.
stream_manifest ‫string

כתובת ה-URL של המניפסט של הסטרימינג, שמשמשת לאחזור הפלייליסט הרב-משתנה ב-HLS או ה-MPD ב-DASH.
hls_master_playlist string

(הוצא משימוש) כתובת URL של פלייליסט HLS עם כמה גרסאות. צריך להשתמש במקום זאת ב-stream_manifest.
media_verification_url string

כתובת ה-URL לאימות המדיה שמשמשת כנקודת קצה בסיסית למעקב אחרי אירועי הפעלה.
metadata_url ‫string

כתובת ה-URL של המטא-נתונים שמשמשת לשליחת בקשות למידע תקופתי על אירועי מודעות בשידור הקרוב.
session_update_url string

כתובת ה-URL לעדכון הפרמטרים של הטירגוט בסטרימינג הזה. הערכים המקוריים של פרמטרים הטירגוט נשמרים במהלך הבקשה הראשונית ליצירת הזרם.
polling_frequency number

תדירות הבדיקה, בשניות, כשמבקשים metadata_url או heartbeat_url.

PodMetadata

‫PodMetadata מכיל מידע על מטא-נתונים של מודעות, הפסקות פרסום ותגי מזהה מדיה.
ייצוג JSON
{
  "tags": map[string, object(TagSegment)],
  "ads": map[string, object(Ad)],
  "ad_breaks": map[string, object(AdBreak)],
  "next_delta_token": string,
  "obsolete_ad_break_ids": [],
}
שדות
tags map[string, object(TagSegment)]

מיפוי של פלחים בתגים, שמסודרים לפי קידומת התג.
ads map[string, object(Ad)]

מיפוי של מודעות שעברו אינדוקס לפי מזהה המודעה.
ad_breaks map[string, object(AdBreak)]

מיפוי של הפסקות למודעות שנוספו לאינדקס לפי מזהה ההפסקה למודעה.
next_delta_token ‫string

אסימון אטום שהלקוח יכול להשתמש בו בסקר הבא.
obsolete_ad_break_ids string

רשימה של מזהי הפסקות למודעה שיצאו משימוש וצריך להסיר אותם מהמטמון של הלקוח.

TagSegment

התג TagSegment מכיל הפניה למודעה, להפסקת הפרסום ולסוג האירוע. אין לשלוח פינג לנקודת הקצה של אימות המדיה של המודעה ל-TagSegment עם type="progress".
ייצוג JSON
{
  "ad": string,
  "ad_break_id": string,
  "type": string,
}
שדות
ad string

המזהה של המודעה של התג הזה.
ad_break_id string

המזהה של ההפסקה לפרסומות בתג הזה.
type string

סוג האירוע של התג הזה.

AdBreak

התג AdBreak מתאר הפסקה למודעה אחת בשידור. הוא מכיל משך זמן, סוג (mid/pre/post) ומספר המודעות.
ייצוג JSON
{
  "type": string,
  "duration": number,
  "expected_duration": number,
  "ads": number,
}
שדות
type string

סוגי ההפסקות התקינים הם: pre,‏ mid ו-post.
duration number

משך הזמן הכולל של המודעות בהפסקה למודעה הזו, בשניות.
expected_duration ‫number

משך הזמן הצפוי של ההפסקה לפרסומות (בשניות), כולל כל המודעות וכל מסך ההמתנה.
ads number

מספר המודעות בהפסקה למודעה.
מודעה מתארת מודעה בשידור.
ייצוג JSON
{
  "ad_break_id": string,
  "position": 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,
  "click_tracking_urls": [],
  "verifications": [object(Verification)],
  "slate": boolean,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "universal_ad_id": object(UniversalAdID),
  "extensions": [],
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
}
שדות
ad_break_id string

המזהה של ההפסקה למודעה של המודעה הזו.
position number

המיקום של המודעה הזו בהפסקה למודעה, החל מ-1.
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

כתובת היעד של קליק אופציונלית.
click_tracking_urls string

כתובות URL אופציונליות למעקב אחרי קליקים.
verifications ‫[object(Verification)]

רשומות אימות אופציונליות של Open Measurement שמפרטות את המשאבים והמטא-נתונים שנדרשים להרצת קוד מדידה של צד שלישי כדי לאמת הפעלה של קריאייטיב.
slate boolean

Optional bool indicating the current entry is slate.
icons [object(Icon)]

רשימה של סמלים, מושמטת אם ריקה.
wrappers [object(Wrapper)]

רשימה של רכיבי Wrapper, לא מופיעה אם ריקה.
universal_ad_id object(UniversalAdID)

מזהה מודעה אוניברסלי אופציונלי.
extensions ‫string

רשימה אופציונלית של כל הצמתים <Extension> ב-VAST.
companions [object(Companion)]

מודעות נלוות אופציונליות שיכולות להופיע לצד המודעה הזו.
interactive_file object(InteractiveFile)

קריאייטיב אינטראקטיבי אופציונלי (SIMID) שיוצג במהלך הפעלת המודעה.

סמל

התג Icon מכיל מידע על סמל 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

מזהה מודעה של הקריאייטיב שמשמש למודעת ה-wrapper.
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

URI to javascript payload.
api_framework string

APIFramework הוא השם של מסגרת הווידאו שמפעילה את קוד האימות.
browser_optional ‫boolean

האם אפשר להריץ את הסקריפט הזה מחוץ לדפדפן.

TrackingEvent

‫TrackingEvent מכיל כתובות URL שהלקוח צריך לשלוח להן פינג במצבים מסוימים.
ייצוג JSON
{
  "event": string,
  "uri": string,
}
שדות
event string

סוג אירוע המעקב.
uri ‫string

אירוע המעקב שצריך לשלוח לו פינג.

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.