במפרט של מעברונים ב-HLS מוצגת דרך גמישה לתזמון ולהוספה של מודעות לסטרימינג של וידאו או אודיו. בגישה בצד הלקוח, האפליקציה שלכם מקבלת שליטה מלאה על מתי לבקש הפסקות פרסום ולהפעיל אותן, על ידי יצירת הסיווג AVPlayerInterstitialEvent. הגישה הזו לא דורשת את התגים EXT-X-DATERANGE במניפסטים של פיד התוכן. בעזרת מודעות מעברון HLS בצד הלקוח אפשר להוסיף מודעות באופן דינמי לכל תוכן, בלי צורך לשנות את מניפסט הסטרימינג או את קובצי המדיה.
במדריך הזה מוסבר איך להטמיע את ערכת פיתוח התוכנה (SDK) של מודעות מדיה אינטראקטיביות (IMA) באפליקציית נגן וידאו שיוצרת סשן של שידור חי עם הטמעה של מודעות בהנחיית השרת (SGAI) ומתזמנת מודעות מעבריות בצד הלקוח. מידע נוסף זמין במאמר DAI בהנחיית השרת.
דרישות מוקדמות
לפני שמתחילים, צריך:
פרויקט חדש ב-Xcode, עם
Storyboardלממשק המשתמש. מידע נוסף זמין במאמר יצירת פרויקט Xcode לאפליקציה.Google IMA SDK. מידע נוסף זמין במאמר בנושא הגדרת IMA SDK ל-DAI.
הפרמטרים הבאים של בקשת שידור חי ל-DAI:
-
NETWORK_CODE: קוד הרשת שלכם ב-Google Ad Manager. CUSTOM_ASSET_KEY: מחרוזת מותאמת אישית שמזהה את אירוע השידור החי של DAI. סוג ה-DAI של מניפסט ההצגה של הפוד חייב להיות מוגדר לאירוע השידור החי.
-
הגדרת סטוריבורד
בתוך הקובץ iPhone.storyboard, מבצעים את הפעולות הבאות:
- יוצרים אובייקט
UIViewכקונטיינר לנגן הווידאו ולממשק המשתמש של המודעה. - יוצרים נכס
adUIViewמסוגViewControllerכדי להתחבר לאובייקטUIView. - באובייקט
adUIView, יוצריםUIButtonשישמש כלחצן הפעלה. - יוצרים מאפיין
playButtonשל המחלקהViewControllerכדי להתחבר לאובייקטUIButtonופונקציהonPlayButtonTouchלטיפול בהקשות של המשתמשים.
אתחול של כלי לטעינת מודעות
באירוע viewDidLoad של בקר התצוגה הראשי, מבצעים את הפעולות הבאות:
- הגדרת נגן וידאו באמצעות מחלקות
AVPlayerו-AVPlayerLayer. - יצירת אובייקטים של
IMAAdDisplayContainerושלIMAAVPlayerVideoDisplay. הקונטיינר של הצגת המודעות מציין אתadUIViewעבור IMA DAI SDK כדי להוסיף את תצוגות המשנה של ממשק המשתמש של המודעות. אובייקט התצוגה של הסרטון משמש כגשר בין הלוגיקה של המודעות ב-IMA DAI SDK לבין מערכת ההפעלה של AVFoundation, ועוקב אחרי הפעלת מודעות הווידאו. - מאתחלים את האובייקט
IMAAdsLoaderעם הגדרות של הפעלת מודעות ולוקליזציה של ממשק המשתמש של המודעות.
בדוגמה הבאה, טוען המודעות מאותחל עם אובייקט IMASettings ריק:
שליחת בקשה לסטרימינג
כדי לבקש מודעות לשידור תוכן, צריך ליצור אובייקט IMAPodStreamRequest ולהעביר אותו למופע IMAAdsLoader. אופציונלי, מגדירים את המאפיין adTagParameters כדי לספק אפשרויות של DAI ופרמטרים של טירגוט לסטרימינג.
בדוגמה הזו, מתבצעת קריאה למתודה loadAdStream באירוע viewDidAppear:
באפליקציה בסביבת הייצור, קוראים לשיטה loadAdStream אחרי שהמשתמש בוחר בזרם תוכן.
טיפול באירועי טעינה של סטרימינג
מטמיעים את פרוטוקול IMAAdsLoaderDelegate כדי לטפל בהצלחה או בכישלון של בקשת הסטרימינג:
- אם הפעולה בוצעה ללא שגיאות, תקבלו אובייקט
IMAAdsLoadedDataשמכיל אתIMAStreamManager. אחסון הערךstreamManager.streamIdבסשן ה-DAI הנוכחי. - אם הפעולה נכשלת, השגיאה נרשמת ביומן.
בדוגמה הבאה מוצג טיפול באירוע stream loaded ורישום ביומן של האירוע stream failed to load:
תזמון של הוספת מודעות
כדי לתזמן הפסקה פרסומית, צריך ליצור אובייקט AVPlayerInterstitialEvent. מגדירים את המאפיין templateItems של אובייקט האירוע למערך של אובייקטים AVPlayerItem, כאשר כל אובייקט פריט מכיל כתובת URL של מניפסט של בלוק פרסומי.
כדי ליצור כתובת URL של מניפסט של בלוק מודעות, פועלים לפי ההוראות במאמר שיטה: מניפסט של בלוק מודעות ב-HLS.
לצורך הדגמה, בדוגמה הבאה נוצר מחרוזת של מזהה פוד באמצעות השעה הנוכחית של השידור החי של התוכן. הפונקציה generatePodIdentifier מחזירה את מזהה ה-pod בתור ad_break_id/mid-roll-{minute}.
באפליקציה שלכם בייצור, מאחזרים את מזהה ה-pod ממקור שמספק ערכים ייחודיים לכל הפסקה לפרסום, שמסונכרנים לכל הצופים בשידור החי.
בדוגמה הבאה מתוזמנת הפסקה לפרסום שתתחיל תוך שתי הדקות הבאות אחרי שהמשתמש ילחץ על לחצן ההפעלה:
השיטה scheduleAdInsertion מחשבת את זמן ההתחלה של הפסקת הפרסום ויוצרת כתובת URL של מניפסט של בלוק פרסום. אפשר להשתמש בכתובת ה-URL הזו כדי ליצור אובייקט AVPlayerInterstitialEvent.
אפשר להשתמש במבנה AVPlayerInterstitialEvent.Restrictions כדי להגביל את האפשרות של המשתמשים לדלג על המודעה או להריץ אותה אחורה במהלך ההפעלה.
טיפול באירועים שקשורים למודעות
כדי לטפל באירועים שקשורים למודעות, צריך להטמיע את הפרוטוקול IMAStreamManagerDelegate. הגישה הזו מאפשרת לכם לעקוב אחרי ההתחלה והסיום של ההפסקות למודעות, ולקבל מידע על מודעות ספציפיות.
מריצים את האפליקציה. אם הפעולה מצליחה, אפשר לשלוח בקשה למודעות מעברון ולהפעיל אותן באמצעות סטרימינג של קובץ מניפסט להצגת מודעות בבלוק.