Untuk penggabungan iklan sisi server, manipulator manifes Anda membuat permintaan segmen pod iklan ke DAI Google. Untuk mengetahui informasi selengkapnya, lihat Membangun URL segmen iklan.
Halaman ini membahas cara mengautentikasi permintaan segmen pod iklan menggunakan token HMAC.
Sebelum memulai
Sebelum Anda melanjutkan, lakukan hal berikut:
- Selesaikan prasyarat.
- Pastikan kunci autentikasi resource Pod diaktifkan di acara livestream di akun Google Ad Manager Anda.
Membuat token HMAC
Untuk membuat token, lakukan hal berikut:
- Kumpulkan parameter jalur dan kueri (kecuali auth-token) yang diisi untuk permintaan segmen pod Anda. Untuk mengetahui daftar lengkapnya, lihat Metode: segmen pod.
Atur parameter Anda ke dalam satu string. Anda harus mengurutkan parameter berdasarkan abjad dan memisahkannya dengan karakter tilde
~, misalnya:custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=POD_IDENTIFIERHitung hash SHA-256 string token menggunakan kunci autentikasi DAI Anda.
Memformat output hash dalam heksadesimal.
Untuk menandatangani string token, tambahkan tanda tangan di akhir parameter yang dikumpulkan sebelumnya:
custom_asset_key=...~hmac=HMAC_SIGNATUREGanti
HMAC_SIGNATUREdengan tanda tangan yang Anda buat dengan melakukan hashing pada string token menggunakan kunci autentikasi DAI Anda.Untuk meneruskan string token bertanda tangan dengan aman, terapkan encoding URL ke string token bertanda tangan.
Contoh berikut menghasilkan nilai yang dienkode URL dari string token bertanda tangan:
HLS
# Add 60 seconds to the current time
future_epoch=$((EPOCHSECONDS + 60))
echo "Current: $EPOCHSECONDS"
echo "Future: $future_epoch"
# Current: 1774465950
# Future: 1774466010
# Sample DAI pod resource authentication key
key="EB08..."
# Sort parameters in the token string
token="ad_break_id=ab1~custom_asset_key=hls-pod-serving-redirect-auth-stream-pod~exp=1774466010~network_code=21775744923~pd=30000"
# Generate the token's signature.
echo -n $token | openssl dgst -sha256 -mac HMAC -macopt key:$key
# SHA2-256(stdin)= ff38abab31b436351e20ecd57bcc5b97acd9461abb71c4cf9c9731add965ecf2
# Sign the token: ad_break_id=ab1~custom_asset_key=hls-pod-serving-redirect-auth-stream-pod~exp=1774466010~network_code=21775744923~pd=30000~hmac=ff38abab31b436351e20ecd57bcc5b97acd9461abb71c4cf9c9731add965ecf2
# Encode the token: ad_break_id%3Dab1~custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-pod~exp%3D1774466010~network_code%3D21775744923~pd%3D30000~hmac%3Dff38abab31b436351e20ecd57bcc5b97acd9461abb71c4cf9c9731add965ecf2
DASH
# Add 60 seconds to the current time
future_epoch=$((EPOCHSECONDS + 60))
echo "Current: $EPOCHSECONDS"
echo "Future: $future_epoch"
# Current: 1769540517
# Future: 1769540577
# Sample DAI pod resource authentication key
key="EB08..."
# Sort parameters in the token string
token="ad_break_id=ab1~custom_asset_key=dash-pod-serving-redirect-auth-stream-pod~exp=1774466641~network_code=21775744923~pd=30000"
# Generate the token's signature.
echo -n $token | openssl dgst -sha256 -mac HMAC -macopt key:$key
# SHA2-256(stdin)= 7249f9193778f2318314519ff2cea5c47958bc7fdd2eaf24008352867af0a050
# Sign the token: ad_break_id=ab1~custom_asset_key=dash-pod-serving-redirect-auth-stream-pod~exp=1774466641~network_code=21775744923~pd=30000~hmac=7249f9193778f2318314519ff2cea5c47958bc7fdd2eaf24008352867af0a050
# Encode the token: ad_break_id%3Dab1~custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-pod~exp%3D1774466641~network_code%3D21775744923~pd%3D30000~hmac%3D7249f9193778f2318314519ff2cea5c47958bc7fdd2eaf24008352867af0a050
Mengautentikasi permintaan segmen pod iklan HLS
Untuk mengautentikasi permintaan resource pod, gunakan parameter string kueri auth-token
untuk meneruskan token HMAC bertanda tangan yang dienkode URL.
HLS
Contoh berikut menggunakan token HMAC untuk mengautentikasi permintaan segmen pod HLS:
curl --include "https://dai.google.com/linear/pods/v1/seg/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/ad_break_id/ab1/profile/media-ts-4628000bps/0.ts?stream_id=51b85d28-7ed5-48da-bfd8-e013b7d7b204:DLS&&sd=10000&pd=30000&auth-token=ad_break_id%3Dab1~custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-pod~exp%3D1774466010~network_code%3D21775744923~pd%3D30000~hmac%3Dff38abab31b436351e20ecd57bcc5b97acd9461abb71c4cf9c9731add965ecf2"
Jika berhasil, Anda akan melihat respons berikut:
...
< HTTP/2 302
< access-control-allow-headers: Authorization
< access-control-allow-origin: *
< access-control-expose-headers: Location
< cache-control: no-cache, no-store, max-age=0, must-revalidate
< date: Wed, 25 Mar 2026 18:13:40 GMT
< expires: Mon, 01 Jan 1990 00:00:00 GMT
< location: https://redirector.googlevideo.com/....
< pragma: no-cache
< x-content-type-options: nosniff
< x-frame-options: SAMEORIGIN
...
Untuk memahami struktur respons dan kode status, lihat Metode: segmen pod.
Jika autentikasi gagal, Anda akan melihat x-ad-manager-dai-warning:
...
< HTTP/2 302
< access-control-allow-headers: Authorization
< access-control-allow-origin: *
< access-control-expose-headers: Location
< cache-control: no-cache, no-store, max-age=0, must-revalidate
< date: Wed, 25 Mar 2026 18:17:21 GMT
< expires: Mon, 01 Jan 1990 00:00:00 GMT
< location: https://redirector.googlevideo.com/....
< pragma: no-cache
< x-ad-manager-dai-warning: Unable to create ad break due to Unauthorized error (skipping ad break creation)
< x-content-type-options: nosniff
...
DASH
Contoh berikut menggunakan token HMAC untuk mengautentikasi permintaan segmen pod DASH:
curl --include "https://dai.google.com/linear/pods/v1/seg/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/ad_break_id/ab1/profile/media-ts-4628000bps/0.ts?stream_id=8b061ab5-1efc-4e4d-882f-ae3c071df854:ATL&&sd=10000&pd=30000&auth-token=ad_break_id%3Dab1~custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-pod~exp%3D1774466641~network_code%3D21775744923~pd%3D30000~hmac%3D7249f9193778f2318314519ff2cea5c47958bc7fdd2eaf24008352867af0a050"
Jika berhasil, Anda akan melihat respons berikut:
...
HTTP/2 302
..
location: https://redirector.googlevideo.com/....
...
Untuk memahami struktur respons dan kode status, lihat Metode: segmen pod.
Jika autentikasi gagal, Anda akan melihat x-ad-manager-dai-warning sebagai berikut:
...
HTTP/2 302
..
location: https://redirector.googlevideo.com/....
pragma: no-cache
x-ad-manager-dai-warning: Unable to create ad break due to Unauthorized error (skipping ad break creation)
x-content-type-options: nosniff
...