ב-ads_manager.js, מגדירים מחלקת wrapper ל-StreamManager של IMA SDK שמבצעת בקשות לסטרימינג, מקבלת את מניפסט רצף המודעות, מאזינה לאירועי סטרימינג של IMA ומעבירה אירועי emsg ל-IMA SDK.
באפליקציית הדוגמה של IMA HbbTV, ads_manager.js, מוגדרות השיטות הבאות:
requestStream()onStreamEvent()onEmsgEvent()loadAdPodManifest()
הפעלת Ad Manager
מאתחלים את המחלקה של הכלי לניהול מודעות ומגדירים מאזינים לאירועים של IMA Stream. בשיחה הזו, מגדירים את הגורם המטפל באירוע emsg באמצעות השיטה VideoPlayer.setEmsgEventHandler().
שליחת בקשה להצגת רצף מודעות
יוצרים את השיטה AdManager.requestStream() כדי ליצור אובייקט PodStreamRequest באמצעות קוד הרשת שלכם ב-Google Ad Manager ומפתח הנכס המותאם אישית של הסטרימינג. כדי לבדוק את אפליקציית HbbTV, משתמשים בזרם לדוגמה של IMA DASH pod serving עם הפרמטרים הבאים של הזרם:
- הקוד של הרשת:
'21775744923' - מפתח נכס מותאם אישית:
'hbbtv-dash'
האזנה לאירועים של שידור מודעות
יוצרים את השיטה AdManager.onStreamEvent() לטיפול בתגובה של האפליקציה לאירועי הסטרימינג של IMA: STREAM_INITIALIZED, AD_BREAK_STARTED ו-AD_BREAK_ENDED.
טיפול במטא-נתונים של שידורי מודעות
כדי להעביר את פרטי האירוע emsg אל IMA, יוצרים את השיטה AdManager.onEmsgEvent() באמצעות השיטה StreamManager.processMetadata(). הקריאה לשיטה הזו מתבצעת על ידי המחלקה של נגן הווידאו באמצעות השיטה VideoPlayer.setEmsgEventHandler().
טעינת המניפסט של רצף המודעות
יוצרים את השיטה AdManager.loadAdPodManifest() כדי לטעון מראש את מניפסט חבילת המודעות באמצעות נגן הווידאו. יוצרים כתובת URL מאומתת של מניפסט באמצעות המבנה שמופיע בשיטה: מניפסט של DASH pod.
אפליקציית הדוגמה של HbbTV משתמשת בערך adBreakId ייחודי שנוצר באופן אקראי. באפליקציות בייצור, הערך של adBreakId הוא מחרוזת אלפאנומרית, לדוגמה ab-001, שגדלה באחד בכל הפסקה לפרסומות. מוודאים שערך המאפיין adBreakId זהה לכל הצופים בהפסקה למודעה. כדי לקבל ערך של adBreakId, מומלץ להשתמש ב-DAI Ad Break API.
בסביבת ייצור, צריך לכלול את הערך adBreakId ואת הערך podDuration באירוע AD_BREAK_ANNOUNCE של הזרמת HbbTV.
לאחר מכן, יוצרים את המחלקה הראשית של האפליקציה עבור אפליקציית HbbTV שמתקשרת עם שידור HbbTV.