Dynamic Ad Insertion API for VOD Streams

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

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

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

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

הטמעה של 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
    

    אתם יכולים לאמת אירועי מעקב ב-Stream Activity Monitor.

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

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

מגבלות

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

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

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

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

משאבים נוספים