במדריך הזה מוסבר איך לשלב את 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שמשמש לבקשת השידור של הטמעת המודעות הדינמיות.קטע הקוד הזה כולל פרמטרים לדוגמה לשידורים חיים ולשידורי VOD ב-HLS וב-DASH. כדי להגדיר איזה שידור יופעל, מעדכנים את המשתנה
CONTENT_TYPE.יוצרים שיטת עזר של
createSampleVideoPlayerCallback()כדי לטפל ביצירת מופע של ממשקSampleVideoPlayerCallbackשמרחיב אתVideoStreamPlayer.VideoStreamPlayerCallback.כדי לעבוד עם DAI, הנגן צריך להעביר אירועי ID3 ל-IMA DAI SDK. ה-method
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.