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

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

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

  • 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() כדי ליצור בקשה להצגת מודעה של pod בשידור חי. לבסוף, מבקשים את הסטרימינג באמצעות 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.