הפעלת שידורים חיים שנרשמו באמצעות Google Cloud Video Stitcher API
במדריך הזה מוסבר איך להשתמש ב-IMA DAI SDK ל-Android כדי לשלוח בקשה לשידור חי של אירוע שנרשם ב-Google Cloud Video Stitcher API ולהפעיל אותו, ואיך להוסיף הפסקה למודעה במהלך ההפעלה.
המדריך הזה מרחיב את הדוגמה הבסיסית מהמדריך למתחילים בנושא IMA DAI.
למידע על שילוב עם פלטפורמות אחרות או על שימוש ב-IMA SDKs בצד הלקוח, אפשר לעיין במאמר בנושא Interactive Media Ads SDKs.
כדי לצפות בדוגמה של שילוב שהושלם או לעקוב אחריו, אפשר להוריד את הדוגמה של Cloud Video Stitcher.
הגדרת פרויקט ב-Google Cloud
מזינים את המשתנים הבאים לשימוש ב-IMA SDK:
- מיקום
- האזור ב-Google Cloud שבו נוצרת ההגדרה הפעילה:
LOCATION - מספר הפרויקט
- מספר הפרויקט ב-Google Cloud שבו נעשה שימוש ב-Video Stitcher API:
PROJECT_NUMBER - טוקן OAuth
אסימון OAuth לטווח קצר של חשבון שירות עם תפקיד המשתמש Video Stitcher:
OAUTH_TOKEN
מידע נוסף על יצירת פרטי כניסה לטווח קצר לחשבונות שירות אפשר לעשות שימוש חוזר בטוקן OAuth בכמה בקשות, כל עוד תוקף הטוקן לא פג.
- הקוד של הרשת
קוד הרשת ב-Ad Manager לבקשת הצגת מודעות:
NETWORK_CODE
- מזהה ההגדרה של השידור החי
- מזהה ההגדרה של השידור החי שציינתם כשייצרתם את האירוע בשידור חי:
LIVE_CONFIG_ID - מפתח של נכס מותאם אישית
- מפתח הנכס המותאם אישית של Ad Manager שנוצר במהלך יצירת הגדרה לאירוע בשידור חי באמצעות Video Stitcher API:
CUSTOM_ASSET_KEY
הורדת הדוגמה הבסיסית
מורידים ומריצים את IMA Android DAI Basic Example. לוחצים על לחצן ההפעלה בנגן הווידאו כדי להתחיל את הסרט הקצר Tears of Steel, שכולל הפסקות לפרסומות כל 30 שניות.
בקשה לשידור חי
כדי להחליף את זרם הדוגמה בשידור החי שלכם, צריך להשתמש בתג ImaSdkFactory.createVideoStitcherLiveStreamRequest() כדי ליצור סשן של הצגת מודעות ב-Google Ad Manager. אתם יכולים להשתמש בממשק המשתמש של Google Ad Manager כדי לאתר את סשנים של DAI שנוצרו למטרות מעקב וניפוי באגים.
בדוגמה הקיימת, יש משפטי תנאי לבקשת סטרימינג של תוכן על פי דרישה (VOD) או של שידור חי. כדי שהאפליקציה תפעל עם Google Cloud Video Stitcher API, צריך להוסיף נתיב חדש להחזרת StreamRequest שנוצר באמצעות ImaSdkFactory.createVideoStitcherLiveStreamRequest().
הנה דוגמה:
videoplayerapp/SampleAdsWrapper.java
private sdkFactory ImaSdkFactory;
...
private enum ContentType {
LIVE_HLS,
LIVE_DASH,
// Add a Live HLS Google Cloud type.
LIVE_HLS_GOOGLE_CLOUD,
VOD_HLS,
VOD_DASH,
}
// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
ContentType.LIVE_HLS_GOOGLE_CLOUD;
...
@Nullable
private StreamRequest buildStreamRequest() {
StreamRequest request;
switch (CONTENT_TYPE) {
...
case LIVE_HLS_GOOGLE_CLOUD:
// Live HLS stream generated by the Google Cloud Video Stitcher API.
request = sdkFactory.createVideoStitcherLiveStreamRequest(
"NETWORK_CODE",
"CUSTOM_ASSET_KEY",
"LIVE_CONFIG_ID",
"LOCATION",
"PROJECT_NUMBER",
"OAUTH_TOKEN"
);
request.setFormat(StreamFormat.HLS);
return request;
}
// Content type not selected.
return null;
}
...
טוענים מחדש את האפליקציה כדי לבקש את השידור החי המותאם אישית ולהפעיל אותו.
(אופציונלי) הוספת אפשרויות של סשן סטרימינג
כדי להתאים אישית את בקשת הסטרימינג, מוסיפים אפשרויות הפעלה כדי לשנות את הגדרת ברירת המחדל של Cloud Video Stitcher API באמצעות StreamRequest.setVideoStitcherSessionOptions().
אם תספקו אפשרות לא מזוהה, Cloud Video Stitcher API יגיב עם שגיאת HTTP 400. אפשר לקבל עזרה במדריך לפתרון בעיות.
לדוגמה, אפשר לשנות את אפשרויות המניפסט באמצעות קטע הקוד הבא, ששולח בקשה לשני מניפסטים של סטרימינג עם רכיבי עיבוד שמוזמנים משיעור העברת הנתונים הנמוך ביותר לגבוה ביותר.
public void requestAndPlayAds() {
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
StreamRequest streamRequest = buildStreamRequest();
// The following session options are examples. Use session options
// that are compatible with your video stream.
Map<String, Object> sessionOptions = Map.of(
"manifestOptions", Map.of(
"bitrateOrder", "ascending"
)
);
/* sessionOptions JSON structure.
* {
* "manifestOptions": {
* "bitrateOrder": "ascending"
* }
* };
*/
streamRequest.setVideoStitcherSessionOptions(sessionOptions);
adsLoader.requestStream(streamRequest);
}
הוספת הפסקה למודעות
ממשק Google Cloud Video Stitcher API מטמיע מודעות שאוחזרו מתג המודעה עבור כל הפסקה למודעה. הפסקות הפרסום מסומנות במניפסט באמצעות סמני מודעות. סמני המודעות מוכנסים על ידי המקודד של השידור החי.
אם אתם משתמשים בשידור חי משלכם, אתם צריכים להוסיף את סמן המודעה. מידע נוסף על סמני המודעות הנתמכים בפורמטים HLS ו-DASH זמין במאמר בנושא סמני מודעות.
אם יצרתם שידור חי באמצעות Google Cloud Livestream API, הוסיפו אירוע של הפסקה למודעה בערוץ.
המודעה מוצגת מיד אחרי שההפסקה למודעות מוכנסת.
הסרת המשאבים
אחרי שסיימתם לארח שידור חי באמצעות Google Cloud Video Stitcher API ולבקש אותו באמצעות IMA DAI SDK ל-Android, חשוב לנקות את כל משאבי ההצגה.
כדי להסיר משאבים ונכסים מיותרים, פועלים לפי המדריך בנושא מחיקת משאבים של שידורים חיים.