באמצעות Video Stitcher API, אתם יוצרים סשן של שידור חי בכל פעם שאתם מתחילים הפעלה של שידור חי שבו מודעות שמוצגות על ידי Google Ad Manager מצורפות באופן דינמי במהלך הפסקות לפרסום. התשובה מכילה את כתובת ה-URL להפעלה ואת ההגדרות של הסשן בשידור חי.
בדף הזה מוסבר איך ליצור ולנהל סשן בשידור חי שמופעל על ידי Google Ad Manager. למידע על סשנים בשידור חי שלא משתמשים ב-Google Ad Manager, אפשר לעיין במאמר ניהול סשן בשידור חי.
לפני שמתחילים
- יוצרים הגדרה פעילה. כדי להשתמש בשילוב עם Google Ad Manager, צריך לוודא שהאובייקט
gamLiveConfigמוגדר. - אם מציינים לוח, צריך לוודא שאובייקט
gamSlateמוגדר בלוח שרושמים.
יצירת סשן בשידור חי
אפשר ליצור סשן בשידור חי באמצעות IMA SDK (שמפעיל את Video Stitcher API) או באמצעות Video Stitcher API ישירות.
שימוש ב-IMA SDK
אם אתם משלבים עם IMA SDK, IMA SDK יוצר את הסשן בשידור חי.
function requestVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherLiveStreamRequest(); streamRequest.liveStreamEventId = 'LIVE_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamRequest.customAssetKey = 'CUSTOM_ASSET_KEY'; streamManager.requestStream(streamRequest); }
אפשר להגדיר או לשנות את הפרמטרים האופציונליים הבאים לכל סשן:
-
manifestOptions: מציין אילו עיבודים של סרטונים נוצרים במניפסט של הסרטון המחובר ואת סדר העיבודים. אפשר לעיין במסמכי התיעוד בנושא אפשרויות המניפסט -
adTracking: בוחרים אם להשתמש במעקב אחרי ביצועים של מודעות בצד הלקוח או במעקב אחרי ביצועים של מודעות בצד השרת -
targetingParameters: תג מודעה של Google Ad Manager יכול להכיל פרמטרים של טירגוט שאפשר לעדכן בכל סשן. מידע נוסף זמין במאמר בנושא הגדרת פרמטרים של טירגוט באמצעות IMA SDK.
בקטע הבא מוסבר איך להגדיר את הפרמטרים האלה באמצעות IMA SDK.
פרמטרים אופציונליים ושינויים
אפשר להגדיר פרמטרים אופציונליים לכל סשן, כמו השדה manifestOptions.
השדה הזה לא זמין בהגדרות הפעילות. אפשר גם לשנות פרמטרים מסוימים שמוגדרים בהגדרות הפעילות בזמן אמת עבור סשן נתון.
לדוגמה, אם ערך ברירת המחדל של adTracking בהגדרות הפעילות הוא SERVER, אפשר לשנות את הערך ל-CLIENT ולהגדיר גם את השדה manifestOptions ב-IMA SDK על ידי הגדרת השדה videoStitcherSessionOptions באובייקט JSON.
function requestVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherLiveStreamRequest(); streamRequest.liveStreamEventId = 'LIVE_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamRequest.customAssetKey = 'CUSTOM_ASSET_KEY'; streamRequest.videoStitcherSessionOptions = { adTracking: 'CLIENT', 'manifestOptions': { 'includeRenditions': [ { 'bitrateBps': 150000, 'codecs': 'hvc1.1.4.L126.B0' }, { 'bitrateBps': 440000, 'codecs': 'hvc1.1.4.L126.B0' }, ], 'bitrateOrder': 'descending' } }; streamRequest.adTagParameters = { "key1": "value1", "key2": "value2", }; streamManager.requestStream(streamRequest); }
מידע נוסף זמין במאמר בנושא הוספת אפשרויות להפעלת סשן סטרימינג.
שימוש ישיר ב-API
כדי ליצור סשן בשידור חי באמצעות ה-API ישירות, משתמשים ב-method projects.locations.liveSessions.create.
השדה liveConfig הוא שדה החובה היחיד בגוף ה-JSON. אפשר להגדיר או לשנות את הפרמטרים האופציונליים הבאים לכל סשן בשידור חי (כמו בדוגמה הבאה של REST):
-
manifestOptions: מציין אילו עיבודים של סרטונים נוצרים במניפסט של הסרטון המחובר ואת סדר העיבודים. אפשר לעיין במסמכי התיעוד בנושא אפשרויות המניפסט -
adTracking: בוחרים מעקב אחרי ביצועים של מודעות בצד הלקוח או מעקב אחרי ביצועים של מודעות בצד השרת. הפעולה הזו מבטלת את הערך בהגדרות הפעילות של הסשן. -
targetingParameters: תג מודעה של Google Ad Manager יכול להכיל פרמטרים של טירגוט שאפשר לעדכן לכל סשן. צריך לספק מיפוי בשדה הזה (לדוגמה, כדי להחליף את מאקרו[my_key]במחרוזתmy_value, אפשר לעיין בדוגמה של REST)
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_NUMBER: מספר הפרויקט Google Cloud שמופיע בשדה מספר הפרויקט בדף הגדרות IAM -
LOCATION: המיקום שבו רוצים ליצור את הסשן. צריך להשתמש באחד מהאזורים הנתמכיםהצגת מיקומיםus-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-east1
-
LIVE_CONFIG_ID: המזהה שהוגדר על ידי המשתמש עבור התצורה הפעילה
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/liveSessions/SESSION_ID",
"playUri": "PLAY_URI",
"manifestOptions": {
"includeRenditions": [
{
"bitrateBps": 150000,
"codecs": "hvc1.1.4.L126.B0"
},
{
"bitrateBps": 440000,
"codecs": "hvc1.1.4.L126.B0"
}
],
"bitrateOrder": "DESCENDING"
},
"gamSettings": {
"streamId": "STREAM_ID"
},
"liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
"adTracking": "SERVER"
}
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C# הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API C# API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Go הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Go API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Java הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Java API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.js הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Node.js API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHP הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API PHP API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Python הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Python API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Ruby הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Ruby API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
התגובה היא אובייקט של סשן פעיל.
playUri היא כתובת ה-URL שמשמשת את מכשיר הלקוח להפעלת הזרם של המודעה ששולבה בסשן הזה של שידור חי.
Video Stitcher API יוצר מזהה סשן ייחודי לכל בקשה. התוקף של סשן יפוג אם לא תוגש בקשה ל-playUri ב-5 הדקות האחרונות.
אם אתם יוצרים סשן בשם המכשירים של הלקוחות שלכם, אתם יכולים להגדיר את הפרמטרים הבאים באמצעות כותרות HTTP:
| פרמטר | כותרת HTTP |
|---|---|
| CLIENT_IP | x-forwarded-for |
| REFERRER_URL | referer |
| USER_AGENT | user-agent |
אפשר להוסיף את הכותרות הבאות לבקשת curl הקודמת:
-H "x-forwarded-for: CLIENT_IP" \ -H "referer: REFERRER_URL" \ -H "user-agent: USER_AGENT" \
אם לא מספקים את הכותרת x-forwarded-for, Video Stitcher API משתמש בכתובת ה-IP של הלקוח בבקשות למטא-נתונים של מודעות. חשוב לדעת שכתובת ה-IP של הלקוח לא תמיד תהיה זהה לכתובת ה-IP של המכשירים של הלקוחות שלכם, אם הסשנים נוצרים בשם המכשירים של הלקוחות שלכם.
קבלת סשן
כדי לקבל את הסשן הפעיל, משתמשים בשיטה projects.locations.liveSessions.get.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_NUMBER: מספר הפרויקט Google Cloud שמופיע בשדה מספר הפרויקט בדף הגדרות IAM -
LOCATION: המיקום שבו רוצים ליצור את הסשן. צריך להשתמש באחד מהאזורים הנתמכיםהצגת מיקומיםus-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-east1
-
SESSION_ID: המזהה של הסשן החי
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/liveSessions/SESSION_ID",
"playUri": "ad-stitched-live-stream-uri",
"manifestOptions": {
"includeRenditions": [
{
"bitrateBps": 150000,
"codecs": "hvc1.1.4.L126.B0"
},
{
"bitrateBps": 440000,
"codecs": "hvc1.1.4.L126.B0"
}
],
"bitrateOrder": "DESCENDING"
},
"gamSettings": {
"streamId": "STREAM_ID",
"targetingParameters": {
"my_key": "my_value"
}
},
"liveConfig": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
"adTracking": "SERVER"
}
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C# הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API C# API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Go הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Go API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Java הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Java API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.js הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Node.js API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHP הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API PHP API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Python הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Python API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Ruby הוראות ההגדרה במאמר הפעלה מהירה של Video Stitcher API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Video Stitcher API Ruby API.
כדי לבצע אימות ב-Video Stitcher API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
דוגמה לפלייליסט עם מודעות
הדוגמה הבאה מציגה פלייליסט חי של מקור לפני שילוב מודעות:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:5
#EXTINF:10.010
segment_00005.ts
#EXTINF:10.010
segment_00006.ts
#EXT-X-DATERANGE:ID="2415919105",START-DATE="2021-06-22T08:32:00Z",DURATION=60,SCTE35-OUT=0xF...
#EXTINF:10.010
segment_00007.ts
#EXTINF:10.010
segment_00008.ts
#EXT-X-DATERANGE:ID="2415919105",START-DATE="2021-06-22T08:39:20Z",SCTE35-IN=0xF...
#EXTINF:10.010
segment_00009.ts
כך נראה פלייליסט חי של מקור לדוגמה אחרי שילוב מודעות:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:5
#EXTINF:10.010
segment_00005.ts
#EXTINF:10.010
segment_00006.ts
#EXT-X-DISCONTINUITY
#EXTINF:6.000
https://dai.google.com/.../ad-1/seg-1.ts
#EXTINF:5.000
https://dai.google.com/.../ad-1/seg-2.ts
#EXT-X-DISCONTINUITY
#EXTINF:6.000
https://dai.google.com/.../ad-2/seg-1.ts
#EXTINF:5.000
https://dai.google.com/.../ad-2/seg-2.ts
#EXT-X-DISCONTINUITY
#EXTINF:10.010
segment_00009.ts
בדיקת סשנים פעילים שהופעלו על ידי Google Ad Manager
כדי לראות פרטים על תגי מודעות בסשנים, אפשר להשתמש בכלי לניהול שידור (SAM) ב-Ad Manager כדי לראות פרטים על בקשות להצגת מודעות.