כשאתם משתמשים בפלטפורמת DAI של Google, כדאי לספק נתוני טירגוט ההפסקה הבאה למודעות בשידור חי/ליניארית. ההפסקה המוקדמת למודעות ממשק API של Notification (EABN) מאפשר להטמיע טירגוט ספציפי להפסקה באמצעות צמדי מפתח/ערך, שמאפשרים מדרגיות לקבלת החלטות לגבי מודעות בנפח גבוה בסטרימינג.
קריאות ל-EABN API חייבות לכלול את מפתח הנכס לצורך טירגוט ואת הערכים הצפויים משך ההפסקה הבאה. משך הזמן צריך להיות קרוב ככל האפשר למודעה עצמה את האורך המקסימלי של ההפסקה. אם משך הזמן הצפוי שנשלח קצר יותר מספק הפסקה למודעות, סוג המילוי של ההפסקה למודעות למילוי חוסרים (ברירת המחדל היא 'לוח ריק') משמש את שארית ההפסקה. אם משך הזמן הצפוי שנשלח ארוך יותר מההפסקה למודעות שצוינה. ההפסקה למודעות עשויה להיות מסתיים לפני שהמודעה הושלמה.
בנוסף לשדות החובה האלה אפשר גם לשלוח טירגוט בהתאמה אישית שם של תבנית של רצף מודעות להחלה, או נתוני SCTE35 Cue Out, אם זמינים.
דרישות מוקדמות
יצירה של חשבון שירות
כדי לגשת ל-EABN API, נדרש חשבון שירות ב-Google.
- אם יש לכם חשבון Google Cloud, אתם יכולים להשתמש במודול IAM כדי ליצור חשבון שירות. מידע נוסף זמין במאמר הבא: יצירה וניהול של חשבונות שירות
- אם אין לך חשבון Google Cloud, יש לך אפשרות ליצור חשבון שירות.
מה-Google API Console,
באמצעות השלבים הבאים:
- יוצרים פרויקט חדש או בוחרים פרויקט קיים.
- בדף Credentials, לוחצים על Manage service accounts.
- בדף Service accounts (חשבונות שירות), לוחצים על יצירת חשבון שירות.
- בדף Create service account, מזינים את פרטי החשבון. לאחר מכן לוחצים על יצירה.
אחרי שיוצרים חשבון שירות, מעתיקים את קובץ ה-JSON של החשבון מפתח, שישמש לאימות.
הפעלת EABN API
אחרי שיוצרים את חשבון השירות, צריך לבקש ממנהל החשבון להפעיל אותו ל-EABN API לחשבון הזה.
הפעלת DAI API
אחרי שמפעילים את EABN API בחשבון השירות, מפעילים את DAI API בחשבון:
בספריית Google API: מחפשים 'DAI API'.
בוחרים את ממשק DAI API ומפעילים אותו.
שימוש ב-EABN API
אפשר לשלוח קריאה ל-API של EABN באמצעות בקשות JSON/REST.
אימות
כדי לבצע קריאות מאומתות ל-EABN API, צריך ליצור שירות OAuth2
את פרטי הכניסה של החשבון באמצעות מפתח JSON מחשבון השירות שלכם, וההיקף
https://www.googleapis.com/auth/video-ads
מידע נוסף זמין במאמר הבא:
שימוש ב-OAuth 2.0 לאפליקציות משרת לשרת.
חובה לכלול את אסימון האימות שיתקבל ככותרת אימות לכל אחד מהם ל-EABN API.
שליחת התראה על הפסקה מוקדמת למודעה
כדי לשלוח התראה על הפסקה מוקדמת למודעה, צריך לשלוח בקשת POST באמצעות: כתובת ה-URL וגוף הבקשה:
POST dai.googleapis.com/v1/adBreaks
גוף הבקשה
אובייקט | ||
---|---|---|
adBreak |
חובה | אובייקט wrapper של מאפיינים של adBreak |
assetKey |
חובה | מזהה ייחודי של LiveStreamEvent שעבורו
ההפסקה נוצרה |
expectedDuration |
חובה | משך ההפסקה למודעה, באמצעות פורמט משך הזמן הרגיל של Google (xx.xxxs כאשר xx.xxx הוא מספר השניות) |
scte35CueOut |
אופציונלי | נתונים בקידוד Base-64 מיציאת scte35. יכול לכלול את
הפקודה splice_insert() או הפקודה time_signal() .
דוגמאות:
|
custParams |
אופציונלי | צמדי מפתח/ערך שייכללו בבקשות להצגת מודעות בהפסקה הזו להתאמה אישית
טירגוט לפי קריטריונים ב-AM360, מופרדים על ידי = ביחד עם
& .דוגמה: key=value&key2=value2,value3 למידע נוסף על טירגוט, אפשר לעיין במאמר בנושא טירגוט של מלאי פרמטרים לשידור שלכם. |
ptpln |
אופציונלי | שם התבנית של רצף המודעות |
כותרת תשובה
HTTP/1.1 200 OK
גוף התשובה
גוף התשובה מכיל את כל הפרמטרים שנשלחו באובייקט adBreak
,
וכן שדה daiBreakId
נוסף, שמכיל את הטמעת המודעות הדינמיות הפנימית
המזהה של ההפסקה למודעה שנוצרה בתוך הזרם.
דוגמה
בקשה
POST /v1/adBreaks HTTP/1.1
Content-Type: application/json
{
"adBreak": {
"assetKey": "asset1",
"expectedDuration": "30s",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"custParams": "param1=value1¶m2=value2",
"ptpln": "podtemplate"
}
}
תשובה
HTTP/1.1 200 OK
{
"assetKey": "asset1",
"expectedDuration": "30s",
"custParams": "param1=value1¶m2=value2",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"ptpln": "podtemplate",
"daiBreakId": 1
}
הטמעה לדוגמה (Python)
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from absl import app
from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account
SERVICE_ACCOUNT_KEY_FILE = "~/eabn_key.json"
ASSET_KEY = "asset1"
SCOPES = ['https://www.googleapis.com/auth/video-ads']
EABN_API_URL = 'https://dai.googleapis.com/v1/adBreaks'
def main():
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_KEY_FILE, scopes=SCOPES)
authed_session = AuthorizedSession(credentials)
data = {
'assetKey': ASSET_KEY,
'expectedDuration': '120s',
'custParams': 'param1=value1¶m2=value2',
'scte35CueOut': '/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==',
}
r = authed_session.post(EABN_API_URL, json={'adBreak': data})
print(r.status_code)
print(r.headers)
print(r.text)
if __name__ == '__main__':
app.run(main)