API Penyisipan Iklan Dinamis memungkinkan Anda meminta dan melacak streaming video on-demand (VOD) DAI. Streaming HLS dan DASH didukung.
Layanan: dai.google.com
Jalur metode stream bersifat 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 ID video dan sumber konten 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 |
stringKunci API, yang diberikan saat membuat streaming, harus valid untuk jaringan penayang. Daripada memberikannya di isi permintaan, kunci API dapat diteruskan di header Otorisasi HTTP dengan format berikut: Authorization: DCLKDAI key="<api-key>" |
Parameter jalur
| Parameter | |
|---|---|
content-source |
stringID CMS streaming. |
video-id |
stringID video streaming. |
Isi permintaan
Isi permintaan berjenis application/x-www-form-urlencoded dan berisi parameter berikut:
| Parameter | ||
|---|---|---|
dai-ssb |
Opsional | Setel ke |
| Parameter Penargetan DFP | Opsional | Parameter penargetan tambahan. |
| Mengganti Parameter Streaming | Opsional | Ganti nilai default parameter pembuatan streaming. |
| Autentikasi HMAC | Opsional | Lakukan autentikasi menggunakan token berbasis HMAC. |
Isi respons
Jika berhasil, isi respons akan berisi
Stream baru. Untuk streaming beacon sisi server, Stream ini hanya berisi kolom stream_id dan stream_manifest.
Pengukuran Terbuka
Kolom Verifications berisi informasi untuk verifikasi Pengukuran
Terbuka untuk streaming non-server-side-beaconing.
Verifications berisi satu atau beberapa elemen Verification yang mencantumkan
resource dan metadata yang Anda perlukan untuk memverifikasi pemutaran materi iklan dengan kode pengukuran pihak ketiga. Hanya JavaScriptResource yang didukung. Untuk mengetahui 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 endpoint stream. media_verification_url adalah jalur absolut.
Permintaan verifikasi media tidak diperlukan untuk streaming beacon sisi server, dengan server memulai verifikasi media.
Permintaan ke endpoint media verification bersifat idempoten.
| Metode | |
|---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
Memberi tahu API tentang peristiwa verifikasi media. |
Permintaan HTTP
GET {media-verification-url}/{ad-media-id}
Isi respons
media verification
menampilkan respons berikut:
HTTP/1.1 204 No Contentjika verifikasi media berhasil dan semua ping dikirim.HTTP/1.1 404 Not Foundjika permintaan tidak dapat memverifikasi media karena format URL yang salah atau masa berlaku yang sudah habis.HTTP/1.1 404 Not Foundjika permintaan verifikasi sebelumnya untuk tanda pengenal ini berhasil.HTTP/1.1 409 Conflictjika permintaan lain sudah mengirimkan ping saat ini.
ID media iklan (HLS)
ID media iklan akan dienkode dalam Metadata Berwaktu HLS menggunakan kunci TXXX,
yang dicadangkan untuk frame "informasi teks yang ditentukan pengguna". Isi frame
tidak akan dienkripsi dan akan selalu dimulai dengan teks "google_".
Seluruh konten teks frame 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.
Laporan ini akan berisi peristiwa dengan atribut messageData yang berisi ID media iklan yang diawali dengan "google_". Seluruh konten atribut messageData
harus ditambahkan ke media_verification_url untuk setiap permintaan verifikasi iklan.
Data respons
Streaming
Stream digunakan untuk merender daftar semua resource untuk stream yang baru dibuat 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 |
stringID streaming. |
total_duration |
numberDurasi streaming dalam detik. |
content_duration |
numberDurasi konten, tanpa iklan, dalam hitungan detik. |
valid_for |
stringAliran durasi valid untuk, dalam format "00h00m00s". |
valid_until |
stringTanggal saat streaming berlaku hingga, dalam format RFC 3339. |
subtitles |
[object(Subtitle)]Daftar Subtitel. Dihilangkan jika kosong. Khusus HLS. |
hls_master_playlist |
string(TIDAK DIGUNAKAN LAGI) URL playlist master HLS. Gunakan stream_manifest. Khusus HLS. |
stream_manifest |
stringManifes streaming. Sesuai dengan playlist master di HLS dan MPD di DASH. Ini adalah satu-satunya kolom selain "stream_id" yang ada dalam respons saat membuat aliran server-side-beaconing. |
media_verification_url |
stringURL verifikasi media. |
apple_tv |
object(AppleTV)Informasi opsional khusus untuk perangkat AppleTV. Khusus 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 |
stringURL Interstisial. |
AdBreak
AdBreak menjelaskan satu jeda iklan dalam streaming. Objek ini berisi posisi, durasi, jenis (tengah/awal/akhir), dan daftar iklan.| Representasi JSON |
|---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
| Kolom | |
|---|---|
type |
stringJenis jeda yang valid adalah: mid, pre, dan post. |
start |
numberPosisi dalam aliran data saat jeda dimulai, dalam detik. |
duration |
numberDurasi jeda iklan, dalam detik. |
ads |
[object(Ad)]Daftar iklan. Dihapus jika kosong. |
Iklan
Iklan menjelaskan iklan dalam aliran. Objek ini berisi posisi iklan dalam jeda, 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),
"extensions": [],
} |
| Kolom | |
|---|---|
seq |
numberPosisi iklan dalam jeda. |
start |
numberPosisi dalam streaming tempat iklan dimulai, dalam detik. |
duration |
numberDurasi iklan, dalam detik. |
title |
stringJudul iklan opsional. |
description |
stringDeskripsi iklan opsional. |
advertiser |
stringID pengiklan opsional. |
ad_system |
stringSistem iklan opsional. |
ad_id |
stringID iklan opsional. |
creative_id |
stringID materi iklan opsional. |
creative_ad_id |
stringID iklan materi iklan opsional. |
deal_id |
stringID transaksi opsional. |
clickthrough_url |
stringURL 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 menjalankan kode pengukuran pihak ketiga guna memverifikasi pemutaran materi iklan. |
universal_ad_id |
object(UniversalAdID)ID iklan universal opsional. |
companions |
[object(Companion)]Materi iklan pengiring opsional yang dapat 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 disetel, ini menunjukkan bahwa iklan dapat dilewati dan menyertakan petunjuk tentang cara menangani UI lewati dan peristiwa pelacakan. |
extensions |
stringDaftar opsional semua node <Extension> di VAST. |
Acara
Acara berisi jenis acara dan waktu presentasi acara.| Representasi JSON |
|---|
{ "time": number, "type": string, } |
| Kolom | |
|---|---|
time |
numberWaktu presentasi acara ini. |
type |
stringJenis acara ini. |
Subjudul
Subtitle menjelaskan trek subtitel sidecar untuk streaming video. File ini menyimpan dua format subtitel: TTML dan WebVTT. Atribut TTMLPath berisi URL ke file sidecar TTML dan atribut WebVTTPath juga berisi URL ke file sidecar WebVTT.| Representasi JSON |
|---|
{
"language": string,
"language_name": string,
"ttml": string,
"webvtt": string,
} |
| Kolom | |
|---|---|
language |
stringKode bahasa, seperti 'en' atau 'de'. |
language_name |
stringNama deskriptif bahasa. Fitur ini membedakan kumpulan subtitel tertentu jika ada beberapa kumpulan untuk bahasa yang sama |
ttml |
stringURL opsional ke file bantuan TTML. |
webvtt |
stringURL opsional ke 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 |
numberOffset menunjukkan jumlah waktu dalam detik saat pemutar harus menunggu untuk merender tombol lewati. Dihilangkan jika tidak disediakan di VAST. |
tracking_url |
stringTrackingURL 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 rasio klik-tayang ikon.| Representasi JSON |
|---|
{
"url": string,
} |
| Kolom | |
|---|---|
url |
string |
FallbackImage
FallbackImage berisi informasi tentang gambar pengganti 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. 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 |
stringID sistem iklan. |
ad_id |
stringID Iklan yang digunakan untuk iklan wrapper. |
creative_id |
stringID materi iklan yang digunakan untuk iklan wrapper. |
creative_ad_id |
stringID Iklan Materi Iklan yang digunakan untuk iklan wrapper. |
deal_id |
stringID transaksi opsional untuk iklan wrapper. |
Verifikasi
Verifikasi berisi informasi untuk Pengukuran Terbuka, yang memfasilitasi pengukuran verifikasi dan viewability 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 |
stringVendor verifikasi. |
java_script_resources |
[object(JavaScriptResource)]Daftar aset JavaScript untuk verifikasi. |
tracking_events |
[object(TrackingEvent)]Daftar peristiwa pelacakan untuk verifikasi. |
parameters |
stringString 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 |
stringURI ke payload javascript. |
api_framework |
stringAPIFramework adalah nama framework video yang menjalankan kode verifikasi. |
browser_optional |
booleanApakah skrip ini dapat dijalankan di luar browser. |
TrackingEvent
TrackingEvent berisi URL yang harus di-ping oleh klien dalam situasi tertentu.| Representasi JSON |
|---|
{
"event": string,
"uri": string,
} |
| Kolom | |
|---|---|
event |
stringJenis peristiwa pelacakan. |
uri |
stringPeristiwa pelacakan yang akan di-ping. |
UniversalAdID
UniversalAdID digunakan untuk memberikan ID materi iklan unik yang dipertahankan di seluruh sistem iklan.| Representasi JSON |
|---|
{ "id_value": string, "id_registry": string, } |
| Kolom | |
|---|---|
id_value |
stringID Iklan Universal dari materi iklan yang dipilih untuk iklan. |
id_registry |
stringString yang digunakan untuk mengidentifikasi URL situs registry tempat ID Iklan Universal materi iklan yang dipilih dikatalogkan. |
Pengiring
Pengiring berisi informasi untuk iklan pengiring yang dapat ditampilkan bersama 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 |
stringAtribut CreativeType pada node <StaticResource> di VAST jika ini adalah pengiring jenis statis. |
height |
int32Tinggi perangkat pendamping ini dalam piksel. |
width |
int32Lebar perangkat pendamping ini dalam piksel. |
resource |
stringUntuk pendamping statis dan iframe, ini akan menjadi URL yang akan dimuat dan ditampilkan. Untuk pengiring HTML, ini akan menjadi cuplikan HTML yang harus ditampilkan sebagai pengiring. |
type |
stringJenis perangkat pendamping ini. Dapat berupa statis, iframe, atau HTML. |
ad_slot_id |
stringID slot untuk pendamping ini. |
api_framework |
stringFramework API untuk perangkat 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 |
stringURL untuk materi iklan interaktif. |
type |
stringJenis MIME file yang disediakan sebagai resource. |
variable_duration |
booleanApakah materi iklan ini dapat meminta perpanjangan durasi. |
ad_parameters |
stringNilai node <AdParameters> di VAST. |