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

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

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

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