في ما يتعلّق بدمج الإعلانات من جهة الخادم، يرسل معالج ملف البيان طلبات شرائح مجموعة إعلانات متسلسلة إلى "إدراج الإعلان الديناميكي" (DAI) من Google. لمزيد من المعلومات، يُرجى الاطّلاع على المقالة إنشاء عناوين URL لشرائح الإعلانات.
تتناول هذه الصفحة مصادقة طلبات شرائح مجموعة الإعلانات المتسلسلة باستخدام رمز HMAC المميّز.
قبل البدء
قبل المتابعة، يُرجى اتّخاذ الإجراءات التالية:
- أكمِل الـمتطلبات الأساسية.
- تأكَّد من تفعيل مفاتيح مصادقة مصدر مجموعة الإعلانات في حدث البث المباشر في حسابك على Google Ad Manager.
إنشاء رمز HMAC المميّز
لإنشاء رمز مميّز، يُرجى اتّباع الخطوات التالية:
- اجمَع المسار ومَعلمات طلب البحث (باستثناء auth-token) التي تم ملؤها لطلب شريحة مجموعة الإعلانات. للاطّلاع على قائمة كاملة، يُرجى مراجعة المقالة الطريقة: شريحة مجموعة الإعلانات.
نظِّم المَعلمات في سلسلة واحدة. يجب ترتيب المَعلمات أبجديًا وفصلها باستخدام علامة المدة
~، على سبيل المثال:custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=POD_IDENTIFIERاحسب قيمة تجزئة SHA-256 لسلسلة الرمز المميّز باستخدام مفتاح مصادقة "إدراج الإعلان الديناميكي".
نسِّق ناتج التجزئة بتنسيق سداسي عشري.
لتوقيع سلسلة الرمز المميّز، ألحِق التوقيع في نهاية المَعلمات التي تم جمعها سابقًا:
custom_asset_key=...~hmac=HMAC_SIGNATUREاستبدِل
HMAC_SIGNATUREبالتوقيع الذي أنشأته من خلال تجزئة سلسلة الرمز المميّز باستخدام مفتاح مصادقة "إدراج الإعلان الديناميكي".لتمرير سلسلة الرمز المميّز الموقَّعة بأمان، طبِّق ترميز عنوان URL على سلسلة الرمز المميّز الموقَّعة.
ينشئ المثال التالي القيمة المرمَّزة بعنوان URL لسلسلة رمز مميّز موقَّعة:
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
البث الديناميكي التكيُّفي عبر HTTP (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
مصادقة طلب شريحة مجموعة إعلانات متسلسلة HLS
لمصادقة طلبات مصدر مجموعة الإعلانات، استخدِم مَعلمة طلب البحث auth-token لتمرير رمز HMAC المميّز الموقَّع المرمَّز بعنوان URL.
HLS
يستخدم المثال التالي رمز 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
...
لفهم بنية الردّ ورموز الحالة، يُرجى الرجوع إلى المقالة الطريقة: شريحة مجموعة الإعلانات.
إذا تعذّرت المصادقة، سيظهر لك 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
...
البث الديناميكي التكيُّفي عبر HTTP (DASH)
يستخدم المثال التالي رمز 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/....
...
لفهم بنية الردّ ورموز الحالة، يُرجى الرجوع إلى المقالة الطريقة: شريحة مجموعة الإعلانات.
إذا تعذّرت المصادقة، سيظهر لك 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
...