درخواست‌های مربوط به بخش پاد تبلیغات را تأیید کنید

برای ادغام تبلیغات سمت سرور، دستکاری‌کننده‌ی مانیفست شما درخواست‌های بخش‌بندی پاد تبلیغات را به Google DAI ارسال می‌کند. برای اطلاعات بیشتر، به ساخت URLهای بخش‌بندی تبلیغات مراجعه کنید.

این صفحه، احراز هویت درخواست‌های مربوط به بخش‌های پاد تبلیغات را با استفاده از توکن HMAC پوشش می‌دهد.

قبل از اینکه شروع کنی

قبل از ادامه، موارد زیر را انجام دهید:

  • پیش‌نیازها را تکمیل کنید.
  • مطمئن شوید که کلیدهای احراز هویت منابع پاد در رویداد پخش زنده شما در حساب Google Ad Manager شما فعال هستند.

یک توکن HMAC ایجاد کنید

برای تولید توکن، مراحل زیر را انجام دهید:

  1. پارامترهای مسیر و پرس و جو (به جز auth-token) را که برای درخواست pod segment شما پر شده‌اند، جمع‌آوری کنید. برای لیست کامل، به Method: pod segment مراجعه کنید.
  2. پارامترهای خود را در یک رشته واحد سازماندهی کنید. شما باید پارامترها را بر اساس حروف الفبا مرتب کنید و آنها را با کاراکتر ~ از هم جدا کنید، برای مثال:

    custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=POD_IDENTIFIER
    
  3. با استفاده از کلید احراز هویت DAI خود، هش SHA-256 رشته توکن را محاسبه کنید.

  4. خروجی هش را به صورت هگزادسیمال قالب‌بندی کنید.

  5. برای امضای رشته توکن، امضا را به انتهای پارامترهای جمع‌آوری‌شده قبلی اضافه کنید:

    custom_asset_key=...~hmac=HMAC_SIGNATURE
    

    HMAC_SIGNATURE با امضایی که با هش کردن رشته توکن با استفاده از کلید احراز هویت DAI خود ایجاد کرده‌اید، جایگزین کنید.

  6. برای ارسال ایمن رشته توکن امضا شده، کدگذاری URL را روی رشته توکن امضا شده اعمال کنید.

    مثال زیر مقدار رمزگذاری شده URL یک رشته توکن امضا شده را تولید می‌کند:

اچ ال اس

# 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

دش

# 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

درخواست بخش غلاف تبلیغات HLS را تأیید کنید

برای تأیید اعتبار درخواست‌های منابع pod خود، از پارامتر رشته پرس‌وجوی auth-token برای ارسال توکن HMAC امضا شده رمزگذاری شده با URL استفاده کنید.

اچ ال اس

مثال زیر از یک توکن HMAC برای احراز هویت درخواست قطعه پاد 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"

در صورت موفقیت، پاسخ زیر را مشاهده می‌کنید:

...
< 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
...

برای درک ساختار پاسخ و کدهای وضعیت، به Method: pod segment مراجعه کنید.

اگر احراز هویت ناموفق باشد، 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
...

دش

مثال زیر از یک توکن HMAC برای احراز هویت درخواست قطعه پاد 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"

در صورت موفقیت، پاسخ زیر را مشاهده می‌کنید:

...
HTTP/2 302
..
location: https://redirector.googlevideo.com/....
...

برای درک ساختار پاسخ و کدهای وضعیت، به Method: pod segment مراجعه کنید.

اگر احراز هویت ناموفق باشد، هشدار x-ad-manager-dai-warning را به صورت زیر مشاهده خواهید کرد:

...
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
...