ערכות IMA SDK מאפשרות לכם לשלב בקלות מודעות מולטימדיה באתרים ובאפליקציות שלכם. ערכות IMA SDK יכולות לבקש מודעות מכל שרת מודעות שתואם ל-VAST ולנהל את הפעלת המודעות באפליקציות שלכם. בעזרת ערכות IMA DAI SDK, אפליקציות בקשה לשידור וידאו של מודעה ותוכן – VOD או תוכן בשידור חי. לאחר מכן ה-SDK מחזיר סטרימינג משולב של מודעות וידאו, כך שלא יהיה צורך לנהל את המעבר בין מודעות וידאו בתוכן בתוך האפליקציה.
איך בוחרים את פתרון DAI שמעניין אתכם
הטמעת מודעות דינמיות (DAI) ב-Pod
ערכות IMA SDK מאפשרות לכם לשלב בקלות מודעות מולטימדיה באתרים ובאפליקציות שלכם. ערכות IMA SDK יכולות לבקש מודעות מכל שרת מודעות שתואם ל-VAST ולנהל את הפעלת המודעות באפליקציות שלכם. בעזרת ערכות IMA DAI SDK, אפליקציות בקשה לשידור וידאו של מודעה ותוכן – VOD או תוכן בשידור חי. לאחר מכן ה-SDK מחזיר סטרימינג משולב של מודעות וידאו, כך שלא יהיה צורך לנהל את המעבר בין מודעות וידאו בתוכן בתוך האפליקציה.
המדריך הזה מדגים איך להפעיל שידור DAI Pod מסוג 'הצגת פודקאסטים ב-DAI' באמצעות IMA DAI. SDK עם נגן וידאו פשוט להפעלה של שידור חי ו-VOD. אם רוצים לצפייה או לעקוב אחרי שילוב לדוגמה שהושלם, הורידו את דוגמה להצגת pod.
סקירה כללית בנושא הצגת מודעות Pod של IMA DAI
StreamRequest
: אובייקט שמגדיר בקשה של מקור נתונים שרתי הפרסום של Google. יש ליצור באמצעות אחד מהשנייםImaSdkFactory.createPodStreamRequest()
אוImaSdkFactory.createPodVodStreamRequest()
כדי לאפשר הצגת Pod. לשיטות האלה נדרש קוד רשת. הפרמטרcreatePodStreamRequest
מחייב גם מפתח נכס מותאם אישית, API key אופציונלי. שניהם כוללים פרמטרים אופציונליים אחרים.StreamManager
: אובייקט שמטפל בתקשורת בין הסטרימינג של הווידאו ו-IMA DAI SDK, כמו הפעלת פינגים של מעקב. להעביר אירועים בסטרימינג לבעל התוכן הדיגיטלי.
דרישות מוקדמות
אפליקציה ל-Android שכבר הוגדרה עם IMA DAI SDK להפעלת שידורי וידאו עם מודעות DAI. אם עדיין אין לך אפליקציה כזו, מומלץ להשתמש הטמעת מודעות דינמיות ב-Android דוגמה בסיסית בתור לנקודת ההתחלה. ה- BasicExample כולל את ה-codebase שמוזכר במדריך הזה.
חשוב שהאפליקציה תשלח אירועי ID3 באמצעות
VideoStreamPlayerCallback.onUserTextReceived()
כדי ש-IMA DAI יפעל. אפשר לעיין בדוגמה לקטע קוד של DAI בשירות מלא.
הגדרת משתני ההצגה של pod
כל השינויים הנדרשים להצגת Pod מתבצעים ב-SampleAdsWrapper.java. השלב הראשון הוא לעדכן את המשתנים הקבועים.
הנה קבועי הבקשות של רצף המודעות שיש להוסיף:
STREAM_URL
: משמש רק לשידורים חיים – כתובת ה-URL של שידור הווידאו סופקה על ידי הכלי לטיפול במניפסט או שותף צד שלישי באמצעות הצגת Pod. היא צריכה תצטרכו להזין את מזהה מקור הנתונים שסופק על ידי IMA DAI SDK, לפני לשלוח בקשה. במקרה הזה, כתובת ה-URL של השידור כוללת placeholder,"[[STREAMID]]"
, שמוחלף במזהה מקור הנתונים, לפני שיוצרים בקשה.NETWORK_CODE
: קוד הרשת של חשבון Ad Manager 360.CUSTOM_ASSET_KEY
: משמש רק לשידורים חיים – מפתח הנכס המותאם אישית מזהה את אירוע הצגת ה-pod ב-Ad Manager 360. אפשר ליצור את זה על ידי הכלי לניהול המניפסט או שותף הצגת ה-Pod של צד שלישי.API_KEY
: משמש רק לשידורים חיים – מפתח API אופציונלי שאפשר שנדרשים כדי לאחזר מזהה מקור נתונים מ-IMA DAI SDK.
טכנולוגיית Android DAI BasicExample מיועדת להפעיל מגוון של שידורים שונים אבל לצורך הצגת Pod, הוא מוגדר להפעלת שידור יחיד בלבד. משנים את קטע המשתנים שבדוגמה כך שיתאים לקטע הבא:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
יצירת בקשה של pod בשידור חי או VOD כדי לאפשר הצגת Pod
הצגת Pod של שידורים חיים
מסירים את השיטה buildStreamRequest()
ששימשה למעבר בין
לבניית מגוון סוגים של זרמים. אחר כך צריך לשנות את requestAndPlayAds()
כדי להתקשר
ImaSdkFactory.createPodStreamRequest()
כדי ליצור מודעה להצגה של רצף מודעות בשידור חי
בקשה. לבסוף, מבקשים את הסטרימינג באמצעות AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
הצגת Pod של שידורים ב-VOD
מסירים את השיטה buildStreamRequest()
ששימשה למעבר בין
לבניית מגוון סוגים של זרמים. אחר כך צריך לשנות את requestAndPlayAds()
כדי להתקשר
ImaSdkFactory.createPodVodStreamRequest()
כדי ליצור מודעה להצגת Pod של VOD
בקשה. לבסוף, מבקשים את הסטרימינג באמצעות AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
עריכה והגדרה של כתובת ה-URL של השידור
הצגת Pod של שידורים חיים
צריך להתקשר למספר StreamManager.getStreamId()
כדי לקבל את מזהה מקור הנתונים. הערך הזה צריך להיות
נוסף אל STEAM_URL
שמחליף את "[[STREAMID]]"
. אחרי השינוי הזה הוא
נוצרה, ניתן להגדיר את כתובת ה-URL של השידור החדש באמצעות videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
הצגת Pod של שידורים ב-VOD
צריך להתקשר למספר StreamManager.getStreamId()
כדי לקבל את מזהה מקור הנתונים. לאחר מכן, מבקשים
כתובת URL של סטרימינג משותף לטכנולוגיית הווידאו (VTP). ואז להתקשר
StreamManager.loadThirdPartyStream()
כדי ש-IMA יטען את כתובת ה-URL של השידור וכל
כתוביות שהוחזרו על ידי ה-TVP.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
כשהצגת Pod מופעלת, IMA לא מבצע קריאות
VideoStreamPlayer.loadUrl()
, כך שתהיה לך אפשרות להסיר את כל השיחות אל
videoPlayer.setStreamUrl()
ו-videoPlayer.play()
ממנה.
זהו! עכשיו אתה מבקש ומציג מודעות בזרם הצגת Pod עם את IMA DAI SDK. כדי לראות דוגמאות נוספות של Android SDK שבו נעשה שימוש: לצפות דוגמאות ב-GitHub.