API Linear Penyisipan Iklan Dinamis

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 string

Kunci 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 string

ID acara streaming.
Catatan: Kunci aset streaming adalah ID yang juga dapat ditemukan di UI Ad Manager .

Isi permintaan

Isi permintaan berjenis application/x-www-form-urlencoded dan berisi parameter berikut:

Parameter
dai-ssb Opsional

Setel ke true untuk membuat aliran beacon sisi server. Nilai defaultnya adalah false. Pelacakan aliran default dimulai oleh klien dan di-ping di sisi server.

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 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 masa berlaku yang sudah habis.
  • 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, 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 next_delta_token baru dalam respons. Jika dihilangkan, server akan menampilkan metadata lengkap untuk seluruh jendela DVR.

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 string

ID streaming GAM.
stream_manifest string

URL 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 string

URL verifikasi media yang digunakan sebagai endpoint dasar untuk melacak peristiwa pemutaran.
metadata_url string

URL metadata yang digunakan untuk melakukan polling informasi berkala tentang peristiwa iklan streaming mendatang.
session_update_url string

URL pembaruan sesi yang digunakan untuk memperbarui parameter penargetan untuk streaming ini. Nilai asli untuk parameter penargetan diambil selama permintaan pembuatan streaming awal.
polling_frequency number

Frekuensi 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 string

Token buram yang akan digunakan klien pada polling berikutnya.
obsolete_ad_break_ids string

Daftar 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 string

ID iklan tag ini.
ad_break_id string

ID jeda iklan tag ini.
type string

Jenis 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 string

Jenis jeda yang valid adalah: pre, mid, dan post.
duration number

Total durasi iklan untuk jeda iklan ini, dalam detik.
expected_duration number

Durasi jeda iklan yang diharapkan (dalam detik), termasuk semua iklan dan slate.
ads number

Jumlah iklan dalam jeda 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 string

ID jeda iklan iklan ini.
position number

Posisi iklan ini di jeda iklan, dimulai dari 1.
duration number

Durasi iklan, dalam detik.
title string

Judul iklan opsional.
description string

Deskripsi iklan opsional.
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.
click_tracking_urls string

URL 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 boolean

Bool 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 string

Daftar 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 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 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 string

Vendor verifikasi.
java_script_resources [object(JavaScriptResource)]

Daftar aset JavaScript untuk verifikasi.
tracking_events [object(TrackingEvent)]

Daftar peristiwa pelacakan untuk verifikasi.
parameters string

String 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 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 tertentu.
Representasi JSON
{
  "event": string,
  "uri": string,
}
Kolom
event string

Jenis peristiwa pelacakan.
uri string

Peristiwa 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 string

ID Iklan Universal dari 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 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 string

Atribut CreativeType pada node <StaticResource> di VAST jika ini adalah pengiring jenis statis.
height int32

Tinggi perangkat pendamping ini dalam piksel.
width int32

Lebar perangkat pendamping ini dalam piksel.
resource string

Untuk 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 string

Jenis perangkat pendamping ini. Dapat berupa statis, iframe, atau HTML.
ad_slot_id string

ID slot untuk pendamping ini.
api_framework string

Framework 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 string

URL untuk 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 node <AdParameters> di VAST.