Dynamic Ad Insert API untuk Streaming VOD

Google DAI API memungkinkan Anda menerapkan aliran data berkemampuan DAI Google di lingkungan jika penerapan IMA SDK tidak didukung. Sebaiknya Anda tetap menggunakan IMA di platform yang mendukung IMA SDK.

Sebaiknya gunakan DAI API di platform berikut:

  • Smart TV Samsung (Tizen)
  • TV LG
  • HbbTV
  • Xbox (Aplikasi JavaScript)
  • KaiOS

API ini mendukung fitur dasar yang disediakan oleh IMA DAI SDK. Untuk kolom tertentu pertanyaan tentang kompatibilitas atau fitur yang didukung, hubungi pengelola akun.

Mengimplementasikan DAI API untuk streaming VOD

DAI API mendukung streaming VOD menggunakan protokol HLS dan DASH. Langkah-langkahnya yang dijelaskan dalam panduan ini berlaku untuk kedua protokol.

Untuk mengintegrasikan API ke aplikasi Anda untuk streaming VOD, selesaikan langkah-langkah berikut:

  1. Minta streaming dengan melakukan panggilan POST ke endpoint streaming:

    Contoh isi permintaan:

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

    Contoh isi respons:

    {
       "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":[...]
          }
       ]
    }
    

    Respons Error

    Jika terjadi error, kode error HTTP standar akan ditampilkan tanpa JSON isi respons.

  2. Uraikan respons JSON dan simpan nilai berikut:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Untuk melakukan verifikasi media, proses peristiwa ID3:

    1. Simpan peristiwa media dalam antrean, yang menyimpan setiap ID media beserta stempel waktu (jika ditampilkan oleh pemutar).
    2. Setiap kali update dari pemutar, atau pada frekuensi yang ditetapkan (direkomendasikan 500 md), periksa antrean peristiwa media untuk peristiwa yang baru diputar dengan membandingkan stempel waktu acara dengan titik pemutaran.
    3. Untuk peristiwa media yang Anda konfirmasi telah diputar, lacak pemutaran berdasarkan menambahkan ID media ke endpoint verifikasi media dan membuat GET.

    Contoh isi permintaan:

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

    Contoh respons:

    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
    

    Anda dapat memverifikasi peristiwa pelacakan di Aktivitas Streaming Pantau.

  4. Opsional: Gunakan data ad_breaks dari respons pembuatan aliran data untuk melihat jenis peristiwa apa yang dipicu.

  5. Hapus peristiwa media dari antrean.

Batasan

Jika menggunakan API dalam webview, batasan berikut berlaku sesuai dengan ke penargetan:

  • UserAgent: Parameter agen pengguna diteruskan sebagai nilai khusus browser alih-alih platform yang mendasarinya.
  • rdid, idtype, is_lat: ID perangkat adalah tidak diteruskan dengan benar, yang membatasi fitur berikut:
    • Pembatasan frekuensi
    • Rotasi iklan berurutan
    • Segmentasi dan penargetan audiens

Praktik terbaik

Memetakan tag ID3 ke jenis peristiwa yang sesuai sangat membosankan untuk VOD. Gunakan menampilkan informasi ad_breaks di JSON untuk mencari peristiwa secara langsung, seperti yang Anda lakukan dengan konten live.

Referensi lainnya