באמצעות Video Stitcher API, אתם יוצרים סשן של סרטון על פי דרישה (VOD) בכל פעם שאתם מטמיעים באופן דינמי מודעות שמוצגות על ידי Google Ad Manager לפני שהן מועברות למכשירי לקוח. כשיוצרים סשן, התגובה כוללת את כתובת ה-URL של ההפעלה ומידע על המודעות שהוספתם לסרטון.
בדף הזה מוסבר איך ליצור ולנהל סשן VOD שמופעל על ידי Google Ad Manager. למידע על הפעלות של סרטונים על פי דרישה שלא משתמשות ב-Google Ad Manager, אפשר לעיין במאמר בנושא ניהול הפעלה של סרטון על פי דרישה.
לפני שמתחילים
- איך יוצרים הגדרות VOD כדי להשתמש בשילוב עם Google Ad Manager, צריך לוודא שהאובייקט
gamVodConfigמוגדר.
יצירת סשן
אפשר ליצור סשן VOD באמצעות IMA SDK (שמפעיל את Video Stitcher API) או באמצעות Video Stitcher API ישירות.
שימוש ב-IMA SDK
אם אתם משלבים עם IMA SDK, IMA SDK יוצר את סשן ה-VOD.
function requestVodVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest(); streamRequest.vodConfigId = 'VOD_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamManager.requestStream(streamRequest); }
בסשנים של VOD שמופעלים על ידי Google Ad Manager צריך להשתמש במעקב אחרי ביצועים של מודעות בצד הלקוח.
אפשר להגדיר או לשנות את הפרמטרים האופציונליים הבאים לכל סשן:
-
manifestOptions: מציין אילו עיבודים של סרטונים נוצרים במניפסט של הסרטון המחובר ואת סדר העיבודים. אפשר לעיין במסמכי התיעוד בנושא אפשרויות המניפסט -
targetingParameters: תג מודעה של Google Ad Manager יכול להכיל פרמטרים של טירגוט שאפשר לעדכן בכל סשן. מידע נוסף זמין במאמר בנושא הגדרת פרמטרים של טירגוט באמצעות IMA SDK.
בקטע הבא מוסבר איך להגדיר את הפרמטרים האלה באמצעות IMA SDK.
פרמטרים אופציונליים ושינויים
function requestVodVideoStitcherStream() { const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest(); streamRequest.vodConfigId = 'VOD_CONFIG_ID'; streamRequest.region = 'LOCATION'; streamRequest.projectNumber = 'PROJECT_NUMBER'; streamRequest.oAuthToken = 'OAUTH_TOKEN'; streamRequest.networkCode = 'NETWORK_CODE'; streamRequest.videoStitcherSessionOptions = { 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
כדי ליצור סשן לסרטון עם מודעות שמשולבות בו, משתמשים בשיטה projects.locations.vodSessions.create.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_NUMBER: מספר הפרויקט Google Cloud שמופיע בשדה מספר הפרויקט בדף הגדרות IAM -
LOCATION: המיקום שבו רוצים ליצור את הסשן. צריך להשתמש באחד מהאזורים הנתמכיםהצגת מיקומיםus-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-east1
-
VOD_CONFIG_ID: המזהה שמוגדר על ידי המשתמש להגדרת ה-VOD
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID",
"interstitials": {
"sessionContent": {
"duration": "60s"
}
},
"playUri": "PLAY_URI", # This is the ad-stitched VOD URI
"sourceUri": "VOD_URI",
"adTagUri": "AD_TAG_URI",
"assetId": "ASSET_ID",
"adTracking": "SERVER",
"vodConfig": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID"
}
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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Video Stitcher API יוצר מזהה סשן ייחודי לכל בקשה. התוקף של סשן יפוג אחרי 4 שעות.
התגובה אמורה להיות דומה לתגובה הבאה:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID",
"interstitials": {
"adBreaks": [
{
"progressEvents": [
{
"timeOffset": "0s",
"events": [
{
"type": "IMPRESSION",
"uri": "https://securepubads.g.doubleclick.net/pcs/view..."
},
{
"type": "START",
"uri": "https://pubads.g.doubleclick.net/pagead/interaction/..."
},
...
]
},
...
],
"ads": [
{
"duration": "10s",
"activityEvents": [
{
"type": "ERROR",
"uri": "https://pubads.g.doubleclick.net/pagead/interaction/..."
},
{
"type": "CLICK_THROUGH",
"uri": "https://pubads.g.doubleclick.net/pcs/click...",
"id": "GDFP"
},
...
]
}
],
"endTimeOffset": "10s",
"startTimeOffset": "0s"
}
],
"sessionContent": {
"duration": "70s"
}
},
"playUri": "PLAY_URI",
"sourceUri": "VOD_URI",
"adTagUri": "AD_TAG_URI",
"assetId": "ASSET_ID",
"adTracking": "SERVER",
"vodConfig": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID"
}
התגובה היא אובייקט VodSession שמכיל את השדות הבאים:
- שדה
nameשמציג את ה-VOD SESSION_ID. אפשר להשתמש במזהה הזה כדי לקבל את הסשן. - שדה
interstitialsשמכיל מטא-נתונים על המודעות שהוכנסו (ראו מושגים שקשורים למטא-נתונים של מודעות). - שדה
playUriשמציג את כתובת ה-URL שבה מכשיר הלקוח משתמש כדי להפעיל את נכס הווידאו עם התנאים.
אם אתם יוצרים סשן בשם המכשירים של הלקוחות שלכם, צריך להגדיר את הפרמטרים הבאים באמצעות כותרות HTTP:
| פרמטר | כותרת HTTP |
|---|---|
| CLIENT_IP | x-user-ip |
| REFERRER_URL | referer |
| USER_AGENT | user-agent |
אפשר להוסיף את הכותרות הבאות לבקשת curl הקודמת:
-H "x-user-ip: CLIENT_IP" \ -H "referer: REFERRER_URL" \ -H "user-agent: USER_AGENT" \
קבלת סשן
כדי לקבל את הסשן של סרטון עם מודעות שנתפרו לתוכו, משתמשים ב-method projects.locations.vodSessions.get.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_NUMBER: מספר הפרויקט Google Cloud שמופיע בשדה מספר הפרויקט בדף הגדרות IAM -
LOCATION: המיקום של הסשן. צריך להשתמש באחד מהאזורים הנתמכיםהצגת מיקומיםus-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-east1
-
SESSION_ID: המזהה של סשן ה-VOD
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID",
"interstitials": {
"adBreaks": [
{
"progressEvents": [
{
"timeOffset": "0s",
"events": [
{
"type": "IMPRESSION",
"uri": "https://securepubads.g.doubleclick.net/pcs/view..."
},
{
"type": "START",
"uri": "https://pubads.g.doubleclick.net/pagead/interaction/..."
},
...
]
},
...
],
"ads": [
{
"duration": "10s",
"activityEvents": [
{
"type": "ERROR",
"uri": "https://pubads.g.doubleclick.net/pagead/interaction/..."
},
{
"type": "CLICK_THROUGH",
"uri": "https://pubads.g.doubleclick.net/pcs/click...",
"id": "GDFP"
},
...
]
}
],
"endTimeOffset": "10s",
"startTimeOffset": "0s"
}
],
"sessionContent": {
"duration": "70s"
}
},
"playUri": "PLAY_URI",
"sourceUri": "VOD_URI",
"adTagUri": "AD_TAG_URI",
"assetId": "ASSET_ID",
"adTracking": "SERVER",
"vodConfig": "projects/PROJECT_NUMBER/locations/LOCATION/vodConfigs/VOD_CONFIG_ID"
}
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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
דוגמה לפלייליסט עם מודעות
הדוגמה הבאה מציגה פלייליסט של VOD ממקור מסוים לפני שילוב המודעות:
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:4
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.000,
segment_01.ts
#EXTINF:6.000,
segment_02.ts
#EXTINF:6.000,
segment_03.ts
#EXTINF:6.000,
segment_04.ts
#EXTINF:6.000,
segment_05.ts
#EXTINF:6.000,
segment_06.ts
#EXT-X-ENDLIST
בדוגמה הבאה מוצג פלייליסט של VOD אחרי ששולבו בו מודעות לפני הסרטון (pre-roll), באמצע הסרטון (mid-roll) ובסוף הסרטון (post-roll):
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:6
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-DISCONTINUITY
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:1.990,
https://redirector.googlevideo.com/videoplayback/...
#EXT-X-DISCONTINUITY
#EXTINF:6.000,
segment_01.ts
#EXTINF:6.000,
segment_02.ts
#EXT-X-DISCONTINUITY
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:0.990,
https://redirector.googlevideo.com/videoplayback/...
#EXT-X-DISCONTINUITY
#EXTINF:6.000,
segment_03.ts
#EXTINF:6.000,
segment_04.ts
#EXTINF:6.000,
segment_05.ts
#EXTINF:6.000,
segment_06.ts
#EXT-X-DISCONTINUITY
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:4.000,
https://redirector.googlevideo.com/videoplayback/...
#EXTINF:1.990,
https://redirector.googlevideo.com/videoplayback/...
#EXT-X-ENDLIST
טיפול במעקב אחרי מודעות בצד הלקוח
ערכת IMA SDK תטפל באופן אוטומטי במעקב אחרי ביצועים של מודעות בצד הלקוח.
בדיקת סשנים של תוכן וידאו על פי דרישה (VOD) שהופעלו על ידי Google Ad Manager
כדי לבדוק את הסשנים של VOD ואת פרטי תג המודעה של הסשנים האלה, משתמשים בכלי לניהול שידור (SAM) ב-Ad Manager.