במדריך הזה מוסבר איך לשלב את IMA DAI SDK באפליקציה פשוטה של נגן וידאו. אם אתם רוצים לראות או לעקוב אחרי שילוב לדוגמה, הורידו את BasicExample מ-GitHub.
סקירה כללית על IMA DAI
הטמעת IMA DAI כוללת ארבעה רכיבי SDK עיקריים, כפי שמוצג במדריך הזה:
StreamDisplayContainer: אובייקט מאגר שנמצא מעל הרכיב של הפעלת הווידאו ומכיל את רכיבי ממשק המשתמש של המודעה.AdsLoader: אובייקט שמבקש שידורים ומטפל באירועים שמופעלים על ידי אובייקטים של תגובה לבקשת שידור. צריך ליצור מופע של טוען מודעות אחד בלבד, שאפשר לעשות בו שימוש חוזר לאורך כל חיי האפליקציה.StreamRequest: אובייקט שמגדיר בקשה לשידור. בקשות לשידור יכולות להיות לווידאו על פי דרישה (VOD) או לשידורים חיים. בבקשות לשידור חי מצוין מפתח נכס, ובבקשות ל-VOD מצוינים מזהה CMS ומזהה סרטון. שני סוגי הבקשות יכולים לכלול מפתח API שנדרש כדי לגשת לשידורים שצוינו, וקוד רשת של Google Ad Manager כדי ש-IMA SDK יטפל במזהי מודעות כפי שצוין בהגדרות של Google Ad Manager.StreamManager: אובייקט שמטפל בסטרימינג של הטמעת מודעות דינמיות ובאינטראקציות עם הקצה העורפי של DAI. מנהל השידור גם מטפל בפינגים למעקב ומעביר אירועים של שידורים ומודעות לבעל האפליקציה.
דרישות מוקדמות
- Android Studio
- אפליקציה לדוגמה של נגן וידאו לשילוב ה-SDK
הורדה והפעלה של האפליקציה לדוגמה של נגן הווידאו
האפליקציה לדוגמה כוללת נגן וידאו פעיל שמפעיל סרטוני HLS. אפשר להשתמש בזה כנקודת התחלה לשילוב יכולות ה-DAI של IMA DAI SDK.
מורידים את האפליקציה לדוגמה של נגן הווידאו ומחלצים אותה.
מפעילים את Android Studio ובוחרים באפשרות Open an existing Android Studio project (פתיחת פרויקט קיים ב-Android Studio). אם Android Studio כבר פועל, בוחרים באפשרות File > New > Import Project (קובץ > חדש > ייבוא פרויקט). ואז בוחרים באפשרות
SampleVideoPlayer/build.gradle.מריצים סנכרון של Gradle על ידי בחירה באפשרות Tools > Android > Sync Project with Gradle Files (כלים > Android > סנכרון הפרויקט עם קובצי Gradle).
מוודאים שאפליקציית הנגן עוברת הידור ופועלת במכשיר Android פיזי או במכשיר Android וירטואלי (AVD) באמצעות Run > Run 'app'. זה נורמלי שלוקח כמה רגעים עד שהווידאו נטען ומתחיל לפעול.
בדיקת נגן הווידאו לדוגמה
נגן הווידאו לדוגמה עדיין לא מכיל קוד שילוב של IMA DAI SDK. האפליקציה לדוגמה מורכבת משני חלקים עיקריים:
samplevideoplayer/SampleVideoPlayer.java: נגן HLS שמבוסס על ExoPlayer ומשמש כבסיס לשילוב של IMA DAI.
videoplayerapp/MyActivity.java: הפעילות הזו יוצרת את נגן הווידאו ומעבירה לוContextו-media3.ui.PlayerView.
הוספת IMA DAI SDK לאפליקציית הנגן
צריך גם לכלול הפניה ל-IMA DAI SDK. ב-Android Studio, מוסיפים את הקוד הבא לקובץ build.gradle ברמת האפליקציה, שנמצא ב-app/build.gradle. כדי להשתמש ב-IMA SDK, צריך להפעיל את תהליך ההסרה של סוכר תחבירי בספרייה. לשם כך, צריך להגדיר את coreLibraryDesugaringEnabled true ולהוסיף את 'com.android.tools:desugar_jdk_libs' כיחסי תלות בקובץ build.gradle. פרטים נוספים זמינים במאמר ממשקי API של Java 11 ואילך שזמינים באמצעות הסרת סוכר תחבירי עם מפרט nio.
שילוב של IMA DAI SDK
יוצרים מחלקה חדשה בשם
SampleAdsWrapperבחבילהvideoplayerapp(ב-app/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/) כדי לעטוף אתSampleVideoPlayerהקיימת ולהוסיף לוגיקה שמטמיעה את IMA DAI. כדי לעשות את זה, קודם צריך ליצורAdsLoaderשמשמש לבקשת השידור של DAI.קטע הקוד הזה כולל פרמטרים לדוגמה ל-HLS ול-DASH, לשידורים חיים ולשידורי וידאו על פי דרישה (VOD). כדי להגדיר איזה שידור יופעל, מעדכנים את המשתנה
CONTENT_TYPE.יוצרים שיטת עזר של
createSampleVideoPlayerCallback()כדי לטפל ביצירת מופע של ממשקSampleVideoPlayerCallbackשמרחיב אתVideoStreamPlayer.VideoStreamPlayerCallback.כדי לעבוד עם DAI, הנגן צריך להעביר אירועי ID3 ל-IMA DAI SDK. השיטה
callback.onUserTextReceived()מבצעת את הפעולה הזו, בקוד לדוגמה הבא.מוסיפים שיטת
buildStreamRequest()כדי ליצור את ה-SteamRequest. השיטה הזו עוברת בין מקורות שונים בהתאם לאופן שבו מגדירים את המשתנהCONTENT_TYPE. השידור שמוגדר כברירת מחדל במדריך הזה הוא שידור VOD HLS לדוגמה של IMA.צריך גם
VideoStreamPlayerכדי להפעיל את הסטרימינג, אז מוסיפים את השיטהcreateVideoStreamPlayer(), שיוצרת מחלקה אנונימית שמטמיעה אתVideoStreamPlayer.מטמיעים את המאזינים הנדרשים ומוסיפים תמיכה בטיפול בשגיאות.
שימו לב להטמעה של
AdErrorListener, כי היא קוראת לכתובת URL לגיבוי אם המודעות לא מופעלות. מכיוון שהתוכן והמודעות נמצאים בסטרימינג אחד, צריך להיות מוכנים להפעיל סטרימינג חלופי אם מתרחשת שגיאה בסטרימינג של DAI.מוסיפים קוד לרישום ביומן.
משנים את
MyActivityב-videoplayerappכדי ליצור מופע ולקרוא ל-SampleAdsWrapper. בנוסף, צריך לשלוח קריאה ל-ImaSdkFactory.initialize()כאן באמצעות שיטת עזר כדי ליצור מכונה שלImaSdkSettings.מוסיפים את שיטת העזר
getImaSdkSettings()כדי ליצור מופע שלImaSdkSettings.משנים את קובץ הפריסה של הפעילות
activity_my.xmlכדי להוסיף רכיבים בממשק המשתמש לצורך רישום ביומן.
מזל טוב! עכשיו אתם יכולים לבקש ולהציג מודעות וידאו באפליקציה ל-Android. כדי לשפר את ההטמעה, כדאי לעיין בסימניות, בSnapback ובמאמרי העזרה של ה-API.
פתרון בעיות
אם נתקלתם בבעיות בהפעלת מודעת וידאו, נסו להוריד את BasicExample המלא. אם הוא פועל כמו שצריך ב-BasicExample, כנראה שיש בעיה בקוד השילוב של IMA באפליקציה.
אם הבעיות נמשכות, אפשר להיכנס לפורום של IMA SDK.