תחילת העבודה עם IMA DAI SDK

ערכות 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 להצגת מודעות באמצעות IMA DAI. SDK עם נגן וידאו פשוט להפעלה של שידור חי ו-VOD. אם רוצים לצפייה או לעקוב אחרי שילוב לדוגמה שהושלם, הורידו את דוגמה להצגת pod.

סקירה כללית בנושא הצגת מודעות Pod של IMA DAI

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

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

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

הגדרת משתני ההצגה של 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.