Panduan ini membahas cara mengonfigurasi manipulator manifes untuk meminta segmen iklan atau slate menggunakan metode segmen pod iklan.
Pilih protokol streaming:
Prasyarat
Sebelum melanjutkan, Anda harus menyiapkan acara livestream untuk jenis Penayangan pod pengalihan Penyisipan Iklan Dinamis (DAI) dan profil encoding. Untuk menyiapkan acara livestream, pilih salah satu metode berikut:
- UI Ad Manager: Siapkan livestream untuk DAI.
- Ad Manager API: Gunakan library klien untuk memanggil metode
LiveStreamEventService.createLiveStreamEvents. Tetapkan parameterLiveStreamEvent.dynamicAdInsertionTypekePOD_SERVING_REDIRECT.
Setelah menyiapkan acara live stream, ambil profil encoding acara
dari UI atau API Ad Manager dengan memanggil
metode DaiEncodingProfileService.getDaiEncodingProfilesByStatement.
Mengambil aliran data konten
Saat pengguna memilih acara live stream, aplikasi klien akan membuat permintaan streaming ke Google Ad Manager. Dalam respons streaming, aplikasi mengekstrak ID dan metadata sesi Google DAI untuk disertakan dalam permintaan manifes streaming.
Contoh berikut meneruskan ID sesi DAI Google ke manipulator manifes:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
Saat memproses permintaan pemutaran konten video, simpan ID sesi Google DAI dan CUSTOM_ASSET_KEY dari permintaan untuk bersiap melakukan penyambungan iklan.
Mengidentifikasi segmen jeda iklan dan menyisipkan diskontinuitas
Saat memproses setiap manifes varian, identifikasi tag EXT-X-CUE-IN dan
EXT-X-CUE-OUT dalam aliran Anda, yang menunjukkan awal dan akhir jeda
iklan.
Ganti tag EXT-X-CUE-IN dan EXT-X-CUE-OUT dengan elemen
EXT-X-DISCONTINUITY agar pemutar video klien dapat beralih antara
konten dan iklan.
Contoh manifes berikut menggantikan tag EXT-X-CUE-IN dan EXT-X-CUE-OUT:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Contoh berikut menunjukkan manifes yang diganti:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Segmen iklan DAI Google tidak dienkripsi. Jika konten Anda dienkripsi, hapus
enkripsi dengan menyisipkan elemen EXT-X-KEY:METHOD=NONE sebelum segmen iklan
pertama dari setiap jeda iklan. Di akhir jeda iklan, tambahkan kembali enkripsi dengan
menyisipkan EXT-X-KEY yang sesuai.
Melacak waktu mulai, durasi, dan indeks jeda iklan mendatang.
Membuat token Hash-based Message Authentication Code (HMAC)
Setiap permintaan segmen yang dibuat menggunakan penayangan pod pengalihan segmen harus menyertakan token yang ditandatangani HMAC untuk autentikasi.
Hitung token ini sekali per jeda iklan dan bagikan token di semua sesi streaming.
Mengumpulkan parameter token
Untuk mengisi isi token, kumpulkan informasi berikut dari jeda iklan saat ini:
| Parameter Token | ||
|---|---|---|
custom_asset_key
|
Wajib | Kunci aset livestream kustom dari Google Ad Manager. |
cust_params
|
Opsional | Parameter penargetan kustom. Lihat cust_params.
|
exp
|
Wajib | Stempel waktu masa berlaku untuk token saat ini dalam detik. |
network_code
|
Wajib | Kode jaringan Ad Manager 360. |
pod_id
|
Wajib | ID untuk jeda iklan. Bilangan bulat yang dimulai dari
1. Untuk setiap jeda iklan, ID ini bertambah satu.
Nilai ini harus sama di semua pengguna yang melihat jeda iklan yang sama dalam peristiwa saat ini. |
pd
|
Wajib diisi, kecuali untuk peristiwa dengan jeda iklan tanpa durasi yang diaktifkan. | Durasi jeda iklan dalam milidetik. Disebut sebagai
ad_pod_duration.
|
scte35
|
Opsional | Sinyal SCTE-35 berenkode Base64. DAI Google selalu menyalin sinyal ke
jeda iklan yang dibuat, meskipun sinyalnya salah.
Jika salah, Anda akan menerima pesan di header HTTP X-Ad-Manager-Dai-Warning dalam respons, dan sinyal tetap terus membuat jeda iklan. Untuk mengetahui detail tentang cara DAI menggunakan
sinyal SCTE-35, lihat penanda iklan
yang didukung.
|
Buat string token
Untuk membuat string token, cantumkan setiap parameter dalam urutan abjad,
dalam format NAME=VALUE,
dengan setiap pasangan nama-nilai dipisahkan oleh karakter tilde ~.
Untuk parameter opsional yang tidak digunakan, gunakan string kosong sebagai nilai, atau hapus parameter sepenuhnya.
Contoh berikut memformat string token:
custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE
Membuat tanda tangan HMAC
Tanda tangan HMAC adalah hash SHA-256 dari string token dalam format HEX. Kunci rahasia adalah kunci autentikasi HMAC yang terkait dengan acara livestream Anda di Google Ad Manager.
String token tanda tangan
Setelah Anda membuat tanda tangan HMAC, tambahkan tanda tangan ke string token dalam format berikut:
~hmac=HMAC_SIGNATURE
Encode string token
Untuk meneruskan token sebagai parameter URL, lakukan enkode pada URL agar aman.
Contoh berikut menghasilkan token HMAC yang ditandatangani dan dienkode dengan parameter opsional yang tidak digunakan berupa string kosong:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Contoh berikut menghasilkan token HMAC yang ditandatangani dan dienkode tanpa parameter opsional yang tidak digunakan:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Membangun URL segmen iklan
Ganti setiap segmen konten di antara tag EXT-X-DISCONTINUITY dengan URL yang mengarah ke metode segmen pod iklan.
Contoh berikut merakit segmen pod iklan. Perhatikan bahwa segmen iklan menggunakan indeks berbasis nol:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
Contoh berikut menyisipkan segmen pod iklan ke dalam manifes:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
Opsional: Jadwalkan jeda iklan
Untuk meningkatkan rasio pengisian, kirim Early Ad Break Notification (EABN) dengan durasi pod iklan, parameter penargetan kustom, dan data sinyal SCTE-35. Untuk mengetahui detail selengkapnya, lihat Mengirim notifikasi jeda iklan awal.