ה-API להטמעת מודעות דינמיות מאפשר לבקש שידורי וידאו על פי דרישה (VOD) ולעקוב אחריהם. HLS ו-DASH נתמכים.
שירות: dai.google.com
הנתיב של השיטה stream
הוא יחסי ל-https://dai.google.com
שיטה: שידור
שיטות | |
---|---|
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 מזהה מערכת ניהול התוכן של מקור הנתונים. |
video-id |
string מזהה הווידאו של השידור. |
גוף הבקשה
גוף הבקשה הוא מסוג application/x-www-form-urlencoded
ומכיל את הפרמטרים הבאים:
פרמטרים | ||
---|---|---|
dai-ssb |
אופציונלי | צריך להגדיר את הערך |
פרמטרים של טירגוט ב-Floodlight | אופציונלי | פרמטרים נוספים של טירגוט. |
שינוי הפרמטרים של השידור | אופציונלי | שינוי ערכי ברירת המחדל של פרמטר ליצירת מקור נתונים. |
אימות HMAC | אופציונלי | אימות באמצעות אסימון מבוסס HMAC. |
גוף התשובה
אם הפעולה בוצעה ללא שגיאות, גוף התשובה מכיל Stream
חדש. לשידורים של העברת תוכן דרך צד השרת, Stream
מכיל רק את השדות stream_id
ו-stream_manifest
.
פתיחת המדידה
השדה Verifications
מכיל מידע על אימות במדידה פתוחה עבור מקורות נתונים שלא מולאו בצד השרת.
Verifications
מכיל רכיב Verification
אחד או יותר עם רשימת המשאבים והמטא-נתונים שנדרשים כדי לאמת את הפעלת הקריאייטיב באמצעות קוד מדידה של צד שלישי.
יש תמיכה רק ב-JavaScriptResource
. למידע נוסף, ראו IAB Tech Lab ומפרט VAST 4.1.
שיטה: אימות מדיה
אחרי שתיתקלו במזהה של מדיה של מודעה במהלך ההפעלה, תוכלו מיד לשלוח בקשה באמצעות media_verification_url
מנקודת הקצה stream
. הנתיב media_verification_url
הוא נתיב מוחלט.
אין צורך בבקשות לאימות מדיה עבור שידורים של איתות Bluetooth בצד השרת, שבהם השרת מתחיל אימות מדיה.
הבקשות לנקודת הקצה media verification
הן אידמפוטנטיות.
שיטות | |
---|---|
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 של מזהה סכימה 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 התאריך שבו השידור בתוקף עד, בפורמט RFC 3339. |
subtitles |
[object(Subtitle)] רשימה של כתוביות. יושמט אם הוא ריק. HLS בלבד. |
hls_master_playlist |
string (הוצא משימוש) כתובת URL של פלייליסט ראשי ב-HLS. יש להשתמש ב-stream_manifest. HLS בלבד. |
stream_manifest |
string המניפסט של השידור. תואם לפלייליסט הראשי ב-HLS ול-MPD ב-DASH. זהו השדה היחיד חוץ מ-"stream_id" שנמצא בתגובה כשיוצרים שידור של איתות Bluetooth מצד השרת. |
media_verification_url |
string כתובת URL לאימות מדיה. |
apple_tv |
object(AppleTV) מידע אופציונלי וספציפי למכשירי AppleTV. HLS בלבד. |
ad_breaks |
[object(AdBreak)] רשימה של AdBreaks. לא יופיע אם השדה ריק. |
AppleTV
Apple TV מכיל מידע ספציפי למכשירי Apple TV.ייצוג JSON |
---|
{ "interstitials_url": string, } |
שדות | |
---|---|
interstitials_url |
string כתובת URL של מודעות מעברון. |
AdBreak
ב-AdBreak מתוארת הפסקה יחידה למודעה בשידור. היא מכילה מיקום, משך זמן, סוג (mid/pre/post) ורשימה של מודעות.ייצוג 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), } |
שדות | |
---|---|
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 כתובת URL אופציונלית לקליק. |
icons |
[object(Icon)] רשימת סמלים, אם הם ריקים. |
wrappers |
[object(Wrapper)] רשימה של wrappers. לא יופיע אם השדה ריק. |
events |
[object(Event)] רשימת האירועים במודעה. |
verifications |
[object(Verification)] רשומות אופציונליות של אימות המדידה, שבהן מרוכזים המשאבים והמטא-נתונים הנדרשים להפעלת קוד מדידה של צד שלישי לצורך אימות ההפעלה של נכסי הקריאייטיב. |
universal_ad_id |
object(UniversalAdID) מזהה מודעה אוניברסלי אופציונלי. |
companions |
[object(Companion)] מודעות נלוות אופציונליות שעשויות להופיע לצד המודעה הזו. |
interactive_file |
object(InteractiveFile) קריאייטיב אינטראקטיבי אופציונלי (SIMID) שצריך להציג בזמן הפעלת המודעה. |
אירוע
האירוע מכיל סוג אירוע ואת שעת ההצגה של האירוע.ייצוג JSON |
---|
{ "time": number, "type": string, } |
שדות | |
---|---|
time |
number שעת ההצגה של האירוע. |
type |
string סוג האירוע הזה. |
Subtitle
'כתוביות' מתארות רצועת כתוביות צדדית לשידור הווידאו. הוא שומר שני פורמטים של כתוביות: TTML ו-WebVTT. המאפיין TTMLPath מכיל את כתובת ה-URL לקובץ הדו-צדדי של TTML, והמאפיין WebVTTPath מכיל באופן דומה כתובת URL לקובץ הדו-צדדי של WebVTT.ייצוג JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
שדות | |
---|---|
language |
string קוד שפה, כמו 'en' או 'de'. |
language_name |
string שם תיאורי של השפה. היא מבדילה בין קבוצת הכתוביות הספציפית אם קיימות כמה קבוצות לאותה שפה |
ttml |
string כתובת URL אופציונלית לקובץ העזר של TTML. |
webvtt |
string כתובת URL אופציונלית לקובץ העזר של WebVTT. |
סמל
הסמל מכיל מידע על סמל 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
נתוני הקליק מכילים מידע על קליק על סמל.ייצוג 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 מזהה המודעה שמשמש למודעת ה-wrapper. |
creative_id |
string מזהה הקריאייטיב משמש למודעת ה-wrapper. |
creative_ad_id |
string מזהה מודעת הקריאייטיב שמשמש את מודעת ה-wrapper. |
deal_id |
string מזהה עסקה אופציונלי של מודעת wrapper. |
אימות
האימות מכיל מידע בשביל 'מדידה פתוחה', שמאפשר מדידה של ניראות ואימות על ידי צד שלישי. בשלב זה יש תמיכה רק במשאבי 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 למטען ייעודי (payload) של JavaScript. |
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
המודעה הנלווית מכילה מידע למודעות נלוות, שניתן להציג יחד עם המודעה.ייצוג 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. |