Dynamic Ad Insertion API for VOD Streams

Google DAI API מאפשר להטמיע שידורים שכוללים DAI מבית Google בסביבות שבהן אין תמיכה בהטמעה של IMA SDK. אנחנו ממליצים להמשיך להשתמש IMA בפלטפורמות שבהן יש תמיכה ב-IMA SDK.

אנחנו ממליצים להשתמש ב-DAI API בפלטפורמות הבאות:

  • Samsung Smart TV (Tizen)
  • טלוויזיה של LG
  • HbbTV
  • Xbox (אפליקציות JavaScript)
  • KaiOS

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

הטמעה של DAI API לשידורי VOD

DAI API תומך בשידורי VOD באמצעות הפרוטוקולים HLS ו-DASH. השלבים שמתוארים במדריך הזה רלוונטיים לשני הפרוטוקולים.

כדי לשלב את ה-API באפליקציה לסטרימינג ב-VOD, צריך להשלים את את השלבים הבאים:

  1. כדי לבקש סטרימינג, מבצעים הפעלת POST לנקודת הקצה של השידור:

    דוגמה לגוף הבקשה:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

    דוגמה לגוף תשובה:

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    תגובת השגיאה

    אם יש שגיאות, מוחזרים קודי שגיאות HTTP רגילים ללא JSON גוף התגובה.

  2. נתח את תגובת ה-JSON ואחסן את הערכים הבאים:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. כדי לבצע אימות מדיה, צריך להאזין לאירועי ID3:

    1. אחסון אירועי המדיה בתור, ושמירה של כל מזהה מדיה יחד עם חותמת זמן (אם הנגן מציג זאת).
    2. בכל פעם עדכון מהנגן, או בתדירות מוגדרת (מומלץ 500 אלפיות השנייה), אפשר לבדוק את התור לאירועי המדיה של אירועים שהופעלו לאחרונה על ידי השוואה בין חותמות הזמן של האירוע לבין המיקום הנוכחי.
    3. עבור אירועי מדיה שאישרת כי הופעלו אותם, יש לעקוב אחר ההפעלה לפי הוספה של מזהה המדיה לנקודת הקצה של אימות המדיה ויצירת בקשת GET.

    דוגמה לגוף הבקשה:

    https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
    

    תגובות לדוגמה:

    Accepted for asynchronous verification - HTTP/1.1 202 Accepted
    Successful empty response - HTTP/1.1 204 No Content
    Media verification not found - HTTP/1.1 404 Not Found
    Media verification sent by someone else - HTTP/1.1 409 Conflict
    

    אפשר לאמת אירועי מעקב בקטע פעילות בסטרימינג מעקב.

  4. אופציונלי: אפשר להשתמש בנתוני ad_breaks מהתגובה ליצירת מקור נתונים כדי לבדוק להגדיר איזה סוג של אירוע הופעל.

  5. הסרת אירוע המדיה מהתור.

מגבלות

אם אתם משתמשים ב-API בתוך רכיבי WebView, ההגבלות הבאות חלות בהתאם לטירגוט:

  • סוכן משתמש: הפרמטר של סוכן המשתמש מועבר כערך ספציפי לדפדפן במקום בפלטפורמה הבסיסית.
  • rdid idtype, is_lat: מזהה המכשיר הוא לא עובר כראוי, ולכן המאפיינים הבאים מוגבלים:
    • מכסת תדירות
    • סבב מודעות ברצף
    • פילוח וטירגוט של קהל היעד

שיטות מומלצות

מיפוי תגי ID3 לסוג האירוע המתאים מסובך ב-VOD. משתמשים ב החזירו מידע מסוג ad_breaks ב-JSON כדי לחפש את האירוע ישירות, למשל עם תוכן בשידור חי.

מקורות מידע נוספים