Usando variáveis de sessão - 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á.

Usando variáveis de sessão

AWS Elemental MediaTailor Para configurar o envio de dados da sessão para o Ad Decision Server (ADS), no modelo ADSURL, especifique uma ou mais das variáveis listadas nesta seção. 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 URL configuração da ADS solicitação de modelo. Os números das seções listados na tabela correspondem à versão 2019a da especificação Society of Cable Telecommunications Engineers (SCTE) -35, Digital Program Insertion Cueing Message For Cable. 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 SCTESeção de especificação -35 Descrição
[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 disponibilizados em um manifesto e armazena o índice para o restante da sessão. Quando MediaTailor faz uma solicitação ao para preencher ADS a disponibilidade, ela inclui o número do índice de disponibilidade do anúncio. Esse parâmetro permite melhorar ADS a seleção de anúncios usando recursos como exclusão competitiva e limite 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 analisado por a MediaTailor partir do campo SCTE -35avail_num, como um número longo. MediaTailor Eu posso usar esse valor para designar números lineares e disponíveis.
[scte.avails_expected] Sim 9,7.2.1 Um valor longo opcional que fornece a contagem esperada de disponibilidades 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 especificação SCTE -35.
[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 segments_expected na especificação -35. SCTE
[scte.event_id]
Sim 9.1 e 9.7.2.1 O valor analisado por a MediaTailor partir do campo SCTE -35splice_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 caracteres de consulta do servidor de anúncios, como posições do pod de anúncios.
[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 dentro de uma coleção de segmentos. Para obter mais informações sobre essa variável, consulte a descrição segment_num na especificação -35. SCTE
[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 segmentation_type_id na especificação -35. SCTE
[scte.segmentation_upid]

segmentation_upid_type: sim

private_data: sim

segmentation_upid: 10.3.3.1

Privado gerenciadoUPID: 10.3.3.3

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

MediaTailor suporta os seguintes segmentation_upid tipos:

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

  • Managed Private UPID (0x0C) - A estrutura Managed Private UPID (MPU) conforme definida na especificação SCTE -35. MediaTailor suporta binários ou DASH XML SCTE representações.

    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 anteriores e JSON os passa para as scte.segmentation_upid.assetId variáveis scte.segmentation_upid.cueData.value dinâmicas e. scte.segmentation_upid.cueData.key

  • 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 -35. SCTE

[scte.segmentation_upid.assetId] Sim Usado em conjunto com o Managed Private UPID (0xC) segmentation_ upid_type para fluxos de trabalho de podbuster. MediaTailorderiva esse valor do assetId parâmetro na estrutura MPU do private_dataJSON. 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 Managed Private UPID (0xC) segmentation_ upid_type para fluxos de trabalho de podbuster. MediaTailorderiva esse valor do cueData.key parâmetro na estrutura MPU do private_dataJSON. 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 Managed Private UPID (0xC) segmentation_ upid_type para fluxos de trabalho de podbuster. MediaTailorderiva esse valor do cueData.key parâmetro na estrutura MPU do private_dataJSON. Para obter mais informações, consulte Managed Private UPID JSON structure for a podbuster workflow.
[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 -35. SCTE
[scte.sub_segment_num] Sim 10.3.3.1 Um valor inteiro opcional que identifica um subsegmento específico dentro de 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 -35. SCTE
[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 sub_segments_expected na especificação -35. SCTE
[scte.unique_program_id] Sim 9.7.2.1 O valor inteiro analisado por a MediaTailor partir do campo SCTE splice_insert -35. unique_program_id O ADS usa o ID exclusivo do programa (UPID) para fornecer segmentação de anúncios em nível de programa para transmissões lineares ao vivo. Se o comando SCTE -35 não for inserção de emenda, MediaTailor defina isso como um valor vazio.
[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:

  • ParaHLS: 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 use o padrão.

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

  • ParaVOD: quando um VOD stream aciona uma chamada publicitária pré-lançada, se o manifesto não incluir SCTE mensagens com um valor de duração, MediaTailor não insira uma duração para a [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. Se o X-forwarded-for cabeçalho estiver definido, esse valor é o que é MediaTailor usado para client_ip o.
[session.id] Não Um identificador numérico exclusivo para a sessão de reprodução atual. Todas as solicitações que um jogador faz para uma sessão têm o mesmo ID, portanto, ele pode ser usado para ADS campos destinados a correlacionar solicitações para uma única visualização.
[session.referer] Não Normalmente, URL a página que está hospedando o player de vídeo. MediaTailor define essa variável com o valor do Referer cabeçalho que o player usou em sua solicitação para MediaTailor. Se o player não fornecer esse cabeçalho, MediaTailor deixa o [session.referer] vazio. Se você usar uma rede de distribuição de conteúdo (CDN) ou proxy na frente do endpoint do manifesto e quiser que essa variável apareça, faça o proxy do 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 jogador. Se você estiver usando um proxy CDN or na frente do endpoint do manifesto, deverá fazer o proxy do cabeçalho correto do player aqui.
[session.uuid] Não

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

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

Se o ADS exigir que um parâmetro de consulta chamado deviceSession seja passado com o identificador de sessão exclusivo, o modelo ADS URL AWS Elemental MediaTailor poderá ter a seguinte aparência:

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 ADS URL 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 XML fragmento de exemplo de DASH marcador 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 XML fragmento de exemplo de DASH marcador 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 XML fragmento de exemplo de DASH marcador 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 HLS tag 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 HLS tag 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 HLS tag 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 } }