הגדרה באמצעות שירות Pod DAI

בחירת פלטפורמה: HTML5 Android iOS tvOS Cast Roku

ערכות IMA SDK מאפשרות לשלב בקלות מודעות מולטימדיה באתרים ובאפליקציות. ערכות IMA SDK יכולות לבקש מודעות מכל שרת מודעות שתואם ל-VAST ולנהל את ההפעלה של המודעות באפליקציות שלכם. באמצעות ערכות IMA DAI SDK, אפליקציות שולחות בקשה לשידור של מודעות ותוכן וידאו – תוכן VOD או תוכן בשידור חי. לאחר מכן, ה-SDK מחזיר שידור וידאו משולב, כך שלא צריך לנהל את המעבר בין מודעת הווידאו לבין תוכן הווידאו באפליקציה.

במדריך הזה מוסבר איך להפעיל שידור של הצגת מודעות Pod ב-DAI באמצעות IMA DAI SDK עם נגן וידאו להפעלת שידורים חיים ושידורי VOD. כדי לראות או לעקוב אחרי שילוב מלא לדוגמה, הורידו את הדוגמה להצגת מודעות Pod.

סקירה כללית על הצגת מודעות ברצף (Pod) ב-IMA DAI

  • ‫StreamRequest: אובייקט שמגדיר בקשת סטרימינג לשרתי הפרסום של Google. כדי להפעיל הצגת מודעות ברצף, צריך ליצור את המודעות באמצעות ImaSdkFactory.createPodStreamRequest() או ImaSdkFactory.createPodVodStreamRequest(). השיטות האלה דורשות קוד רשת, ו-createPodStreamRequest דורשת גם מפתח נכס בהתאמה אישית ומפתח API אופציונלי. שניהם כוללים פרמטרים אופציונליים אחרים.

  • StreamManager: אובייקט שמטפל בתקשורת בין שידור הווידאו לבין IMA DAI SDK, למשל הפעלת פינגים למעקב והעברת אירועים בשידור לבעל האפליקציה.

דרישות מוקדמות

הגדרת המשתנים של הצגת מודעות ברצף

כל השינויים שנדרשים להצגת מודעות ברצף מתבצעים ב-SampleAdsWrapper.java. השלב הראשון הוא לעדכן את המשתנים הקבועים.

אלה הקבועים של בקשות הסטרימינג של רצף המודעות שצריך להוסיף:

  • ‫STREAM_URL: משמש רק לשידורים חיים – כתובת ה-URL של שידור הווידאו שסופקה על ידי הכלי להטמעת מודעות ותגי מעקב בקובצי פלייליסט או על ידי שותף צד שלישי שמשתמש בהצגת מודעות ברצף. לפני ששולחים בקשה, צריך להזין את מזהה השידור שסופק על ידי IMA DAI SDK. במקרה הזה, כתובת ה-URL של השידור כוללת פלייסהולדר, "[[STREAMID]]", שמוחלף במזהה השידור לפני שליחת הבקשה.

  • ‫NETWORK_CODE: קוד הרשת של החשבון שלכם ב-Ad Manager 360.

  • ‫CUSTOM_ASSET_KEY: משמש רק לשידורים חיים – מפתח הנכס המותאם אישית שמזהה את האירוע של הצגת המודעות ברצף ב-Ad Manager 360. אפשר ליצור את הפרמטר הזה באמצעות הכלי להטמעת מודעות ותגי מעקב בקובצי פלייליסט או באמצעות שותף צד שלישי להצגת מודעות ברצף.

  • ‫API_KEY: משמש רק לשידורים חיים – מפתח API אופציונלי שיכול להיות נדרש כדי לאחזר מזהה שידור מ-IMA DAI SDK.

האפליקציה Android DAI BasicExample מיועדת להפעיל מגוון סוגים שונים של שידורים, אבל כשמדובר בהצגת מודעות ברצף, היא מוגדרת להפעיל רק שידור אחד. משנים את קטע המשתנה של הדוגמה כך שיתאים לקטע הבא:

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

כדי להפעיל את התכונה "הצגת מודעות ברצף", צריך ליצור בקשה להצגת מודעות ברצף בשידור חי או ב-VOD

הצגת מודעות ברצף בשידור חי

הסרנו את השיטה buildStreamRequest() ששימשה למעבר בין יצירת סוגים שונים של מקורות נתונים. אחר כך משנים את requestAndPlayAds() כדי לבצע קריאה אל ImaSdkFactory.createPodStreamRequest() וליצור בקשה להצגת מודעה ב-Live Pod Serving.

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

הצגת קבוצות של מודעות בשידורי VOD

הסרנו את השיטה buildStreamRequest() ששימשה למעבר בין יצירת סוגים שונים של מקורות נתונים. אחר כך משנים את requestAndPlayAds() כדי לבצע קריאה ל-ImaSdkFactory.createPodVodStreamRequest() וליצור בקשה להצגת מודעות ב-VOD Pod Serving.

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

אחרי שיוצרים את המכונה של בקשת השידור, מבקשים את השידור באמצעות AdsLoader.requestStream():

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

עריכה והגדרה של כתובת ה-URL של השידור

הצגת מודעות ברצף בשידור חי

מפעילים את השיטה StreamManager.getStreamId() כדי לקבל את מזהה השידור. צריך להוסיף את זה ל-STEAM_URL במקום "[[STREAMID]]". אחרי השינוי הזה, מגדירים את כתובת ה-URL החדשה של השידור באמצעות השיטה videoPlayer.setStreamUrl() וקוראים לשיטה videoPlayer.play() כדי להתחיל את הפעלת השידור.

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

הצגת קבוצות של מודעות בשידורי VOD

  1. מפעילים את השיטה StreamManager.getStreamId() כדי לקבל את מזהה השידור.
  2. מבקשים כתובת URL של שידור מהשותף הטכנולוגי בתחום הווידאו (VTP).
  3. אחרי שמקבלים את כתובת ה-URL מספק ה-VTP, מפעילים את השיטה StreamManager.loadThirdPartyStream() עם כתובת ה-URL כדי לטעון את השידור, יחד עם הכתוביות שספק ה-VTP מחזיר.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

בבקשות להצגת מודעות ב-VOD, ‏IMA קורא ל-callback של VideoStreamPlayer.loadUrl() כשהשידור נטען. כדי להתחיל את הפעלת השידור, מוסיפים את הקריאות videoPlayer.setStreamUrl() ו-videoPlayer.play() לקריאה החוזרת (callback) של VideoStreamPlayer.loadUrl():

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

ניקוי נכסי IMA DAI

אחרי שסיימתם לבקש ולהציג מודעות לרשת המדיה בסטרימינג של הצגת מודעות ברצף באמצעות IMA DAI SDK, מומלץ לנקות את כל המשאבים אחרי שהסשן של הצגת המודעות ברצף מסתיים. מפעילים את StreamManager.destroy() כדי להפסיק את הפעלת השידור, להפסיק את כל המעקב אחרי ביצועי המודעות ולשחרר את כל נכסי השידור שנטענו.

בדוגמאות ב-GitHub תוכלו לראות דוגמאות נוספות לשימוש ב-Android SDK.