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מזהה האירוע של הסטרימינג. |
גוף הבקשה
גוף הבקשה הוא מסוג application/x-www-form-urlencoded והוא מכיל את הפרמטרים הבאים:
| פרמטרים | ||
|---|---|---|
dai-ssb |
אופציונלי | מגדירים את הערך |
| פרמטרים של טירגוט ב-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
אסימון אטום שמייצג את מצב הסנכרון הנוכחי של הלקוח.
אם מספקים טוקן, השרת מחזיר בתגובה רק את המטא-נתונים שהשתנו מאז שהטוקן נוצר, יחד עם טוקן חדש |
גוף התשובה
אם הפעולה בוצעה ללא שגיאות, התגובה תחזיר מופע של 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 |
booleanOptional 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 |
stringURI to javascript payload. |
api_framework |
stringAPIFramework הוא השם של מסגרת הווידאו שמפעילה את קוד האימות. |
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. |