सर्वर-साइड विज्ञापन स्टिचिंग के लिए, आपका मेनिफ़ेस्ट मैनिपुलेटर, Google DAI को विज्ञापन पॉड सेगमेंट के अनुरोध भेजता है. ज़्यादा जानकारी के लिए, विज्ञापन सेगमेंट के यूआरएल बनाना लेख पढ़ें.
इस पेज पर, एचएमएसी टोकन का इस्तेमाल करके, विज्ञापन पॉड सेगमेंट के अनुरोधों की पुष्टि करने के बारे में बताया गया है.
शुरू करने से पहले
जारी रखने से पहले, यह काम करें:
- ज़रूरी शर्तें पूरी करें.
- पक्का करें कि आपके Google Ad Manager खाते में, लाइव स्ट्रीम इवेंट के लिए पॉड रिसॉर्स की पुष्टि करने वाले कुकी के इस्तेमाल की अनुमति चालू हो.
HMAC टोकन जनरेट करना
टोकन जनरेट करने के लिए, यह तरीका अपनाएं:
- अपने पॉड सेगमेंट के अनुरोध के लिए, पाथ और क्वेरी पैरामीटर (auth-token को छोड़कर) इकट्ठा करें. पूरी सूची देखने के लिए, तरीका: पॉड सेगमेंट देखें.
अपने पैरामीटर को एक स्ट्रिंग में व्यवस्थित करें. आपको पैरामीटर को वर्णमाला के हिसाब से क्रम में लगाना होगा. साथ ही, उन्हें टिल्ड
~वर्ण से अलग करना होगा. उदाहरण के लिए:custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=POD_IDENTIFIERDAI की पुष्टि करने वाले पासकोड का इस्तेमाल करके, टोकन स्ट्रिंग का SHA-256 हैश कैलकुलेट करें.
हैश आउटपुट को हेक्साडेसिमल फ़ॉर्मैट में दिखाओ.
टोकन स्ट्रिंग पर हस्ताक्षर करने के लिए, पहले से इकट्ठा किए गए पैरामीटर के आखिर में सिग्नेचर जोड़ें:
custom_asset_key=...~hmac=HMAC_SIGNATUREHMAC_SIGNATUREकी जगह, उस हस्ताक्षर का इस्तेमाल करें जिसे आपने DAI ऑथेंटिकेशन कुंजी का इस्तेमाल करके, टोकन स्ट्रिंग को हैश करके जनरेट किया है.हस्ताक्षर किए गए टोकन स्ट्रिंग को सुरक्षित तरीके से पास करने के लिए, हस्ताक्षर किए गए टोकन स्ट्रिंग पर यूआरएल-कोडिंग लागू करें.
यहां दिए गए उदाहरण में, हस्ताक्षर किए गए टोकन स्ट्रिंग की यूआरएल-कोड में बदली गई वैल्यू जनरेट की गई है:
एचएलएस
# 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
एचएलएस विज्ञापन पॉड सेगमेंट के अनुरोध की पुष्टि करना
अपने पॉड संसाधन अनुरोधों की पुष्टि करने के लिए, auth-token क्वेरी स्ट्रिंग पैरामीटर का इस्तेमाल करके, यूआरएल-कोड में बदला गया हस्ताक्षर किया गया एचएमएसी टोकन पास करें.
एचएलएस
इस उदाहरण में, एचएलएस पॉड सेगमेंट के अनुरोध की पुष्टि करने के लिए, एचएमएसी टोकन का इस्तेमाल किया गया है:
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
...
DASH
इस उदाहरण में, 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
...