使用會話變數 - AWS Elemental MediaTailor

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用會話變數

配置 AWS Elemental (AWS Elemental) MediaTailor 若要將工作階段資料傳送到廣告決策伺服器 (ADS),請在範本 ADS URL 中,指定本節所列的一或多個變數。您可以使用個別變數,而您可以串連多個變數來建立單一值。 MediaTailor 會產生一些值,並從資訊清單和播放器的工作階段初始化請求之類的來源取得其他值。

下表説明您可以用於範本 ADS 請求 URL 組態的工作階段資料變數。表中列出的部分編號與 2019a 版的有線電信工程師協會 -35 規範相對應,電纜的數字程序插入提示消息,有關廣告預取的詳細信息,請參閲廣告預取

名稱 可用於廣告預取 SCTE-35 技術指標區段 描述
[avail.index] 一個數字,代表在索引中使用的廣告時段。在播放會話開始時, MediaTailor 會建立資訊清單中所有廣告時段的索引,並儲存剩餘工作階段的索引。時機 MediaTailor 向 ADS 發出請求以填補,其中包括廣告時段索引號碼。此參數可讓 ADS 使用競爭排除和頻率上限等功能,改善廣告選擇。
[avail.random] 介於 0 到 10,000,000,000 之間的隨機數字,作為長數字, MediaTailor 為 ADS 的每個請求生成。有些廣告伺服器使用此參數來啟用功能,例如區隔競爭公司的廣告。
[scte.archive_allowed_flag] 10.3.3.1 布林值。當此值為 0 時,將對段斷言錄製限制。如果此值為 1,則不會在段上聲明錄製限制。
[scte.avail_num] 9.7.2.1 解析的值 MediaTailor 從 SCTE-35 欄位avail_num,作為一個長數字。 MediaTailor 可以使用此值來指定線性廣告時段號碼。
[scte.avails_expected] 9,7.2.1 一個可選的長整值,用於提供當前事件中的預期可用次數。
[scte.delivery_not_restricted_flag] 10.3.3.1 布林值。當此值為 0 時,將保留接下來的五位。當此值為 1 時,接下來的五位採用 SCTE-35 規範中所述的含義。
[scte.device_restrictions] 10.3.3.1 一個可選的整數值,用於向三組預定義、獨立和非分層設備組發出信號。如需此變數的詳細資訊,請參段 _ 預期SCTE-35 技術指標中的詳細資訊。
[scte.event_id] 9.1 和 9.7.2.1 解析的值 MediaTailor 從 SCTE-35 欄位splice_event_id,作為一個長數字。 MediaTailor 使用此值來指定線性廣告時段號碼或填入廣告伺服器查詢字串,例如廣告組合位置。
[scte.no_regional_blackout_flag] 10.3.3.1 布林值。當此值為 0 時,區域封鎖限制將應用於區段。當此值為 1 時,區域封鎖限制不適用於區段。
[scte.segment_num] 10.3.3.1 一個可選的整數值,用於對段集閤中的段進行編號。如需此變數的詳細資訊,請參分段編號SCTE-35 技術指標中的詳細資訊。
[scte.segmentation_event_id] 10.3.3.1 MediaTailor 將此變量公開為scte.event_id
[scte.segmentation_type_id] 10.3.3.1 一個可選的 8 位整數值,用於指定分割類型。如需此變數的詳細資訊,請參分段類型 IDSCTE-35 技術指標中的詳細資訊。
[scte.segmentation_upid]

segmentation_upid_type:Yes

private_data:Yes

分段 _ upid:10.3.3.1

託管專用 UPID:10.3.3.3

SCTE-35 對應segmentation_upid元素。所以此segmentation_upid元素包含segmentation_upid_typesegmentation_upid_length

MediaTailor 支援以下版本segmentation_upid類型:

  • 廣告信息 (0x0e)-廣告信息 如需詳細資訊,請參閲 。分段 _ upidSCTE-35 技術指標中的詳細資訊。

  • 受管理的私有 UPID (0x0c)-SCTE-35 規範中定義的受管專用 UPID(MPU)結構。 MediaTailor 支持二進制或破折號 XML SCTE 表示。

    您可以在 POdbuster 工作流中使用此結構。若要執行此操作,請指定 32 位(4 字節)format_identifier,並將以下參數包括在private_data屬性:

    ABCD{"assetId":"my_program","cueData":{"cueType":"theAdType","key":"pb","value":"123456"}}

    MediaTailor 解析前一 JSON 的值,並將它們傳遞給scte.segmentation_upid.assetIdscte.segmentation_upid.cueData.key,以及scte.segmentation_upid.cueData.value動態變數。

  • 用户定義 (0x01)-用户定義的結構。如需詳細資訊,請參閲 。分段 _ upidSCTE-35 技術指標中的詳細資訊。

[scte.segmentation_upid.assetId] 與託管專用 UPID (0xC) 搭配使用segmentation_ upid_type,用於封鎖工作流程。 MediaTailor派生此值來自assetId參數在 MPU 的private_dataJSON 結構。如需詳細資訊,請參閱 Managed Private UPID JSON structure for a podbuster workflow
[scte.segmentation_upid.cueData.key] 與託管專用 UPID (0xC) 搭配使用segmentation_ upid_type,用於封鎖工作流程。 MediaTailor派生此值來自cueData.key參數在 MPU 的private_dataJSON 結構。如需詳細資訊,請參閱 Managed Private UPID JSON structure for a podbuster workflow
[scte.segmentation_upid.cueData.value] 與託管專用 UPID (0xC) 搭配使用segmentation_ upid_type,用於封鎖工作流程。 MediaTailor派生此值來自cueData.key參數在 MPU 的private_dataJSON 結構。如需詳細資訊,請參閱 Managed Private UPID JSON structure for a podbuster workflow
[scte.segments_expected] 10.3.3.1 一個可選的整數值,它給出一組段集閤中各個段的預期計數。如需此變數的詳細資訊,請參段 _ 預期SCTE-35 技術指標中的詳細資訊。
[scte.sub_segment_num] 10.3.3.1 一個可選的整數值,用於標識子段集閤中的特定子段。如需此變數的詳細資訊,請參子段數SCTE-35 技術指標中的詳細資訊。
[scte.sub_segments_expected] 10.3.3.1 一個可選的整數值,它給出子段集閤中各個子段的預期計數。如需此變數的詳細資訊,請參子段 _ 預期SCTE-35 技術指標中的詳細資訊。
[scte.unique_program_id] 9.7.2.1 解析的整數值 MediaTailor 從 SCTE-35splice_insert領域unique_program_id。ADS 會使用唯一計畫 ID (UPID) 以提供鎖定即時線性串流的計畫層級廣告。如果 SCTE-35 命令不是接合插入, MediaTailor 將其設為空的值。
[session.avail_duration_ms]

廣告可用性時段的持續時間 (毫秒)。預設值為 30 萬毫秒。AWS Elemental Elemental MediaTailor 會從輸入資訊清單獲取持續時間值,如下所示:

  • 對 HLS 來説, MediaTailor 獲取持續時間從#EXT-X-CUE-OUT: DURATION或者來自#EXT-X-DATERANGE標籤。如果在這些標籤中廣告時段的輸入資訊清單有 null、無效,或 0 持續時間, MediaTailor 使用預設。

  • 對於 DASH, MediaTailor 會從事件持續時間取得持續時間值 (如果有指定)。否則,它會使用預設值。

[session.avail_duration_secs] 廣告可用性時段或廣告時段的持續時間 (毫秒)。 MediaTailor 以決定的相同方式決定此值[session.avail_duration_ms]
[session.client_ip] 遠端 IP 地址, MediaTailor 請求來自。如果已設定 X-forwarded-for 標頭,則該值是 MediaTailor 用於 client_ip 的值。
[session.id] 目前播放工作階段的唯一數值識別符。播放器對工作階段提出的所有請求會具有相同的 ID,因此它可用於預期要與請求關聯以獲得單一檢視的 ADS 欄位。
[session.referer] 通常是託管視頻播放器的頁面的 URL。 MediaTailor 將此變量設置為Referer頭部,播放器在其請求中使用 MediaTailor。如果播放器未提供此標頭, MediaTailor 會將 [session.referer] 保留空白。如果您在清單終端節點之前使用內容傳送網絡 (CDN) 或代理,而您希望此變數顯示,請從此處的播放器代理正確的標頭。
[session.user_agent] 所以此User-Agent標頭 MediaTailor 從播放器的工作階段初始化請求收到。如果您在資訊清單端點之前使用 CDN 或 Proxy,您必須從此處的播放器代理正確的標頭。
[session.uuid]

替代[session.id]。這是目前播放工作階段的唯一識別符,例如以下:

e039fd39-09f0-46b2-aca9-9871cc116cde

如果 ADS 需要一個名為deviceSession傳遞的唯一工作階段標識符,即 AWS Elemental 中的範本 ADS URL MediaTailor看起來可能如下所示:

https://my.ads.server.com/path?deviceSession=[session.id]

AWS Elemental Elemental MediaTailor 會為每個串流自動產生唯一識別符,並輸入該識別符來取代session.id。如果標識符為1234567,最終請求 MediaTailor 使得 ADS 看起來像這樣:

https://my.ads.server.com/path?deviceSession=1234567

如果 ADS 需要傳遞多個查詢參數,則 AWS Elemental 中的模板 ADS URL MediaTailor 看起來可能如下所示:

https://my.ads.server.com/sample?e=[scte.avails_expected]&f=[scte.segment_num]&g=[scte.segments_expected]&h=[scte.sub_segment_num]&j=[scte.sub_segments_expected]&k=[scte.segmentation_type_id]

下面的 DASH 標記示例 XML 片段演示瞭如何使用scte35:SpliceInsert

<Period start="PT444806.040S" id="123456" duration="PT15.000S"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="1350000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095"> <scte35:SpliceInsert spliceEventId="1234567890" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1"> <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program> <scte35:BreakDuration autoReturn="true" duration="1350000"/> </scte35:SpliceInsert> </scte35:SpliceInfoSection>

下面的 DASH 標記示例 XML 片段演示瞭如何使用scte35:TimeSignal

<Period start="PT346530.250S" id="123456" duration="PT61.561S"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="5310000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095"> <scte35:TimeSignal> <scte35:SpliceTime ptsTime="3442857000"/> </scte35:TimeSignal> <scte35:SegmentationDescriptor segmentationEventId="1234567" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid> </scte35:SegmentationDescriptor> </scte35:SpliceInfoSection> </Event>

下面的 DASH 標記示例 XML 片段演示瞭如何使用scte35:Binary

<Period start="PT444806.040S" id="123456" duration="PT15.000S"> <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1"> <Event presentationTime="1541436240" duration="24" id="29"> <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016"> <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</Binary> </scte35:Signal> </Event> <Event presentationTime="1541436360" duration="24" id="30"> <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016"> <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</Binary> </scte35:Signal> </Event>

下列 HLS 標籤示範如何使用EXT-X-DATERANGE

#EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11: 15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0 00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50 000008700000000

下列 HLS 標籤示範如何使用EXT-X-CUE-OUT

#EXT-OATCLS-SCTE35:/DA0AAAAAAAAAAAABQb+ADAQ6QAeAhxDVUVJQAAAO3/PAAEUrEoICAAAAAAg+2UBNAAANvrtoQ== #EXT-X-ASSET:CAID=0x0000000020FB6501 #EXT-X-CUE-OUT:201.467

下列 HLS 標籤示範如何使用EXT-X-SPLICEPOINT-SCTE35

#EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==

下列範例示範如何使用scte35:Binary解碼:

{ "table_id": 252, "section_syntax_indicator": false, "private_indicator": false, "section_length": 33, "protocol_version": 0, "encrypted_packet": false, "encryption_algorithm": 0, "pts_adjustment": 0, "cw_index": 0, "tier": "0xFFF", "splice_command_length": 16, "splice_command_type": 5, "splice_command": { "splice_event_id": 448, "splice_event_cancel_indicator": false, "out_of_network_indicator": true, "program_splice_flag": true, "duration_flag": true, "splice_immediate_flag": false, "utc_splice_time": { "time_specified_flag": false, "pts_time": null }, "component_count": 0, "components": null, "break_duration": { "auto_return": false, "duration": { "pts_time": 2160000, "wall_clock_seconds": 24.0, "wall_clock_time": "00:00:24:00000" } }, "unique_program_id": 49152, "avail_num": 0, "avails_expected": 0 "segment_num": 0, "segments_expected": 0, "sub_segment_num": 0, "sub_segments_expected": 0 }, "splice_descriptor_loop_length": 0, "splice_descriptors": null, "Scte35Exception": { "parse_status": "SCTE-35 cue parsing completed with 0 errors.", "error_messages": [], "table_id": 252, "splice_command_type": 5 } }