View a markdown version of this page

MediaTailor variáveis de sessão para solicitações do ADS - AWS Elemental MediaTailor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

MediaTailor variáveis de sessão para solicitações do ADS

AWS Elemental MediaTailor envia dados da sessão para o Ad Decision Server (ADS) quando você configura AWS Elemental MediaTailor para especificar uma ou mais das variáveis listadas nesta seção no modelo de URL do ADS. Você pode usar variáveis individuais e concatenar várias variáveis para criar um único valor. MediaTailor gera alguns valores e obtém o restante de fontes como o manifesto e a solicitação de inicialização da sessão do player.

A tabela a seguir descreve as variáveis de dados da sessão que você pode usar na configuração do seu modelo de URL de solicitação do ADS. Os números das seções listados na tabela correspondem à versão 2019a da especificação da Society of Cable Telecommunications Engineers (SCTE) -35, Digital Program Insertion Cueing Message. Para obter detalhes sobre a pré-busca de anúncios, consulte. Pré-busca de anúncios

Nome Disponível para pré-busca de anúncios SCTE-35 seção de especificação Description
[avail.index] Sim Um número que representa a posição de um anúncio disponível em um índice. No início de uma sessão de reprodução, MediaTailor cria um índice de todos os anúncios disponíveis em um manifesto e armazena o índice para o restante da sessão. Quando MediaTailor faz uma solicitação ao ADS para preencher a disponibilidade, ela inclui o número do índice de disponibilidade do anúncio. Esse parâmetro permite que o ADS melhore a seleção de anúncios usando recursos como exclusão competitiva e limitação de frequência.
[avail.random] Sim Um número aleatório entre 0 e 10.000.000.000, como um número longo, que é MediaTailor gerado para cada solicitação ao ADS. Alguns servidores de anúncios usam esse parâmetro para habilitar recursos como separar anúncios de empresas concorrentes.
[scte.archive_allowed_flag] Sim 10.3.3.1 Um valor booleano opcional. Quando esse valor é 0, as restrições de gravação são declaradas no segmento. Quando esse valor é 1, as restrições de gravação não são declaradas no segmento.
[scte.avail_num] Sim 9.7.2.1 O valor MediaTailor analisado pelo SCTE-35 campoavail_num, como um número longo. MediaTailor Eu posso usar esse valor para designar números lineares e disponíveis.

O valor deve ser um número inteiro.

[scte.avails_expected] Sim 9,7.2.1 Um valor longo opcional que fornece a contagem esperada de aproveitamentos no evento atual.
[scte.delivery_not_restricted_flag] Sim 10.3.3.1 Um valor booleano opcional. Quando esse valor é 0, os próximos cinco bits são reservados. Quando esse valor é 1, os próximos cinco bits assumem os significados descritos na SCTE-35 especificação.
[scte.device_restrictions] Sim 10.3.3.1 Um valor inteiro opcional que sinaliza três grupos de dispositivos predefinidos, independentes e não hierárquicos. Para obter mais informações sobre essa variável, consulte a descrição de segments_expected na especificação. SCTE-35
[scte.event_id]
Sim 9.1 e 9.7.2.1 O valor MediaTailor analisado pelo SCTE-35 camposplice_event_id, como um número longo. MediaTailor usa esse valor para designar números lineares de disponibilidade de anúncios ou para preencher cadeias de consulta do servidor de anúncios, como posições de pod de anúncios.

O valor deve ser um número inteiro.

[scte.no_regional_blackout_flag] Sim 10.3.3.1 Um valor booleano opcional. Quando esse valor é 0, as restrições regionais de blackout se aplicam ao segmento. Quando esse valor é 1, as restrições regionais de blackout não se aplicam ao segmento.
[scte.segment_num] Sim 10.3.3.1 Um valor inteiro opcional que numera segmentos em uma coleção de segmentos. Para obter mais informações sobre essa variável, consulte a descrição do segment_num na especificação. SCTE-35
[scte.segmentation_event_id] Sim 10.3.3.1 MediaTailor expõe essa variável comoscte.event_id.
[scte.segmentation_type_id] Sim 10.3.3.1 Um valor inteiro opcional de 8 bits que especifica o tipo de segmentação. Para obter mais informações sobre essa variável, consulte a descrição de segmentation_type_id na especificação. SCTE-35
[scte.segmentation_upid]

segmentation_upid_type: Sim

private_data: Sim

segmentation_upid: 10.3.3.1

UPID privado gerenciado: 10.3.3.3

Corresponde ao SCTE-35 segmentation_upid elemento. O segmentation_upid elemento contém segmentation_upid_type segmentation_upid_length e.

MediaTailor suporta os seguintes segmentation_upid tipos:

  • Informações sobre ADS (0x0E) - Informações publicitárias. Para obter mais informações, consulte a descrição de segmentation_upid na especificação. SCTE-35

  • UPID privado gerenciado (0x0C) - A estrutura do UPID privado gerenciado (MPU) conforme definido na especificação. SCTE-35 MediaTailor suporta representações binárias ou DASH XML SCTE.

    Você pode usar essa estrutura em um fluxo de trabalho de podbuster. Para fazer isso, especifique 32 bits (4 bytes) format_identifier e inclua os seguintes parâmetros no private_data atributo:

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

    MediaTailor analisa os valores do JSON anterior e os passa para as variáveis dinâmicas scte.segmentation_upid.assetIdscte.segmentation_upid.cueData.key, escte.segmentation_upid.cueData.value.

  • Definido pelo usuário (0x01) - Uma estrutura definida pelo usuário. Para obter mais informações, consulte a descrição de segmentation_upid na especificação. SCTE-35

[scte.segmentation_upid.assetId] Sim Usado em conjunto com o UPID privado gerenciado (0xC) segmentation_ upid_type para fluxos de trabalho do podbuster. MediaTailorderiva esse valor do assetId parâmetro na estrutura private_data JSON da MPU. Para obter mais informações, consulte Managed Private UPID JSON structure for a podbuster workflow.
[scte.segmentation_upid.cueData.key] Sim Usado em conjunto com o UPID privado gerenciado (0xC) segmentation_ upid_type para fluxos de trabalho do podbuster. MediaTailorderiva esse valor do cueData.key parâmetro na estrutura private_data JSON da MPU. Para obter mais informações, consulte Managed Private UPID JSON structure for a podbuster workflow.
[scte.segmentation_upid.cueData.value] Sim Usado em conjunto com o UPID privado gerenciado (0xC) segmentation_ upid_type para fluxos de trabalho do podbuster. MediaTailorderiva esse valor do cueData.key parâmetro na estrutura private_data JSON da MPU. Para obter mais informações, consulte Managed Private UPID JSON structure for a podbuster workflow.

O valor pode ser uma string.

[scte.segmentation_upid.private_data.{index}] Sim Usado em conjunto com o UPID privado gerenciado (0xC) segmentation_upid_type para fluxos de trabalho de publicidade direcionados. MediaTailor divide tokens UPID de segmentação delimitados por dois pontos e cria variáveis de sessão indexadas. O índice corresponde à posição na lista delimitada por dois pontos, ignorando o espaço em branco inicial dos dois pontos iniciais.

Por exemplo, sesegmentation_upid = ":3213214:2313321/5:3943", então:

  • [scte.segmentation_upid.private_data.0] = 3213214

  • [scte.segmentation_upid.private_data.1] = 2313321/5

  • [scte.segmentation_upid.private_data.2] = 3943

O valor pode ser uma string.

[scte.segments_expected] Sim 10.3.3.1 Um valor inteiro opcional que fornece a contagem esperada de segmentos individuais em uma coleção de segmentos. Para obter mais informações sobre essa variável, consulte a descrição segments_expected na especificação. SCTE-35
[scte.sub_segment_num] Sim 10.3.3.1 Um valor inteiro opcional que identifica um subsegmento específico em uma coleção de subsegmentos. Para obter mais informações sobre essa variável, consulte a descrição do sub_segment_num na especificação. SCTE-35
[scte.sub_segments_expected] Sim 10.3.3.1 Um valor inteiro opcional que fornece a contagem esperada de subsegmentos individuais em uma coleção de subsegmentos. Para obter mais informações sobre essa variável, consulte a descrição de sub_segments_expected na especificação. SCTE-35
[scte.unique_program_id] Sim 9.7.2.1 O valor inteiro analisado pelo MediaTailor campo. SCTE-35 splice_insert unique_program_id O ADS usa o ID exclusivo de programa (UPID) para fornecer direcionamento de anúncios em nível de programa para streamings lineares ao vivo. Se o SCTE-35 comando não for splice insert, MediaTailor define isso como um valor vazio.

O valor deve ser um número inteiro.

[session.avail_duration_ms] Sim

A duração em milissegundos do espaço de disponibilidade do anúncio. O valor padrão é 300.000 ms. AWS Elemental MediaTailor obtém o valor da duração do manifesto de entrada da seguinte forma:

  • Para HLS: MediaTailor obtém a duração dos #EXT-X-CUE-OUT: DURATION ou dos valores na #EXT-X-DATERANGE tag. Se o manifesto de entrada tiver uma duração nula, inválida ou 0 para o anúncio disponível nessas tags, MediaTailor usará o padrão.

  • Para DASH: MediaTailor obtém o valor da duração da duração do evento, se um for especificado. Do contrário, ele usa o valor padrão.

  • Para VOD: quando um fluxo de VOD aciona uma chamada de anúncio preliminar, se o manifesto não incluir mensagens SCTE com um valor de duração, MediaTailor não insere uma duração para [session.avail_duration_ms], incluindo o valor de duração padrão.

[session.avail_duration_secs] Sim A duração em segundos do espaço de disponibilidade do anúncio, ou disponibilidade do anúncio, arredondada para o segundo mais próximo. MediaTailor determina esse valor da mesma forma que determina[session.avail_duration_ms].
[session.client_ip] Não O endereço IP remoto de onde veio a MediaTailor solicitação. Caso o cabeçalho X-forwarded-for esteja definido, esse valor é o usado pelo MediaTailor no client_ip.
[session.id] Não Um identificador numérico exclusivo para a sessão de reprodução atual. Como todas as solicitações feitas por um player para uma sessão têm o mesmo ID, ele pode ser usado em campos ADS que devem correlacionar solicitações de uma única exibição.
[session.referer] Não Normalmente, o URL da página que hospeda o player de vídeo. MediaTailor define essa variável como o valor do Referer cabeçalho que o jogador usou em sua solicitação MediaTailor. Caso o player não forneça esse cabeçalho, o MediaTailor deixa o [session.referer] vazio. Se você usa uma rede de entrega de conteúdo (CDN) ou proxy na frente do endpoint do manifesto e deseja que essa variável apareça, transfira o cabeçalho correto do player aqui.
[session.user_agent] Não O User-Agent cabeçalho MediaTailor recebido da solicitação de inicialização da sessão do player. Caso esteja usando uma CDN ou um proxy à frente do endpoint do manifesto, você deve adicionar o cabeçalho correto do player aqui.
[session.uuid] Não

Alternativa [session.id] a. Este é um identificador exclusivo para a sessão de reprodução atual, como o seguinte:

e039fd39-09f0-46b2-aca9-9871cc116cde
[avail.source_content_time_epoch_ms] Não

Para HLS, o valor é o PDT do segmento de origem que iniciou a disponibilização. Para DASH, o valor é o <SupplementalProperty> urn:scte:dash:utc-time do <Period> que contém o. <EventStream>

  • Para anúncios HLS ou DASH pré-lançados, [avail.source_content_time_epoch_ms] é o PDT do primeiro segmento HLS e o do primeiro. <SupplementalProperty> urn:scte:dash:utc-time <Period> Para transmissões ao vivo com janelas curtas de manifesto, esse valor será diferente para cada espectador com base em quando eles começarem a assistir à transmissão. Para uma transmissão ao vivo com uma janela completa do DVR do evento, o valor será o mesmo para cada espectador.

  • Para utilizações parciais devido à supressão de disponibilidade, [avail.source_content_time_epoch_ms] é o PDT do segmento de conteúdo de origem que iniciou a disponibilização. Por exemplo, se MediaTailor remover os primeiros 20 segundos da disponibilidade, ainda [avail.source_content_time_epoch_ms] será definido como o PDT original, sem ser alterado em 20 segundos.

  • Para solicitações de pré-busca do ADS, [avail.source_content_time_epoch_ms] está vazio, no entanto, os clientes podem configurá-lo usando variáveis dinâmicas de recuperação do cronograma de pré-busca.

exemplo

Caso o ADS exija um parâmetro de consulta chamado deviceSession a ser passado com o identificador da sessão exclusivo, o URL ADS do modelo em AWS Elemental MediaTailor pode se parecer com o seguinte:

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

AWS Elemental MediaTailor gera automaticamente um identificador exclusivo para cada fluxo e insere o identificador no lugar desession.id. Se o identificador for1234567, a solicitação final MediaTailor feita ao ADS seria mais ou menos assim:

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

Se o ADS exigir que vários parâmetros de consulta sejam passados, o modelo de URL do ADS AWS Elemental MediaTailor pode ter a seguinte aparência:

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]

O exemplo de fragmento XML do marcador DASH a seguir mostra como usar: 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>

O exemplo de fragmento XML do marcador DASH a seguir mostra como usar: 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>

O exemplo de fragmento XML do marcador DASH a seguir mostra como usar: 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>

O exemplo de tag HLS a seguir mostra como usarEXT-X-DATERANGE:

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

O exemplo de tag HLS a seguir mostra como usarEXT-X-CUE-OUT:

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

O exemplo de tag HLS a seguir mostra como usarEXT-X-SPLICEPOINT-SCTE35:

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

O exemplo a seguir mostra como usar a scte35:Binary decodificação:

{ "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 } }