API Penyisipan Iklan Dinamis memungkinkan Anda meminta dan melacak DAI streaming video on-demand (VOD). Streaming HLS dan DASH didukung.
Layanan: dai.google.com
Jalur metode stream
relatif terhadap https://dai.google.com
Metode: stream
Metode | |
---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
Membuat streaming DAI HLS untuk sumber konten dan ID video tertentu.
Membuat streaming DAI DASH untuk sumber konten dan ID video tertentu. |
Permintaan HTTP
POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream
Header permintaan
Parameter | |
---|---|
api‑key |
string Kunci API, yang diberikan saat membuat streaming, harus valid untuk jaringan penayang. Daripada menyediakannya dalam isi permintaan, kunci API dapat diteruskan dalam Header Otorisasi HTTP dengan format berikut: Authorization: DCLKDAI key="<api-key>" |
Parameter jalur
Parameter | |
---|---|
content-source |
string ID CMS streaming. |
video-id |
string ID video streaming. |
Isi permintaan
Isi permintaan berjenis application/x-www-form-urlencoded
dan berisi
parameter berikut:
Parameter | ||
---|---|---|
dai-ssb |
Opsional | Tetapkan ke |
Parameter Penargetan DFP | Opsional | Parameter penargetan tambahan. |
Mengganti Parameter Aliran Data | Opsional | Mengganti nilai default parameter pembuatan streaming. |
Autentikasi HMAC | Opsional | Autentikasi menggunakan token berbasis HMAC. |
Isi respons
Jika berhasil, isi respons berisi
Stream
Untuk streaming sisi server, Stream
ini
hanya berisi kolom stream_id
dan stream_manifest
.
Pengukuran Terbuka
Kolom Verifications
berisi informasi untuk Open
Verifikasi pengukuran untuk streaming non-sisi server.
Verifications
berisi satu atau beberapa elemen Verification
yang mencantumkan resource
dan metadata, Anda harus memverifikasi pemutaran materi iklan dengan kode pengukuran pihak ketiga.
Hanya JavaScriptResource
yang didukung. Untuk informasi selengkapnya,
lihat IAB Tech Lab
dan spesifikasi VAST 4.1.
Metode: verifikasi media
Setelah Anda menemukan ID media iklan selama pemutaran, segera buat
permintaan menggunakan media_verification_url
dari stream
endpoint. media_verification_url
adalah jalur absolut.
Permintaan verifikasi media tidak diperlukan
untuk streaming di sisi server,
tempat server memulai verifikasi media.
Permintaan ke endpoint media verification
bersifat idempoten.
Metode | |
---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Memberi tahu API peristiwa verifikasi media. |
Permintaan HTTP
GET {media-verification-url}/{ad-media-id}
Isi respons
media verification
akan menampilkan respons berikut:
HTTP/1.1 204 No Content
jika verifikasi media berhasil dan semua ping dikirim.HTTP/1.1 404 Not Found
jika permintaan tidak dapat memverifikasi media karena format URL yang salah atau habis masa berlakunya.HTTP/1.1 404 Not Found
jika permintaan verifikasi sebelumnya untuk tanda pengenal ini berhasil.HTTP/1.1 409 Conflict
jika permintaan lain sudah mengirimkan ping saat ini.
ID media iklan (HLS)
ID media iklan akan dienkode dalam Metadata Berwaktu HLS menggunakan kunci TXXX
,
dicadangkan untuk "informasi teks yang ditentukan pengguna" {i>frame<i}. Isi dari {i>frame<i}
akan dienkripsi dan akan selalu dimulai dengan teks "google_"
.
Seluruh konten teks dalam {i>frame<i} harus ditambahkan ke media_verification_url untuk setiap permintaan verifikasi iklan.
ID media iklan (DASH)
ID media iklan akan dimasukkan ke dalam manifes melalui penggunaan
Elemen EventStream
DASH.
Setiap EventStream
akan memiliki URI ID Skema urn:google:dai:2018
.
Peristiwa utama akan berisi peristiwa dengan atribut messageData
yang berisi
ID media iklan yang diawali dengan “google_”
. Seluruh konten messageData
harus ditambahkan ke media_verification_url untuk setiap iklan
permintaan verifikasi.
Data respons
Streaming
Stream digunakan untuk merender daftar semua resource untuk resource yang baru dibuat streaming dalam format JSON .Representasi JSON |
---|
{ "stream_id": string, "total_duration": number, "content_duration": number, "valid_for": string, "valid_until": string, "subtitles": [object(Subtitle)], "hls_master_playlist": string, "stream_manifest": string, "media_verification_url": string, "apple_tv": object(AppleTV), "ad_breaks": [object(AdBreak)], } |
Kolom | |
---|---|
stream_id |
string ID aliran data. |
total_duration |
number Durasi streaming dalam detik. |
content_duration |
number Durasi konten, tanpa iklan, dalam hitungan detik. |
valid_for |
string Streaming berdurasi valid, dalam "00h00m00d" format. |
valid_until |
string Tanggal streaming berlaku hingga, dalam format RFC 3339. |
subtitles |
[object(Subtitle)] Daftar Subtitel. Dihapus jika kosong. Hanya HLS. |
hls_master_playlist |
string (TIDAK DIGUNAKAN LAGI) URL playlist master HLS. Gunakan stream_manifes. Hanya HLS. |
stream_manifest |
string Manifes streaming. Sesuai dengan playlist master dalam HLS dan MPD di DASH. Ini adalah satu-satunya kolom selain "stream_id" yang ada dalam respons saat membuat streaming beaconing sisi server. |
media_verification_url |
string URL verifikasi media. |
apple_tv |
object(AppleTV) Informasi opsional khusus untuk perangkat AppleTV. Hanya HLS. |
ad_breaks |
[object(AdBreak)] Daftar Jeda Iklan. Dihapus jika kosong. |
AppleTV
AppleTV berisi informasi khusus untuk perangkat Apple TV.Representasi JSON |
---|
{ "interstitials_url": string, } |
Kolom | |
---|---|
interstitials_url |
string URL interstisial. |
AdBreak
Jeda Iklan mendeskripsikan satu jeda iklan dalam streaming. Elemen ini berisi posisi, durasi, jenis (pertengahan/sebelum/pasca) dan daftar iklan.Representasi JSON |
---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
Kolom | |
---|---|
type |
string Jenis jeda yang valid adalah: pertengahan, pra, dan pasca. |
start |
number Posisikan dalam streaming saat jeda dimulai, dalam detik. |
duration |
number Durasi jeda iklan, dalam detik. |
ads |
[object(Ad)] Daftar Iklan. Dihapus jika kosong. |
Iklan
Iklan mendeskripsikan iklan dalam streaming. Kolom ini berisi posisi iklan di jeda iklan, durasi iklan, dan beberapa metadata opsional.Representasi JSON |
---|
{ "seq": number, "start": number, "duration": number, "title": string, "description": string, "advertiser": string, "ad_system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, "clickthrough_url": string, "icons": [object(Icon)], "wrappers": [object(Wrapper)], "events": [object(Event)], "verifications": [object(Verification)], "universal_ad_id": object(UniversalAdID), "companions": [object(Companion)], "interactive_file": object(InteractiveFile), "skip_metadata": object(SkipMetadata), } |
Kolom | |
---|---|
seq |
number Posisi iklan dalam jeda. |
start |
number Memosisikan iklan di streaming tempat iklan dimulai, dalam hitungan detik. |
duration |
number Durasi iklan, dalam detik. |
title |
string Judul opsional iklan. |
description |
string Deskripsi opsional iklan. |
advertiser |
string ID pengiklan opsional. |
ad_system |
string Sistem iklan opsional. |
ad_id |
string ID iklan opsional. |
creative_id |
string ID materi iklan opsional. |
creative_ad_id |
string ID iklan materi iklan opsional. |
deal_id |
string ID transaksi opsional. |
clickthrough_url |
string URL klik-tayang opsional. |
icons |
[object(Icon)] Daftar ikon, dihilangkan jika kosong. |
wrappers |
[object(Wrapper)] Daftar Wrapper. Dihapus jika kosong. |
events |
[object(Event)] Daftar peristiwa dalam iklan. |
verifications |
[object(Verification)] Entri verifikasi Open Measurement opsional yang mencantumkan resource dan metadata yang diperlukan untuk mengeksekusi kode pengukuran pihak ketiga guna memverifikasi pemutaran materi iklan. |
universal_ad_id |
object(UniversalAdID) ID iklan universal opsional. |
companions |
[object(Companion)] Pengiring opsional yang mungkin ditampilkan bersama iklan ini. |
interactive_file |
object(InteractiveFile) Materi iklan interaktif opsional (SIMID) yang harus ditampilkan selama pemutaran iklan. |
skip_metadata |
object(SkipMetadata) Metadata opsional untuk iklan yang dapat dilewati. Jika ditetapkan, hal ini menunjukkan iklan dapat dilewati dan menyertakan petunjuk cara menangani UI lewati dan peristiwa pelacakan. |
Acara
Acara berisi jenis acara dan waktu presentasi suatu acara.Representasi JSON |
---|
{ "time": number, "type": string, } |
Kolom | |
---|---|
time |
number Waktu presentasi acara ini. |
type |
string Jenis acara ini. |
Subjudul
Subtitel menjelaskan trek subtitel file bantuan untuk streaming video. {i>Spreadsheet<i} menyimpan dalam dua format subtitel: TTML dan WebVTT. Atribut TTMLPath berisi URL ke file file bantuan TTML dan atribut WebVTTPath juga berisi URL ke file bantuan WebVTT.Representasi JSON |
---|
{ "language": string, "language_name": string, "ttml": string, "webvtt": string, } |
Kolom | |
---|---|
language |
string Kode bahasa, seperti 'en' atau 'de'. |
language_name |
string Nama deskriptif bahasa. Ini membedakan kumpulan spesifik subtitel jika ada beberapa kumpulan untuk bahasa yang sama |
ttml |
string URL opsional ke file file bantuan TTML. |
webvtt |
string URL opsional ke file file bantuan WebVTT. |
SkipMetadata
SkipMetadata memberikan informasi yang diperlukan klien untuk menangani peristiwa lewati untuk iklan yang dapat dilewati.Representasi JSON |
---|
{ "offset": number, "tracking_url": string, } |
Kolom | |
---|---|
offset |
number Offset menunjukkan jumlah waktu dalam detik yang ditayangkan di pemutar video harus menunggu untuk merender tombol lewati. Dihapus jika tidak disediakan dalam VAST. |
tracking_url |
string TrackingURL berisi URL yang harus di-ping pada peristiwa lewati. |
Ikon
Ikon berisi informasi tentang Ikon VAST.Representasi JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
Kolom | |
---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData berisi informasi tentang klik-tayang ikon.Representasi JSON |
---|
{ "url": string, } |
Kolom | |
---|---|
url |
string |
FallbackImage
FallbackImage berisi informasi tentang gambar penggantian VAST.Representasi JSON |
---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
Kolom | |
---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
Wrapper berisi informasi tentang iklan wrapper. Laporan ini tidak menyertakan ID Transaksi jika tidak ada.Representasi JSON |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Kolom | |
---|---|
system |
string ID sistem iklan. |
ad_id |
string ID iklan yang digunakan untuk iklan wrapper. |
creative_id |
string ID materi iklan yang digunakan untuk iklan wrapper. |
creative_ad_id |
string ID Iklan Materi Iklan yang digunakan untuk iklan wrapper. |
deal_id |
string ID transaksi opsional untuk iklan wrapper. |
Verifikasi
Verifikasi berisi informasi untuk Pengukuran Terbuka, yang memfasilitasi pengukuran verifikasi dan visibilitas pihak ketiga. Saat ini, hanya resource JavaScript yang didukung. Lihat https://iabtechlab.com/standards/open-measurement-sdk/Representasi JSON |
---|
{ "vendor": string, "java_script_resources": [object(JavaScriptResource)], "tracking_events": [object(TrackingEvent)], "parameters": string, } |
Kolom | |
---|---|
vendor |
string Vendor verifikasi. |
java_script_resources |
[object(JavaScriptResource)] Daftar resource JavaScript untuk verifikasi. |
tracking_events |
[object(TrackingEvent)] Daftar peristiwa pelacakan untuk verifikasi. |
parameters |
string String buram yang diteruskan ke kode verifikasi bootstrap. |
JavaScriptResource
JavaScriptResource berisi informasi untuk verifikasi melalui JavaScript.Representasi JSON |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Kolom | |
---|---|
script_url |
string URI ke payload JavaScript. |
api_framework |
string APIFramework adalah nama framework video yang menjalankan kode verifikasi. |
browser_optional |
boolean Apakah skrip ini dapat dijalankan di luar browser. |
TrackingEvent
TrackingEvent berisi URL yang harus di-ping oleh klien dalam situasi.Representasi JSON |
---|
{ "event": string, "uri": string, } |
Kolom | |
---|---|
event |
string Jenis peristiwa pelacakan. |
uri |
string Peristiwa pelacakan yang akan di-ping. |
UniversalAdID
UniversalAdID digunakan untuk memberikan ID materi iklan unik yang dikelola di seluruh sistem iklan.Representasi JSON |
---|
{ "id_value": string, "id_registry": string, } |
Kolom | |
---|---|
id_value |
string ID Iklan Universal materi iklan yang dipilih untuk iklan. |
id_registry |
string String yang digunakan untuk mengidentifikasi URL situs registry tempat ID Iklan Universal materi iklan yang dipilih dicantumkan dalam katalog. |
Pengiring
Pengiring berisi informasi untuk iklan pengiring yang mungkin ditampilkan bersama dengan iklan.Representasi JSON |
---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
Kolom | |
---|---|
click_data |
object(ClickData) Data klik untuk pengiring ini. |
creative_type |
string Atribut CreativeType di <StaticResource> di VAST jika ini adalah pendamping jenis statis. |
height |
int32 Tinggi pengiring ini dalam piksel. |
width |
int32 Lebar dalam piksel pendamping ini. |
resource |
string Untuk pengiring statis dan iframe, URL ini akan dimuat dan ditampilkan. Untuk pengiring HTML, ini akan menjadi cuplikan HTML yang seharusnya ditampilkan sebagai pengiring. |
type |
string Jenis pendamping ini. URL dapat berupa statis, iframe, atau HTML. |
ad_slot_id |
string ID slot untuk pengiring ini. |
api_framework |
string Framework API untuk pendamping ini. |
tracking_events |
[object(TrackingEvent)] Daftar peristiwa pelacakan untuk pendamping ini. |
InteractiveFile
InteractiveFile berisi informasi untuk materi iklan interaktif (yaitu SIMID) yang harus ditampilkan selama pemutaran iklan.Representasi JSON |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Kolom | |
---|---|
resource |
string URL ke materi iklan interaktif. |
type |
string Jenis MIME file yang disediakan sebagai resource. |
variable_duration |
boolean Apakah materi iklan ini dapat meminta perpanjangan durasi. |
ad_parameters |
string Nilai <AdParameters> node di VAST. |