שימוש ב-IMA DAI SDK ב-Android

הפעלת סטרימינג של VOD שנרשם ב-Google Cloud Video Stitcher API

במדריך הזה נסביר איך להשתמש ב-IMA DAI SDK ל-Android כדי לשלוח בקשה להפעלה של סשן סטרימינג של VOD ב-Google Cloud.

המדריך הזה מרחיב את הדוגמה הבסיסית מהמדריך למתחילים בנושא IMA DAI.

למידע על שילוב עם פלטפורמות אחרות או על שימוש ב-IMA SDKs בצד הלקוח, אפשר לעיין במאמר בנושא Interactive Media Ads SDKs.

כדי לצפות בדוגמה של שילוב שהושלם או לעקוב אחריו, אפשר להוריד את הדוגמה של Cloud Video Stitcher.

הגדרת פרויקט ב-Google Cloud

מזינים את המשתנים הבאים לשימוש ב-IMA SDK:

מיקום
האזור ב-Google Cloud שבו נוצרה ההגדרה של ה-VOD: LOCATION
מספר הפרויקט
מספר הפרויקט ב-Google Cloud שבו נעשה שימוש ב-Video Stitcher API: PROJECT_NUMBER
טוקן OAuth

אסימון OAuth לטווח קצר של חשבון שירות עם תפקיד המשתמש Video Stitcher:

OAUTH_TOKEN

מידע נוסף על יצירת טוקנים של OAuth לזמן קצר אפשר לעשות שימוש חוזר בטוקן OAuth בכמה בקשות, כל עוד תוקף הטוקן לא פג.

הקוד של הרשת

קוד הרשת ב-Ad Manager לבקשת הצגת מודעות: NETWORK_CODE

מזהה ההגדרה של VOD

מזהה ההגדרה של ה-VOD בסטרימינג של ה-VOD: VOD_CONFIG_ID

מידע נוסף על יצירת מזהה הגדרות VOD זמין במדריך Cloud stitching create a VOD config.

הגדרת הדוגמה הבסיסית

עוברים אל דף הגרסה של IMA Android DAI ב-GitHub ומורידים את הדוגמה הבסיסית. הדוגמה הזו היא אפליקציית Android שאפשר לפתוח ב-Android Studio למטרות בדיקה.

כדי לבדוק עם מקור VOD שאינו Cloud Video Stitcher, צריך להגדיר את הקבוע CONTENT_TYPE ב-SampleAdsWrapper.java ל-ContentType.VOD_HLS או ל-ContentType.VOD_DASH, כדי לטעון את מזהה מערכת ניהול התוכן ומזהה הסרטון המתאימים למקור. אחר כך, בקובץ SampleVideoPlayer.java, מגדירים את currentlyPlayingStreamType ל-CONTENT_TYPE_HLS או ל-CONTENT_TYPE_DASH כדי לטפל כמו שצריך במטא-נתונים של סוג הסטרימינג שבחרתם.

אם הכול פועל כמו שצריך, לחיצה על לחצן ההפעלה בנגן הווידאו תתחיל את הסרט הקצר Tears of Steel, עם הפסקה למודעה לפני סרטון (pre-roll).

בקשה לסטרימינג של תוכן על פי דרישה (VOD)

כדי להחליף את זרם הדוגמה בזרם ה-VOD שלכם עם מודעות, צריך להשתמש ב-sdkFactory.createVideoStitcherVodStreamRequest() כדי ליצור סשן של מודעות ב-Google Ad Manager. אתם יכולים להשתמש בממשק המשתמש של Google Ad Manager כדי לאתר את סשנים של DAI שנוצרו לצורך מעקב וניפוי באגים.

sdkFactory.createVideoStitcherVodStreamRequest() זמין ב-IMA DAI SDK מגרסה 3.30.0 ואילך.

כדי להשתמש ב-sdkFactory.createVideoStitcherVodStreamRequest() עם הפרמטר vodConfigId, נדרשת גרסה 3.33.0 ואילך של IMA DAI SDK.

בדוגמה הקיימת, יש משפטי תנאי לבקשת סטרימינג של תוכן על פי דרישה (VOD) או של שידור חי. כדי שהמערכת תפעל עם Google Cloud Video Stitcher API, צריך להוסיף נתיב חדש להחזרת StreamRequest שנוצר באמצעות sdkFactory.createVideoStitcherVodStreamRequest().

הנה דוגמה:

videoplayerapp/SampleAdsWrapper.java

...
private enum ContentType {
  LIVE_HLS,
  LIVE_DASH,
// Add a VOD HLS Google Cloud type. DASH streams are also supported.
  VOD_HLS_GOOGLE_CLOUD,
  VOD_DASH_GOOGLE_CLOUD,
  VOD_HLS,
  VOD_DASH,
}

// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
    ContentType.VOD_HLS_GOOGLE_CLOUD;
...

@Nullable
  private StreamRequest buildStreamRequest() {
    StreamRequest request;
    switch (CONTENT_TYPE) {
      ...
      case VOD_HLS_GOOGLE_CLOUD:
      case VOD_DASH_GOOGLE_CLOUD:
        // VOD HLS or DASH stream generated by the
        // Google Cloud Video Stitcher API.
        request = sdkFactory.createVideoStitcherVodStreamRequest(
          "NETWORK_CODE",
          "LOCATION",
          "PROJECT_NUMBER",
          "OAUTH_TOKEN",
          "VOD_CONFIG_ID"
        );
        if (CONTENT_TYPE == ContentType.VOD_HLS_GOOGLE_CLOUD) {
          request.setFormat(StreamFormat.HLS);
        } else {
          request.setFormat(StreamFormat.DASH);
        }
        return request;
    }
    // Content type not selected.
    return null;
  }
  ...

טוענים מחדש את האפליקציה כדי לבקש ולהפעיל את שידור ה-VOD המותאם אישית.

(אופציונלי) הוספת אפשרויות של סשן סטרימינג

כדי להתאים אישית את בקשת הסטרימינג, מוסיפים אפשרויות הפעלה כדי לשנות את הגדרת ברירת המחדל של Cloud Video Stitcher API באמצעות StreamRequest.setVideoStitcherSessionOptions(). אם תספקו אפשרות לא מזוהה, Cloud Video Stitcher API יגיב עם שגיאת HTTP 400. אפשר לקבל עזרה במדריך לפתרון בעיות.

לדוגמה, אפשר לשנות את אפשרויות המניפסט באמצעות קטע הקוד הבא, ששולח בקשה לשני מניפסטים של סטרימינג עם רכיבי עיבוד שמוזמנים משיעור העברת הנתונים הנמוך ביותר לגבוה ביותר.

public void requestAndPlayAds() {
  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  StreamRequest streamRequest = buildStreamRequest();

  // The following session options are examples. Use session options
  // that are compatible with your video stream.
  Map<String, Object> sessionOptions = Map.of(
    "manifestOptions", Map.of(
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "bitrateOrder": "ascending"
   *  }
   * };
   */

  streamRequest.setVideoStitcherSessionOptions(sessionOptions);
  adsLoader.requestStream(streamRequest);
}

הסרת המשאבים

אחרי שאירחתם בהצלחה סטרימינג של VOD באמצעות Google Cloud Video Stitcher API ושלחתם בקשה לסטרימינג באמצעות IMA DAI SDK ל-Android, חשוב לנקות את כל משאבי ההצגה.

כדי להסיר משאבים ונכסים שלא צריך, פועלים לפי המדריך בנושא מחיקת תוכן וידאו על פי דרישה.