IMA SDK מאפשר לכם לשלב בקלות מודעות מולטימדיה באתרים ובאפליקציות שלכם. IMA SDK יכול לשלוח בקשה להצגת מודעות מכל שרת מודעות שתואם ל-VAST ולנהל את ההפעלה של המודעות באפליקציות שלך. בעזרת ערכות IMA DAI SDK, אפליקציות שולחות בקשות לשידור וידאו של מודעה או תוכן וידאו - VOD או תוכן בשידור חי. לאחר מכן, ה-SDK יחזיר שידור וידאו משולב, כך שלא יהיה צורך לנהל את המעבר בין מודעות וידאו לתוכן בתוך האפליקציה.
בחירת פתרון DAI שמעניין אתכם
הטמעת DAI בפודים
IMA SDK מאפשר לכם לשלב בקלות מודעות מולטימדיה באתרים ובאפליקציות שלכם. IMA SDK יכול לשלוח בקשה להצגת מודעות מכל שרת מודעות שתואם ל-VAST ולנהל את ההפעלה של המודעות באפליקציות שלך. בעזרת ערכות IMA DAI SDK, אפליקציות שולחות בקשות לשידור וידאו של מודעה או תוכן וידאו - VOD או תוכן בשידור חי. לאחר מכן, ה-SDK יחזיר שידור וידאו משולב, כך שלא יהיה צורך לנהל את המעבר בין מודעות וידאו לתוכן בתוך האפליקציה.
מדריך זה מדגים איך להפעיל שידור של DAI Pod באמצעות IMA Android DAI SDK עם נגן וידאו פשוט להפעלה בשידור חי וב-VOD. אם אתם רוצים להציג שילוב לדוגמה שהושלם או לעקוב אחריו, תוכלו להוריד את הדוגמה להצגת pod.
סקירה כללית של הצגת IMA DAI Pod
StreamRequest
: אובייקט שמגדיר בקשה לשידור לשרתי הפרסום של Google. צריך ליצור אותן באמצעותImaSdkFactory.createPodStreamRequest()
אוImaSdkFactory.createPodVodStreamRequest()
כדי להפעיל הצגה של רצף מודעות. לשיטות האלה נדרש קוד רשת, ול-createPodStreamRequest
נדרש גם מפתח נכס מותאם אישית, ומפתח API אופציונלי. שניהם כוללים פרמטרים אופציונליים נוספים.StreamManager
: אובייקט שמטפל בתקשורת בין שידור הווידאו לבין ה-IMA DAI SDK, למשל הפעלת פינגים למעקב והעברת אירועים משידור אל בעל התוכן הדיגיטלי.
דרישות מוקדמות
אפליקציה ל-Android שכבר מוגדרת באמצעות IMA DAI SDK כדי להפעיל וידאו בסטרימינג עם מודעות DAI. אם עדיין אין לכם אפליקציה כזו, מומלץ להשתמש ב-Android DAI BasicExample כנקודת התחלה. ה-BasicExample כולל את בסיס הקוד שמדריך זה מפנה אליו.
כדי ש-IMA DAI יפעל כהלכה, חשוב שהאפליקציה תשלח אירועי ID3 באמצעות
VideoStreamPlayerCallback.onUserTextReceived()
. דוגמה לקטע קוד DAI בשירות מלא
הגדרת המשתנים להצגת מודעות pod
כל השינויים הנדרשים להצגת רצף מודעות מתבצעים ב-SampleAdsWrapper.java. השלב הראשון הוא לעדכן את המשתנים הקבועים.
אלו הם הקבועים של הבקשות לזרם מודעות של רצף מודעות שיש להוסיף:
STREAM_URL
: משמשת רק לשידורים חיים – כתובת ה-URL של שידור הווידאו שסופק על ידי מפעיל המניפולציה של המניפסט או שותף צד שלישי באמצעות הצגת רצף מודעות. עליך להזין את מזהה מקור הנתונים שסופק על ידי IMA DAI SDK לפני שליחת הבקשה. במקרה כזה, כתובת ה-URL של מקור הנתונים כוללת placeholder שנקרא"[[STREAMID]]"
, שמוחלף במזהה מקור הנתונים, לפני שליחת הבקשה.NETWORK_CODE
: קוד הרשת של חשבון Ad Manager 360.CUSTOM_ASSET_KEY
: משמש רק לשידורים חיים – מפתח הנכס המותאם אישית שמזהה את האירוע של הצגת רצף המודעות ב-Ad Manager 360. אפשר ליצור אותו באמצעות מפעיל המניפולציה של המניפסט או שותף להצגת פודים של צד שלישי.API_KEY
: משמש רק לשידורים חיים – מפתח API אופציונלי שנדרש כדי לאחזר מזהה שידור מ-IMA DAI SDK.
ה-Android DAI BasicExample נועד להפעיל מגוון סוגים שונים של שידורים, אבל לצורך הצגת רצף מודעות, הוא מוגדר להפעיל שידור יחיד בלבד. משנים את קטע המשתנים של הדוגמה כך שיתאים לקטעים הבאים:
/** 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 {
...
כדי לאפשר הצגה של רצף מודעות, צריך ליצור בקשה לשידור חי או לשידור VOD
הצגת רצף מודעות בשידור חי
מסירים את השיטה 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);
}
הצגת רצף מודעות ב-VOD
מסירים את השיטה buildStreamRequest()
ששימשה למעבר בין פיתוח מגוון סוגי מקורות נתונים. לאחר מכן, משנים את requestAndPlayAds()
כדי להפעיל את ImaSdkFactory.createPodVodStreamRequest()
על מנת ליצור בקשה להצגת מודעה של רצף 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 של השידור
הצגת רצף מודעות בשידור חי
אפשר להתקשר אל 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();
}
הצגת רצף מודעות ב-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);
}
כשהצגת רצף מודעות מופעלת, IMA לא שולחת קריאות אל VideoStreamPlayer.loadUrl()
, כך שאפשר לבטל ממנה את כל הקריאות ל-videoPlayer.setStreamUrl()
ול-videoPlayer.play()
.
זהו! אתם מבקשים ומציגים מודעות ברצף להצגת מודעות באמצעות IMA Android DAI SDK. כדי לראות דוגמאות נוספות לשימוש ב-Android SDK, ראו דוגמאות ב-GitHub.