Dynamic Ad Insertion API memungkinkan Anda meminta dan melacak streaming linear (LIVE) DAI.
Layanan: dai.google.com
Semua URI relatif terhadap https://dai.google.com
Metode: stream
| Metode | |
|---|---|
stream |
POST /linear/v1/hls/event/{assetKey}/stream
Membuat streaming DAI untuk ID acara tertentu. |
Permintaan HTTP
POST https://dai.google.com/linear/v1/hls/event/{assetKey}/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 | |
|---|---|
assetKey |
stringID acara 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 memuat
Stream baru. Untuk streaming beacon sisi server, Stream ini hanya berisi kolom stream_id dan stream_manifest.
Pengukuran Terbuka
DAI API berisi informasi untuk verifikasi Pengukuran Terbuka di kolom
Verifications. Kolom ini berisi satu atau beberapa elemen
Verification yang mencantumkan resource dan metadata yang diperlukan untuk mengeksekusi
kode pengukuran pihak ketiga guna memverifikasi pemutaran materi iklan. Hanya
JavaScriptResource yang didukung. Untuk mengetahui informasi selengkapnya, lihat
IAB Tech Lab dan
spesifikasi VAST 4.1.
Metode: verifikasi media
Setelah menemukan ID media iklan selama pemutaran, segera buat permintaan menggunakan media_verification_url yang diperoleh dari endpoint stream. Permintaan ini tidak diperlukan untuk streaming beacon 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 tentang peristiwa verifikasi media. |
Permintaan HTTP
GET https://{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 akan didekripsi dan akan selalu dimulai dengan teks "google_".
Seluruh konten teks frame harus ditambahkan ke URL verifikasi iklan sebelum membuat setiap permintaan verifikasi iklan.
Metode: metadata
Endpoint metadata di metadata_url menampilkan informasi yang digunakan untuk membuat UI iklan. Endpoint metadata tidak tersedia untuk streaming beacon sisi server,
dengan server bertanggung jawab untuk memulai verifikasi media iklan.
| Metode | |
|---|---|
metadata |
GET /{metadata_url}/{ad-media-id}GET /{metadata_url}
Mengambil informasi metadata iklan. |
Permintaan HTTP
GET https://{metadata_url}/{ad-media-id}
GET https://{metadata_url}
Parameter kueri
| Parameter | ||
|---|---|---|
delta_token |
opsional |
string
Token buram yang merepresentasikan status sinkronisasi klien saat ini.
Jika disediakan, server hanya akan menampilkan metadata yang telah berubah sejak token dibuat,
bersama dengan |
Isi respons
Jika berhasil, respons akan menampilkan instance
PodMetadata.
Bekerja dengan Metadata
Metadata memiliki tiga bagian terpisah: tags, ads, dan breaks iklan. Titik
masuk ke data adalah bagian tags. Dari sana, lakukan iterasi pada tag dan temukan entri pertama yang namanya merupakan awalan untuk ID media iklan yang ditemukan di streaming video. Misalnya, Anda
mungkin memiliki ID media iklan yang terlihat seperti:
google_1234567890
Kemudian, Anda akan menemukan objek tag bernama google_12345. Dalam hal ini, ID tersebut cocok dengan ID media iklan Anda. Setelah menemukan objek awalan media iklan yang benar, Anda dapat mencari
ID iklan, ID jeda iklan, dan jenis peristiwa. ID iklan kemudian digunakan untuk mengindeks objek
ads dan ID jeda iklan digunakan untuk mengindeks objek breaks.
Data respons
Streaming
Stream digunakan untuk merender daftar resource untuk stream yang baru dibuat dalam format JSON.| Representasi JSON |
|---|
{
"stream_id": string,
"stream_manifest": string,
"hls_master_playlist": string,
"media_verification_url": string,
"metadata_url": string,
"session_update_url": string,
"polling_frequency": number,
} |
| Kolom | |
|---|---|
stream_id |
stringID streaming GAM. |
stream_manifest |
stringURL manifes streaming, yang digunakan untuk mengambil playlist multivarian di HLS atau MPD di DASH. |
hls_master_playlist |
string(TIDAK DIGUNAKAN LAGI) URL playlist multivarian HLS. Gunakan "stream_manifest" sebagai gantinya. |
media_verification_url |
stringURL verifikasi media yang digunakan sebagai endpoint dasar untuk melacak peristiwa pemutaran. |
metadata_url |
stringURL metadata yang digunakan untuk melakukan polling informasi berkala tentang peristiwa iklan streaming mendatang. |
session_update_url |
stringURL pembaruan sesi yang digunakan untuk memperbarui parameter penargetan untuk streaming ini. Nilai asli untuk parameter penargetan diambil selama permintaan pembuatan streaming awal. |
polling_frequency |
numberFrekuensi polling, dalam detik, saat meminta metadata_url atau heartbeat_url. |
PodMetadata
PodMetadata berisi informasi metadata tentang iklan, jeda iklan, dan tag ID media.| Representasi JSON |
|---|
{
"tags": map[string, object(TagSegment)],
"ads": map[string, object(Ad)],
"ad_breaks": map[string, object(AdBreak)],
"next_delta_token": string,
"obsolete_ad_break_ids": [],
} |
| Kolom | |
|---|---|
tags |
map[string, object(TagSegment)]Peta segmen tag yang diindeks menurut awalan tag. |
ads |
map[string, object(Ad)]Peta iklan yang diindeks menurut ID iklan. |
ad_breaks |
map[string, object(AdBreak)]Peta jeda iklan yang diindeks menurut ID jeda iklan. |
next_delta_token |
stringToken buram yang akan digunakan klien pada polling berikutnya. |
obsolete_ad_break_ids |
stringDaftar ID jeda iklan yang sudah tidak berlaku dan harus dihapus dari cache klien. |
TagSegment
TagSegment berisi referensi ke iklan, jeda iklan, dan jenis peristiwanya. TagSegment dengan type="progress" tidak boleh di-ping ke endpoint verifikasi media iklan.| Representasi JSON |
|---|
{ "ad": string, "ad_break_id": string, "type": string, } |
| Kolom | |
|---|---|
ad |
stringID iklan tag ini. |
ad_break_id |
stringID jeda iklan tag ini. |
type |
stringJenis peristiwa tag ini. |
AdBreak
AdBreak menjelaskan satu jeda iklan dalam streaming. Berisi durasi, jenis (mid/pre/post), dan jumlah iklan.| Representasi JSON |
|---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
| Kolom | |
|---|---|
type |
stringJenis jeda yang valid adalah: pre, mid, dan post. |
duration |
numberTotal durasi iklan untuk jeda iklan ini, dalam detik. |
expected_duration |
numberDurasi jeda iklan yang diharapkan (dalam detik), termasuk semua iklan dan slate. |
ads |
numberJumlah iklan dalam jeda iklan. |
Iklan
Iklan menjelaskan iklan dalam aliran.| Representasi JSON |
|---|
{
"ad_break_id": string,
"position": 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,
"click_tracking_urls": [],
"verifications": [object(Verification)],
"slate": boolean,
"icons": [object(Icon)],
"wrappers": [object(Wrapper)],
"universal_ad_id": object(UniversalAdID),
"extensions": [],
"companions": [object(Companion)],
"interactive_file": object(InteractiveFile),
} |
| Kolom | |
|---|---|
ad_break_id |
stringID jeda iklan iklan ini. |
position |
numberPosisi iklan ini di jeda iklan, dimulai dari 1. |
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. |
click_tracking_urls |
stringURL pelacakan klik opsional. |
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. |
slate |
booleanBool opsional yang menunjukkan bahwa entri saat ini adalah slate. |
icons |
[object(Icon)]Daftar ikon, dihilangkan jika kosong. |
wrappers |
[object(Wrapper)]Daftar Wrapper, dihilangkan jika kosong. |
universal_ad_id |
object(UniversalAdID)ID iklan universal opsional. |
extensions |
stringDaftar opsional semua node <Extension> di VAST. |
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. |
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 opaque 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 diping. |
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. |