

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 dinâmicas de anúncios para solicitações de ADS
<a name="variables"></a>

AWS Elemental MediaTailor usa variáveis dinâmicas de anúncios para passar informações da sua sessão de visualização para o servidor de decisão de anúncios (ADS). Essas informações ajudam o ADS a selecionar os anúncios mais relevantes para seus espectadores.

Esta seção fornece uma visão geral das variáveis dinâmicas do anúncio e links para guias de implementação específicos. Para obter instruções de step-by-step configuração, consulte os tópicos individuais abaixo.

**Tipos de variáveis dinâmicas**  
MediaTailor suporta quatro tipos de variáveis dinâmicas:
+ **Variáveis de sessão** — valores gerados automaticamente, como ID da sessão e dados SCTE-35. Consulte [MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md).
+ **Variáveis do player** — Parâmetros personalizados enviados pelo seu player de vídeo. Consulte [MediaTailor variáveis de jogador para solicitações de ADS](variables-player.md).
+ **Variáveis de domínio** com **aliases de configuração** — Domínios de URL dinâmicos para configurações de várias origens. 
+ **Aliases de configuração** — mapeamentos predefinidos para substituição dinâmica de variáveis. Consulte [Aliases de configuração](configuration-aliases-overview.md).

**Casos de uso comuns**  
Use variáveis de anúncios dinâmicos para:
+ Passe os dados demográficos e as preferências dos espectadores para seu ADS
+ Encaminhe solicitações para origens diferentes com base na localização geográfica
+ Permita a visualização com mudança de horário com integração MediaPackage 
+ Implemente A/B cenários de teste e failover

As seções a seguir fornecem detalhes adicionais sobre o uso de variáveis dinâmicas de anúncios com MediaTailor.

**Topics**
+ [Variáveis de sessão](variables-session.md)
+ [Variáveis do jogador](variables-player.md)
+ [Variáveis de domínio](variables-domains.md)
+ [Aliases de configuração](configuration-aliases-overview.md)
+ [Passando parâmetros do ADS](passing-paramters-to-the-ads.md)
+ [Roteamento de parâmetros](parameter-routing-behavior.md)
+ [Integração do MediaPackage](mediapackage-integration-param.md)
+ [Comportamento da sessão](parameter-session-behavior.md)
+ [Referência a parâmetros](parameter-comprehensive-reference.md)
+ [Solução de problemas de parâmetros](parameter-troubleshooting.md)
+ [Solução de problemas de aliases](configuration-aliases-troubleshooting.md)

Para requisitos de formatação de parâmetros e solução de problemas, consulte [MediaTailor referência e limitações de parâmetros](parameter-comprehensive-reference.md) e. [MediaTailor guia de solução de problemas de parâmetros](parameter-troubleshooting.md)

# MediaTailor variáveis de sessão para solicitações de ADS
<a name="variables-session"></a>

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 em seu modelo de configuração de URL de solicitação do ADS. Os números das seções listados na tabela correspondem à versão 2019a da especificação -35 da Society of Cable Telecommunications Engineers (SCTE) -35, [Digital Program Insertion Cueing Message. Para obter detalhes sobre a pré-busca de anúncios](https://account.scte.org/standards/library/catalog/scte-35-digital-program-insertion-cueing-message/), consulte. [Pré-busca de anúncios](prefetching-ads.md)


| Nome | Disponível para pré-busca de anúncios | Seção de especificação SCTE-35 | 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 disponibilizados 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\$1allowed\$1flag] | 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\$1num] | Sim | 9.7.2.1 | O valor analisado pelo MediaTailor campo SCTE-35avail\$1num, 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\$1expected] | Sim | 9,7.2.1 | Um valor longo opcional que fornece a contagem esperada de disponibilidades no evento atual. | 
| [scte.delivery\$1not\$1restricted\$1flag] | 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\$1restrictions] | 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\$1expected na especificação SCTE-35. | 
| [scte.event\$1id] | Sim | 9.1 e 9.7.2.1 | O valor analisado pelo MediaTailor campo SCTE-35splice\$1event\$1id, 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.O valor deve ser um número inteiro. | 
| [scte.no\$1regional\$1blackout\$1flag] | 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\$1num] | 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\$1num na especificação SCTE-35. | 
| [scte.segmentation\$1event\$1id]  | Sim | 10.3.3.1 | MediaTailor expõe essa variável como[scte.event_id](#scte.event_id). | 
| [scte.segmentation\$1type\$1id] | 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\$1type\$1id na especificação SCTE-35. | 
| [scte.segmentation\$1upid] |  `segmentation_upid_type`: Sim `private_data`: Sim  |  **segmentation\$1upid**: 10.3.3.1 UPID privado gerenciado: 10.3.3.3  |  Corresponde ao elemento SCTE-35`segmentation_upid`. O `segmentation_upid` elemento contém `segmentation_upid_type` `segmentation_upid_length` e. MediaTailor suporta os seguintes `segmentation_upid` tipos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/variables-session.html)  | 
| [scte.segmentation\$1upid.assetId] | Sim |  | Usado em conjunto com o Managed Private UPID (0xC) segmentation\$1 upid\$1type para fluxos de trabalho de podbuster. MediaTailorderiva esse valor do assetId parâmetro na estrutura JSON do MPU. private\$1data Para obter mais informações, consulte [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.key] | Sim |  | Usado em conjunto com o Managed Private UPID (0xC) segmentation\$1 upid\$1type para fluxos de trabalho de podbuster. MediaTailorderiva esse valor do cueData.key parâmetro na estrutura JSON do MPU. private\$1data Para obter mais informações, consulte [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.value] | Sim |  | Usado em conjunto com o Managed Private UPID (0xC) segmentation\$1 upid\$1type para fluxos de trabalho de podbuster. MediaTailorderiva esse valor do cueData.key parâmetro na estrutura JSON do MPU. private\$1data Para obter mais informações, consulte [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow).O valor pode ser uma string. | 
| [scte.segmentation\$1upid.private\$1data.\$1index\$1] | Sim |  | Usado em conjunto com o UPID privado gerenciado (0xC) segmentation\$1upid\$1type para fluxos de trabalho de publicidade direcionada. 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, se`segmentation_upid = ":3213214:2313321/5:3943"`, então: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/variables-session.html) O valor pode ser uma string. | 
| [scte.segments\$1expected] | 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\$1expected na especificação SCTE-35. | 
| [scte.sub\$1segment\$1num] | 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\$1segment\$1num na especificação SCTE-35. | 
| [scte.sub\$1segments\$1expected] | 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\$1segments\$1expected na especificação SCTE-35. | 
| [scte.unique\$1program\$1id] | Sim | 9.7.2.1 | O valor inteiro analisado pelo campo MediaTailor splice\$1insert SCTE-35. unique\$1program\$1id 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 comando SCTE-35 não for inserção de emenda, MediaTailor defina-o como um valor vazio.O valor deve ser um número inteiro. | 
| [session.avail\$1duration\$1ms] | 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/variables-session.html)  | 
| [session.avail\$1duration\$1secs] | 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\$1duration\$1ms]. | 
| [session.client\$1ip] | 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\$1ip. | 
| [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 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. Caso o player não forneça esse cabeçalho, o MediaTailor deixa o [session.referer] vazio. Se você usa 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\$1agent] | Não |  | O User-Agent cabeçalho MediaTailor recebido da solicitação de inicialização da sessão do jogador. 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: <pre>e039fd39-09f0-46b2-aca9-9871cc116cde</pre>  | 
| [avail.source\$1content\$1time\$1epoch\$1ms] | Não |  |  Para HLS, o valor é o PDT do segmento de origem que iniciou a disponibilidade. Para DASH, o valor é o `<SupplementalProperty> urn:scte:dash:utc-time` do `<Period>` que contém o. `<EventStream>` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/variables-session.html)  | 

**Example**  
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 de`session.id`. Se o identificador for`1234567`, 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 transmitidos, o modelo de URL do ADS AWS Elemental MediaTailor poderá 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 seguinte exemplo de fragmento XML do marcador DASH 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 seguinte exemplo de fragmento XML do marcador DASH 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 seguinte exemplo de fragmento XML do marcador DASH 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 usar`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
```
O exemplo de tag HLS a seguir mostra como usar`EXT-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 usar`EXT-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
  }
}
```

# MediaTailor variáveis de jogador para solicitações de ADS
<a name="variables-player"></a>

AWS Elemental MediaTailor envia dados recebidos do player para o ADS quando você configura AWS Elemental MediaTailor para especificar `player_params.<query_parameter_name>` variáveis no URL do ADS do modelo. Por exemplo, se o player enviar um parâmetro de consulta nomeado `user_id` em sua solicitação para MediaTailor, para transmitir esses dados na solicitação do ADS, inclua-o `[player_params.user_id]` na configuração do URL do ADS. 

Isso permite controlar os parâmetros de consulta incluídos na solicitação ADS. Normalmente, você adiciona um parâmetro de consulta especial reconhecido pelo ADS ao URL da solicitação ADS e fornece pares de chave/valor, como o valor do parâmetro. 

Os exemplos usados no seguinte procedimento usam os seguintes pares de chave/valor:
+ *param1* com um valor *value1:*
+ *param2* com um valor *value2:*

**Para adicionar parâmetros de consulta como pares de chave/valor** 

1. Em AWS Elemental MediaTailor, configure a URL do modelo de solicitação do ADS para referenciar os parâmetros. O seguinte URL mostra a inclusão dos parâmetros de exemplo: 

   ```
   https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]
   ```

1. (Opcional) Para relatórios de rastreamento de anúncios no lado do servidor, codifique o URL dos pares de chave/valor no player. Quando MediaTailor recebe a solicitação de inicialização da sessão, ele decodifica os valores por URL uma vez antes de substituí-los na URL da solicitação do ADS. 
**nota**  
Caso o ADS exija um valor codificado por URL, o URL codifica o valor duas vezes no player. Dessa forma, a decodificação feita por MediaTailor resulta em um valor codificado uma vez para o ADS. 

   Por exemplo, caso a representação decodificada dos valores enviados ao ADS seja `param1=value1:&param2=value2:`, a representação codificada por URL é `param1=value1%3A&param2=value2%3A`.

1. Na chamada de inicialização da sessão do player, passe os pares de valores-chave para MediaTailor como o valor de um único parâmetro de consulta. As chamadas de exemplo a seguir fornecem os pares de chave/valor de exemplo para relatórios de rastreamento de anúncios nos lados do servidor e do cliente.
   + Solicitações de exemplo para relatórios de rastreamento de anúncios no lado do servidor – usar pares codificados em URL

     HLS:

     ```
     <master>.m3u8?ads.param1=value1%3A&ads.param2=value2%3A
     ```

     DASH:

     ```
     <manifest>.mpd?ads.param1=value1%3A&ads.param2=value2%3A
     ```
   + Solicitação de exemplo para relatórios de rastreamento de anúncios no lado do cliente – sem codificação por URL

     HLS:

     ```
     POST <master>.m3u8
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

     DASH:

     ```
     POST <manifest>.mpd
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

Para relatórios do lado do servidor, MediaTailor decodifica os parâmetros quando a solicitação do jogador é recebida. Para relatórios do lado do cliente, isso não altera os parâmetros recebidos na carga JSON. MediaTailor envia a seguinte solicitação para o ADS:

```
https://my.ads.com/<path>?param1=value1:&param2=value2:
```

Dessa maneira, o `param1` e os pares de chave/valor `param2` são incluídos como parâmetros de consulta de primeira classe na solicitação ADS.

# MediaTailor variáveis de domínio para várias fontes de conteúdo
<a name="variables-domains"></a>

AWS Elemental MediaTailor variáveis dinâmicas de domínio permitem que você use vários domínios, como a parte **my-ads-server.com** da URL http://my-ads-server.com, com os parâmetros do player em sua configuração. Isso possibilita que você use mais de uma fonte de conteúdo ou servidor de decisão de anúncios (ADS) em uma única configuração. 

 Você pode usar variáveis de domínio com qualquer parâmetro que contenha um URI: 
+ `AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `LivePreroll.AdDecisionServerUrl`
+ `VideoContentSourceUrl`

 As variáveis de domínio são usadas junto com os *aliases de configuração* para realizar a substituição dinâmica de variáveis. Os aliases de configuração mapeiam um conjunto de aliases e valores para os parâmetros do player que são usados para a configuração dinâmica do domínio. Para obter os procedimentos de configuração, consulte[Criação e uso de aliases de configuração com MediaTailor](creating-configuration-aliases.md). Para obter informações de referência detalhadas, consulte[MediaTailor visão geral dos aliases de configuração](configuration-aliases-overview.md). 

# MediaTailor visão geral dos aliases de configuração
<a name="configuration-aliases-overview"></a>

AWS Elemental MediaTailor os aliases de configuração permitem a substituição dinâmica de variáveis em domínios de URL e outros campos compatíveis. Use esse recurso para usar vários domínios e configurar dinamicamente URLs durante a inicialização da sessão.

## Casos de uso
<a name="configuration-aliases-use-cases"></a>

Os aliases de configuração permitem arquiteturas sofisticadas de várias configurações para os seguintes cenários:
+ **Roteamento geográfico: direcione** solicitações para diferentes origens ou servidores de anúncios com base na localização do espectador usando aliases específicos da região. Para obter orientação de implementação, consulte [CloudFront Origin Failover](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html).
+ **Roteamento baseado em conteúdo:** direcione diferentes tipos de conteúdo para origens especializadas ou pipelines de processamento. Para a configuração do comportamento de roteamento, consulte[Configure comportamentos de roteamento de CDN para MediaTailor](cdn-routing-behaviors.md).
+ **Cenários de failover:** implemente origens de backup e servidores de anúncios com failover automático usando alternância de aliases. Para uma implementação detalhada, consulte [Implemente resiliência multirregional com o MQAR MediaTailor](media-quality-resiliency.md) [Planeje sua integração de CDN para AWS Elemental MediaTailor](planning-cdn-integration.md) e.
+ Teste **A/B: teste** diferentes servidores de anúncios, origens ou configurações roteando o tráfego com base nos parâmetros do player. Para obter orientação sobre testes de carga, consulte [Preparar e executar testes de desempenho para a Amazon CloudFront com monitoramento real de usuários](https://aws.amazon.com/blogs/networking-and-content-delivery/prepare-and-run-performance-tests-for-amazon-cloudfront-with-real-user-monitoring/).
+ **Otimização específica do dispositivo: otimize a entrega de conteúdo e a veiculação** de anúncios para diferentes tipos ou recursos de dispositivos. Para obter uma orientação abrangente, consulte[Configurar a filtragem de manifestos com MediaTailor MediaPackage, e CDN](cdn-emp-manifest-filtering.md).
+ **Balanceamento de carga:** distribua a carga em várias origens ou servidores de anúncios usando roteamento dinâmico. Para obter orientação de implementação, consulte [Implemente resiliência multirregional com o MQAR MediaTailor](media-quality-resiliency.md) [Planeje sua integração de CDN para AWS Elemental MediaTailor](planning-cdn-integration.md) e.

## Campos compatíveis
<a name="configuration-aliases-supported"></a>

Você pode usar variáveis dinâmicas nos seguintes campos de configuração:
+ `VideoContentSourceUrl`
+ `AdDecisionServerUrl`
+ `LivePreroll.AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `TranscodeProfileName`
+ `SlateAdUrl`
+ `StartUrl`
+ `EndUrl`

As seções a seguir descrevem como usar aliases de configuração.

**Topics**
+ [Casos de uso](#configuration-aliases-use-cases)
+ [

## Campos compatíveis
](#configuration-aliases-supported)
+ [Criando e usando](creating-configuration-aliases.md)
+ [Exemplo de fluxo](configuration-aliases-examples.md)

# Criação e uso de aliases de configuração com MediaTailor
<a name="creating-configuration-aliases"></a>

Antes de começar a usar variáveis de domínio, você cria aliases de configuração para sua configuração. Você usa os aliases de configuração como variáveis de substituição de domínio no momento da inicialização da sessão.

**Restrições**  
Observe as seguintes restrições ao usar aliases de configuração:
+ Todas as variáveis dinâmicas usadas no domínio devem ser definidas como variáveis `ConfigurationAliases` dinâmicas.
+ As variáveis dos parâmetros do player devem ser prefixadas com`player_params.`. Por exemplo, .`player_params.origin_domain`
+ A lista de valores com alias deve ser exaustiva para variáveis de domínio em estado crítico URLs (`VideoContentSourceUrl`,,`AdSegmentUrlPrefix`). `ContentSegmentUrlPrefix`
+ Se for feita uma solicitação para uma variável de domínio crítica URLs que não especifique a variável dinâmica ou use um alias inválido, a solicitação falhará com um código de `400` status HTTP. Campos não críticos (`SlateAdUrl`,`TranscodeProfileName`, bumper URLs) registrarão os avisos, mas não falharão na solicitação.

**Comportamento alternativo para aliases ausentes**  
Quando os aliases de configuração não são encontrados ou são inválidos, MediaTailor implementa o seguinte comportamento de fallback:
+ **Variáveis de domínio:** se um alias de variável de domínio estiver ausente ou for inválido, a solicitação falhará com o código de status HTTP 400. Todas as variáveis de domínio devem ter aliases válidos definidos.
+ **Variáveis que não são de domínio:** para variáveis usadas em partes que não são de domínio URLs (como elementos de caminho ou parâmetros de consulta), aliases ausentes resultam na substituição de uma string vazia.
+ **Validação de configuração:** MediaTailor valida se todos os aliases necessários estão presentes durante as operações de criação e atualização da configuração.

## Etapa 1: criar aliases de configuração
<a name="dynamic-domains-creating-configuration-alias"></a>

Para criar aliases de configuração a serem usados para substituição de domínio usando o MediaTailor console, execute o procedimento a seguir.

------
#### [ Console ]

**Para criar aliases de configuração usando o console**

1. Abra o MediaTailor console em [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Na seção **Apelidos de configuração** na página **Configurações**, escolha **Adicionar parâmetro de player**. 

1. Em **Parâmetro do jogador**, insira o nome do parâmetro do jogador que você deseja usar como uma variável dinâmica. Por exemplo, .`player_params.origin_domain` 

1. **Em Aliases**, insira os aliases e seus valores que você deseja usar para o parâmetro do player. 

1. Escolha **OK**. 

   AWS Elemental MediaTailor exibe o novo parâmetro na tabela na seção **Apelidos de configuração**.

1. Repita as etapas anteriores para adicionar mais parâmetros do player. 

1. Escolha **Salvar**. 

------
#### [ API ]

**Para criar aliases de configuração usando a API**  
Ao criar ou atualizar uma MediaTailor configuração, use o `ConfigurationAliases` parâmetro com a seguinte estrutura JSON: 

```
{
                "ConfigurationAliases": {
                "player_params.origin_domain": {
                "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
                "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
                },
                "player_params.ad_type": {
                "customized": "abc12345",
                "default": "defaultAdType"
                }
                }
                }
```

------

## Etapa 2: Usar aliases de configuração na inicialização da sessão
<a name="dynamic-domains-using-configuration-alias"></a>

Depois de configurar os aliases de configuração, você pode usá-los como variáveis de substituição para domínios na solicitação de inicialização da sessão. Isso permite que você configure dinamicamente os domínios da sua sessão.

**Example Exemplo de aliases de configuração básica**  
Aqui está um exemplo básico de uma configuração que inclui aliases de configuração e variáveis dinâmicas de domínio:  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        }
    }
}
```

**Example Inicialização da sessão com aliases**  
Usando a configuração anterior, uma solicitação de inicialização de sessão usando as variáveis e os aliases do player seria semelhante à seguinte:  

```
POST index.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx",
        "endpoint_id": "pdx",
        "ad_type": "customized"
    }
}
```
MediaTailor substitui as cadeias de caracteres de aliases pelos valores mapeados na configuração de aliases de configuração.  
A solicitação para o ADS terá a seguinte aparência:  

```
https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
```
A solicitação à origem dos manifestos terá a seguinte aparência:  

```
https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
```

# Alias de configuração com exemplo de MediaTailor uso
<a name="configuration-aliases-examples"></a>

Os exemplos a seguir mostram como é feita uma MediaTailor configuração completa com aliases de configuração, uma solicitação de inicialização de sessão com aliases e o fluxo de processamento de aliases.

**Example Configuração completa com aliases**  
O exemplo a seguir mostra uma configuração completa que inclui aliases de configuração e variáveis dinâmicas de domínio:   

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    
    "AdSegmentUrlPrefix": "https://[player_params.ad_cdn_domain]/ads/",
    "ContentSegmentUrlPrefix": "https://[player_params.content_cdn_domain]/content/",
    "TranscodeProfileName": "[player_params.transcode_profile]",
    "SlateAdUrl": "https://[player_params.slate_domain]/slate/[player_params.slate_type].mp4",
    "StartUrl": "https://[player_params.tracking_domain]/start?session=[session.id]",
    "EndUrl": "https://[player_params.tracking_domain]/end?session=[session.id]",
    
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        },
        "player_params.ad_cdn_domain": {
            "pdx": "ads-west.cdn.example.com",
            "iad": "ads-east.cdn.example.com"
        },
        "player_params.content_cdn_domain": {
            "pdx": "content-west.cdn.example.com",
            "iad": "content-east.cdn.example.com"
        },
        "player_params.transcode_profile": {
            "mobile": "mobile_optimized",
            "desktop": "high_quality",
            "tv": "4k_profile"
        },
        "player_params.slate_domain": {
            "pdx": "slate-west.example.com",
            "iad": "slate-east.example.com"
        },
        "player_params.slate_type": {
            "standard": "default_slate",
            "branded": "brand_slate"
        },
        "player_params.tracking_domain": {
            "pdx": "tracking-west.example.com",
            "iad": "tracking-east.example.com"
        }
    }
}
```

**Example Inicialização da sessão com aliases**  
O exemplo a seguir mostra uma solicitação de inicialização de sessão que especifica as variáveis e os aliases do player:   

```
POST master.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx", 
        "endpoint_id": "pdx",
        "ad_type": "customized",
        "ad_cdn_domain": "pdx",
        "content_cdn_domain": "pdx",
        "transcode_profile": "mobile",
        "slate_domain": "pdx",
        "slate_type": "branded",
        "tracking_domain": "pdx"
    }
}
```

**Example Fluxo de processamento de parâmetros**  
No exemplo a seguir, MediaTailor substitui as cadeias de caracteres de alias pelos valores mapeados nos aliases de configuração. O processamento resulta nas seguintes solicitações:   
+ Solicitação de ADS:

  ```
  https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
  ```
+ VideoContentSource solicitação:

  ```
  https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
  ```
+ AdSegmentUrlPrefix:

  ```
  https://ads-west.cdn.example.com/ads/
  ```
+ ContentSegmentUrlPrefix:

  ```
  https://content-west.cdn.example.com/content/
  ```
+ TranscodeProfileName:

  ```
  mobile_optimized
  ```
+ SlateAdUrl:

  ```
  https://slate-west.example.com/slate/brand_slate.mp4
  ```
+ StartUrl:

  ```
  https://tracking-west.example.com/start?session=[session.id]
  ```
+ EndUrl:

  ```
  https://tracking-west.example.com/end?session=[session.id]
  ```

# MediaTailor passando parâmetros para o ADS
<a name="passing-paramters-to-the-ads"></a>

AWS Elemental MediaTailor suporta a configuração de variáveis dinâmicas em MediaTailor solicitações ao ADS usando as etapas a seguir. 
+ Para obter informações sobre a formatação compatível com os parâmetros de consulta, consulte[MediaTailor referência e limitações de parâmetros](parameter-comprehensive-reference.md).
+ Para aliases de configuração e variáveis de domínio, consulte[MediaTailor visão geral dos aliases de configuração](configuration-aliases-overview.md).
+ Para obter personalizações adicionais na solicitação do ADS, consulte. [Uso avançado](#variables-advanced-usage)

**Métodos de inicialização da sessão**  
MediaTailor suporta vários métodos para inicialização de sessão e passagem de parâmetros: 

1. **POST com corpo de solicitação:**

   ```
   POST <master>.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2"},
       "playerParams": {"param3": "value3"}
   }
   ```

1. **Parâmetros de consulta no URL:**

   ```
   GET <master>.m3u8?ads.param1=value1&ads.param2=value2&playerParams.param3=value3
   ```

**Importante**  
Você só pode especificar os parâmetros uma vez, no momento da inicialização. Os aliases de configuração são resolvidos para valores reais antes do encaminhamento. 

**Para passar informações de sessão e player ao ADS**

1. Trabalhe com o ADS para determinar as informações de que ele precisa para responder a uma consulta de anúncio AWS Elemental MediaTailor. 

1. Crie uma configuração MediaTailor que use um modelo de URL de solicitação do ADS que atenda aos requisitos do ADS. No URL, inclua parâmetros estáticos e espaços reservados para parâmetros dinâmicos. Digite o URL do modelo no campo **Ad decision server (Servidor de decisões de anúncios)** da configuração. 

   No seguinte URL do modelo de exemplo, `correlation` fornece dados da sessão e `deviceType` fornece dados do player: 

   ```
   https://my.ads.server.com/path?correlation=[session.id]&deviceType=[player_params.deviceType]
   ```

1. No player, configure a solicitação de iniciação da sessão para o AWS Elemental MediaTailor fornecer parâmetros para os dados do player. Inclua os parâmetros na solicitação de iniciação da sessão e os omita de solicitações subsequentes da sessão. 

   O tipo de chamada que o jogador faz para inicializar a sessão determina se o jogador (cliente) ou MediaTailor (servidor) fornece relatórios de rastreamento de anúncios para a sessão. Para obter informações sobre essas duas opções, consulte [Dados de relatórios e rastreamento](ad-reporting.md). 

   Faça um dos tipos de chamadas a seguir, dependendo do desejo de relatórios para o rastreamento de anúncios no lado do servidor ou do cliente. Em ambas as chamadas de exemplo, `userID` é desejado para o ADS e `auth_token` é desejado para a origem:
   + (Opção) Solicite relatórios de rastreamento de anúncios do lado do servidor — Prefixe os parâmetros com os quais você deseja enviar MediaTailor ao ADS. `ads` Deixe o prefixo desativado para parâmetros para os quais o MediaTailor deve enviar ao servidor de origem: 

     Os exemplos a seguir mostram as solicitações recebidas de HLS e DASH para. AWS Elemental MediaTailor MediaTailor usa o `deviceType` em sua solicitação para o ADS e o `auth_token` em sua solicitação para o servidor de origem. 

     Exemplo de HLS:

     ```
     GET master.m3u8?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```

     Exemplo de DASH:

     ```
     GET manifest.mpd?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```
   + (Opção) Solicite relatórios de rastreamento de anúncios do lado do cliente — Forneça parâmetros para o ADS dentro de um objeto. `adsParams`

     Exemplo de HLS:

     ```
     POST master.m3u8
         {
             "adsParams": {
                "deviceType": "ipad"
            }
         }
     ```

     Exemplo de DASH:

     ```
     POST manifest.mpd
         {
             "adsParams": {
                "deviceType": "ipad"
            }
         }
     ```

Quando o jogador inicia uma sessão, AWS Elemental MediaTailor substitui as variáveis no URL de solicitação do ADS modelo pelos dados da sessão e pelos parâmetros do `ads` jogador. Ele passa os parâmetros restantes do player para o servidor de origem. 

**Example MediaTailor solicitações com variáveis de anúncio**  
Os exemplos a seguir mostram as chamadas para o ADS e o servidor de origem do AWS Elemental MediaTailor que correspondem aos exemplos de chamada de inicialização de sessão do player anterior:   
+ MediaTailor chama o ADS com os dados da sessão e o tipo de dispositivo do jogador: 

  ```
  https://my.ads.server.com/path?correlation=896976764&deviceType=ipad
  ```
+ MediaTailor chama o servidor de origem com o token de autorização do jogador.
  + Exemplo de HLS:

    ```
    https://my.origin.server.com/master.m3u8?auth_token=kjhdsaf7gh
    ```
  + Exemplo de DASH:

    ```
    https://my.origin.server.com/manifest.mpd?auth_token=kjhdsaf7gh
    ```

## Uso avançado
<a name="variables-advanced-usage"></a>

Personalize a solicitação ADS de muitas maneiras com dados do player e da sessão. Você só precisa incluir o nome do host do ADS. 

Os exemplos a seguir mostram algumas das maneiras de personalizar a solicitação: 
+ Concatene os parâmetros do player e da sessão para criar novos parâmetros. Exemplo: 

  ```
  https://my.ads.com?key1=[player_params.value1][session.id]
  ```
+ Use um parâmetro de player como parte de um elemento do caminho. Exemplo:

  ```
  https://my.ads.com/[player_params.path]?key=value
  ```
+ Use os parâmetros do player para passar ambos os elementos de caminho e as chaves propriamente ditas, e não apenas valores. Exemplo: 

  ```
  https://my.ads.com/[player_params.path]?[player_params.key1]=[player_params.value1]
  ```

# MediaTailor roteamento de parâmetros para ADS e origens
<a name="parameter-routing-behavior"></a>

AWS Elemental MediaTailor encaminha os parâmetros de consulta para destinos diferentes com base em seu prefixo e finalidade. Compreender o roteamento de parâmetros é essencial para implementar funcionalidades específicas de origem, como visualização com mudança de horário com. MediaPackage

**Regras de roteamento de parâmetros**  
MediaTailor usa as seguintes regras de roteamento para parâmetros de consulta:
+ **Parâmetros de origem (sem prefixo):** parâmetros sem um prefixo específico são passados para o servidor de origem para funcionalidade específica da origem
+ **Parâmetros do ADS (`ads.`prefixo):** os parâmetros prefixados com `ads.` são enviados para o Ad Decision Server
+ **Parâmetros do manifesto (`manifest.`prefixo):** os parâmetros prefixados com `manifest.` são usados para roteamento e autorização de CDN

**Example Exemplo de roteamento de parâmetros**  
A inicialização da sessão a seguir demonstra o roteamento de parâmetros:  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2"
    },
    "manifestParams": {
        "auth_token": "abc123"
    }
}
```
Neste exemplo:  
+ `param1`e `param2` são enviados para o ADS
+ `auth_token`é usado para roteamento e autorização de CDN
+ Parâmetros sem prefixos seriam passados para o servidor de origem

## Comportamento dos parâmetros do servidor de origem
<a name="origin-parameter-behavior"></a>

Os parâmetros passados aos servidores de origem permitem funcionalidades específicas da origem, como visualização com mudança de horário, filtragem de conteúdo e autenticação.

**Casos de uso de parâmetros de origem comuns**  
Os parâmetros de origem são comumente usados para:
+ **Visualização com mudança de horário:** `start` e `end` parâmetros para MediaPackage conteúdo com mudança de horário
+ **Autenticação de conteúdo:** tokens de autenticação exigidos pelo servidor de origem
+ **Filtragem de conteúdo:** parâmetros que controlam quais variantes de conteúdo são retornadas
+ **Recursos específicos da origem:** quaisquer parâmetros que o servidor de origem usa para processamento de conteúdo

**Importante**  
Os parâmetros são processados na inicialização da sessão e mantidos durante toda a sessão. Para modificar parâmetros como janelas de mudança de horário, você deve criar uma nova sessão com valores atualizados.

# MediaTailor e integração de MediaPackage visualização com mudança de horário
<a name="mediapackage-integration-param"></a>

AWS Elemental MediaTailor pode passar parâmetros de visualização com mudança de horário para MediaPackage as origens para permitir a funcionalidade de visualização inicial e atualização. Essa integração permite que os espectadores comecem a assistir ao conteúdo ao vivo de momentos anteriores.

**MediaPackage parâmetros de visualização com mudança de tempo**  
MediaPackage suporta os seguintes parâmetros de visualização com mudança de horário que podem ser transmitidos: MediaTailor
+ `start`: Carimbo de data e hora ISO 8601 que define o início do manifesto com mudança de horário
+ `end`: data e hora da época ou ISO 8601 definindo o final do manifesto com mudança de horário
+ `time_delay`: atrasar a disponibilidade do conteúdo em segundos especificados
+ `manifest_window_seconds`: solicite um manifesto menor que a janela configurada

**Example MediaTailor inicialização da sessão com parâmetros com mudança de MediaPackage horário**  
O exemplo a seguir mostra como inicializar uma sessão com parâmetros de visualização com mudança de horário:  

```
GET /v1/master/123456789/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```
Ou usando a inicialização explícita da sessão:  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1"
    }
}
```
Com parâmetros de consulta adicionais:  

```
?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportamento dos parâmetros durante as sessões**  
Os parâmetros de visualização com mudança de horário têm características de comportamento específicas:
+ **Inicialização da sessão:** os parâmetros são processados quando a sessão é criada
+ **Persistência de parâmetros:** os parâmetros permanecem associados à sessão durante a reprodução
+ **Imutável após a inicialização:** os parâmetros não podem ser alterados durante uma sessão ativa
+ **Nova sessão necessária:** para modificar as janelas de mudança de horário, crie uma nova sessão com valores de parâmetros atualizados

**MediaPackage requisitos da janela de partida**  
Para que a visualização por mudança de horário funcione MediaPackage, certifique-se do seguinte:

1. Configure uma janela de inicialização em seu MediaPackage endpoint (até 24 horas)

1. Certifique-se de que sua CDN encaminhe os parâmetros de consulta necessários para MediaPackage

1. Use janelas de reprodução consistentes em todas as sessões do player para melhorar o cache da CDN

1. Verifique se os horários de início e término estão dentro da janela de inicialização configurada

**Importante**  
Ao usar a visualização com mudança de horário, use janelas de reprodução consistentes em todas as sessões do player, em vez de gerar horários de início ou término exclusivos para cada espectador. Isso gera um melhor armazenamento em cache na CDN e evita possíveis limitações.

*Para obter informações completas sobre a configuração e os parâmetros MediaPackage da visualização com mudança de horário, consulte [Visualização com mudança de horário AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/time-shifted.html) no Guia do usuário.AWS Elemental MediaPackage *

# MediaTailor comportamento e persistência da sessão de parâmetros
<a name="parameter-session-behavior"></a>

AWS Elemental MediaTailor processa os parâmetros na inicialização da sessão e os mantém durante todo o ciclo de vida da sessão. Compreender o comportamento da sessão é crucial para implementar cenários de parâmetros dinâmicos.

**Métodos de inicialização da sessão**  
MediaTailor suporta vários métodos para inicialização de sessão com parâmetros:

1. **Inicialização implícita da sessão:** parâmetros incluídos na solicitação inicial do manifesto

   ```
   GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&start=2024-08-26T10:00:00Z
   ```

1. **Inicialização explícita da sessão (POST):** parâmetros fornecidos no corpo da solicitação

   ```
   POST /v1/session/123456789/originId/index.m3u8
   {
       "adsParams": {"param1": "value1"},
       "manifestParams": {"auth_token": "abc123"}
   }
   ```

1. **Inicialização explícita da sessão (GET):** parâmetros fornecidos como parâmetros de consulta

   ```
   GET /v1/session/123456789/originId/index.m3u8?ads.param1=value1&manifestParams.auth_token=abc123
   ```

**Persistência e imutabilidade dos parâmetros**  
MediaTailor o comportamento dos parâmetros segue estas regras:
+ **Especificação única:** os parâmetros só podem ser especificados uma vez, na inicialização da sessão
+ **Persistência em toda a sessão:** os parâmetros são mantidos durante toda a sessão
+ **Imutável após a inicialização:** os parâmetros não podem ser modificados após a criação da sessão
+ **Resolução do alias de configuração:** os aliases são resolvidos para valores reais antes de serem encaminhados para os destinos

**Cenários de modificação de parâmetros**  
Para modificar os parâmetros durante a reprodução:
+ **Criar nova sessão:** inicialize uma nova sessão com valores de parâmetros atualizados
+ **Transição do jogador:** faça a transição perfeita do jogador para a nova sessão
+ **Herança de parâmetros: transfira** parâmetros inalterados para manter a consistência

**Example Modificando parâmetros de mudança de horário**  
Para mudar de uma janela de 1 hora para uma janela de 2 horas:  

1. Sessão atual: `start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z`

1. Crie uma nova sessão: `start=2024-08-26T10:00:00Z&end=2024-08-26T12:00:00Z`

1. Transição do player para o novo URL da sessão

**Importante**  
Várias solicitações de playlist multivariantes para uma única sessão não atualizam os parâmetros após a primeira solicitação. Os parâmetros permanecem imutáveis durante a duração da sessão.

# MediaTailor referência e limitações de parâmetros
<a name="parameter-comprehensive-reference"></a>

Antes de configurar variáveis dinâmicas de anúncios, entenda os requisitos e limitações de formatação de parâmetros que se aplicam a todas as MediaTailor configurações.

AWS Elemental MediaTailor fornece informações abrangentes sobre restrições de caracteres de parâmetros, limitações de comprimento e formatos compatíveis tanto para parâmetros de consulta de manifesto quanto para parâmetros ADS. 

## Restrições de caracteres do parâmetro de consulta manifesto
<a name="manifest-parameter-character-restrictions"></a>

Os parâmetros de consulta do manifesto oferecem suporte a caracteres específicos e têm limitações de comprimento definidas. 

**Caracteres compatíveis (sem codificação de URL)**  
Você pode usar os seguintes caracteres diretamente nos parâmetros de consulta do manifesto: 
+ Caracteres alfanuméricos (A-Z, a-z, 0-9)
+ Períodos (.)
+ Hífens (-)
+ Sublinha (\$1)
+ Barras invertidas (\$1)

**Caracteres compatíveis com codificação de URL**  
Os seguintes caracteres especiais são suportados quando codificados por URL: 
+ período (.) = %2E
+ traço (-) = %2D
+ sublinhado (\$1) = %5F
+ porcentagem (%) = %25
+ tilde (\$1) = %7E
+ barra para frente (/) = %2F
+ asterisco (\$1) = %2A
+ é igual a (=) = %3D
+ pergunta (?) = %3F

**Suporte para codificação de URL**  
MediaTailor suporta o sinal de porcentagem (%) quando você o usa na codificação de URL (por exemplo, hello%20world = hello world). Você pode usar qualquer caractere codificado em URL, desde que sejam codificações de URL válidas de acordo com a especificação HTTP. 

**Caracteres não suportados**  
Você não pode usar os seguintes caracteres nos parâmetros de consulta do manifesto sem a codificação de URL:`:`,,,`?`, `&` `=``%`, `/` (barra invertida). 

**Importante**  
MediaTailor não suporta caracteres duplos, como%%% ou ==. Você não pode usar full URLs como valores de parâmetros de consulta de manifesto devido a restrições de caracteres. 

**Limitações de comprimento**  
O tamanho total de todos os parâmetros de consulta do manifesto (chaves e valores combinados) não deve exceder 2.000 caracteres. 

## Limitações de comprimento do parâmetro ADS
<a name="ads-parameter-limitations"></a>

As seguintes limitações de comprimento se aplicam aos parâmetros usados nas solicitações ao ADS: 
+ **Nome do parâmetro ADS**: máximo de 10.000 caracteres
+ **Valor do parâmetro ADS**: máximo de 25.000 caracteres
+ **URL do ADS**: máximo de 25.000 caracteres

# MediaTailor guia de solução de problemas de parâmetros
<a name="parameter-troubleshooting"></a>

AWS Elemental MediaTailor fornece orientação para solucionar problemas comuns relacionados a parâmetros MediaTailor, incluindo restrições de caracteres, problemas de codificação de URL e erros de alias de configuração. 

## Erros de restrição de caracteres
<a name="parameter-character-restriction-errors"></a>

Valores de parâmetros que contêm caracteres não suportados podem causar erros ou comportamento inesperado. 

**Sintomas comuns**  
Os sintomas a seguir podem indicar problemas de restrição de caracteres: 
+ Parâmetros que não aparecem no manifesto URLs
+ Erros HTTP 400 durante a inicialização da sessão
+ Valores de parâmetros truncados ou corrompidos
+ Falha nas solicitações do ADS devido à malformação URLs

**Etapas de resolução**  
Para resolver erros de restrição de caracteres: 

1. Revise os valores dos parâmetros para caracteres não suportados:`:`,`?`,`&`,,`=`, `%` `/`

1. Aplique a codificação de URL adequada para caracteres especiais (consulte) [MediaTailor referência e limitações de parâmetros](parameter-comprehensive-reference.md)

1. Evite caracteres duplos, como `%%%` ou `==`

1. Considere formatos alternativos de parâmetros se não for URLs possível usar full

**Example Exemplo de codificação de URL**  
Em vez de usar:   

```
manifest.redirect_url=https://example.com/path?param=value
```
Use o formato codificado por URL:   

```
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
```

## Erros de limitação de comprimento
<a name="parameter-length-limitation-errors"></a>

Os parâmetros que excedem os limites de comprimento podem ser truncados ou causar erros. 

**Limites de comprimento**  
Os seguintes limites de comprimento se aplicam (consulte [MediaTailor referência e limitações de parâmetros](parameter-comprehensive-reference.md) para obter detalhes completos):
+ Parâmetros de consulta do manifesto (total): 2000 caracteres
+ Nomes de parâmetros do ADS: 10.000 caracteres
+ Valores dos parâmetros do ADS: 25.000 caracteres
+ ADS URLs: 25.000 caracteres

**Estratégias de resolução**  
Para lidar com limitações de comprimento: 

1. Use nomes e valores de parâmetros mais curtos sempre que possível

1. Divida valores de parâmetros grandes em vários parâmetros menores

1. Use aliases de configuração para mapear aliases curtos para valores mais longos (consulte) [MediaTailor visão geral dos aliases de configuração](configuration-aliases-overview.md)

1. Considere o uso de armazenamento externo para dados grandes com referências de parâmetros

## Erros de alias de configuração
<a name="parameter-configuration-alias-errors"></a>

Problemas de alias de configuração podem resultar em erros HTTP 400 ou valores de parâmetros inesperados. 

**Erros comuns de alias de configuração**  
Os seguintes erros geralmente ocorrem com aliases de configuração: 
+ Erro HTTP 400: valor de alias ausente ou inválido
+ Variáveis de domínio não estão sendo resolvidas corretamente
+ Os parâmetros do jogador não estão sendo substituídos por valores de alias

**Lista de verificação de resolução**  
Para resolver erros de alias de configuração: 

1. Verifique se todas as variáveis do domínio estão definidas como `ConfigurationAliases`

1. Certifique-se de que as variáveis dos parâmetros do jogador usem o `player_params.` prefixo

1. Confirme se a lista de valores com alias é exaustiva para variáveis de domínio em estado crítico URLs (`VideoContentSourceUrl`,,) `AdSegmentUrlPrefix` `ContentSegmentUrlPrefix`

1. Verifique se as solicitações de inicialização da sessão especificam valores de alias válidos

1. Validar a estrutura JSON do parâmetro ConfigurationAliases 

Para obter orientações detalhadas sobre solução de problemas, consulte[MediaTailor guia de solução de problemas de aliases de configuração](configuration-aliases-troubleshooting.md).

**Example Validação do alias de configuração**  
Certifique-se de que sua configuração inclua todos os aliases necessários:   

```
"ConfigurationAliases": {
    "player_params.origin_domain": {
        "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
        "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
        // Must include all possible values used in session initialization
    }
}
```

## Problemas de fluxo de processamento de parâmetros
<a name="parameter-processing-flow-issues"></a>

Compreender o fluxo de processamento de parâmetros ajuda a solucionar problemas com encaminhamento e transformação de parâmetros. 

**Ordem de processamento de parâmetros**  
MediaTailor processa os parâmetros na seguinte ordem: 

1. Validação do parâmetro de inicialização da sessão

1. Resolução do alias de configuração (se aplicável)

1. Filtragem de parâmetros (ADS x origem x manifesto)

1. Codificação e formatação de URL

1. Aplicação de parâmetros para URLs

**Fluxo de parâmetros de depuração**  
Para depurar problemas de processamento de parâmetros: 

1. Verifique se os parâmetros foram especificados corretamente na inicialização da sessão

1. Verifique se os aliases de configuração são resolvidos para os valores esperados

1. Confirme se os parâmetros aparecem corretamente URLs (manifesto, ADS, origem)

1. Validar se a codificação do URL foi aplicada corretamente

**Example Exemplo de fluxo de parâmetros**  
Inicialização da sessão:   

```
POST master.m3u8
{
    "playerParams": {"origin_domain": "pdx"},
    "manifestParams": {"test": "123"}
}
```
Após a resolução e o processamento do alias:   
+ Solicitação de origem: `https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd`
+ URL do manifesto: `/v1/master/.../index.m3u8?aws.sessionId=session&test=123`

## Considerações de segurança e práticas recomendadas
<a name="parameter-security-considerations-troubleshooting"></a>

MediaTailor implementa medidas de segurança para tratamento de parâmetros para evitar problemas comuns de segurança. 

**Medidas de segurança**  
MediaTailor implementa as seguintes medidas de segurança: 

1. Limitações de tamanho de entrada para evitar inchaço no banco de dados

1. Codificação e higienização adequadas da entrada do usuário

1. Codificação de URL da entrada para evitar a corrupção da resposta

**Práticas recomendadas**  
Siga estas práticas recomendadas para tratamento seguro de parâmetros: 
+ Valide os valores dos parâmetros no lado do cliente antes de enviar
+ Use aliases de configuração para limitar possíveis valores de parâmetros
+ Evite incluir informações confidenciais nos parâmetros
+ Monitore o uso de parâmetros para padrões incomuns
+ Mantenha os valores dos parâmetros dentro dos limites de comprimento recomendados

# MediaTailor guia de solução de problemas de aliases de configuração
<a name="configuration-aliases-troubleshooting"></a>

AWS Elemental MediaTailor fornece orientação sistemática de solução de problemas de aliases de configuração e cenários de erro. 

## Erros de validação do alias de configuração
<a name="configuration-alias-validation-errors"></a>

Quando os aliases de configuração estão ausentes ou são inválidos, MediaTailor retorna respostas de erro específicas para ajudar a identificar o problema. 

**Cenários de erro comuns**  
A tabela a seguir descreve erros comuns de alias de configuração e suas etapas de resolução: 


| Erro | Causa | Resolução | 
| --- | --- | --- | 
| HTTP 400: alias de parâmetro de jogador inválido | Valor do parâmetro do jogador não encontrado em ConfigurationAliases | Verifique se o valor do parâmetro do player existe como uma chave no ConfigurationAliases mapeamento correspondente | 
| HTTP 400: Falta o alias de configuração necessário | Variável de domínio usada sem ConfigurationAliases entrada correspondente | Adicione o parâmetro do player ausente a ConfigurationAliases com todos os mapeamentos de aliases necessários | 
| HTTP 400: Falha na validação da configuração | ConfigurationAliases a estrutura está malformada ou incompleta | Valide a estrutura JSON e garanta que todas as variáveis de domínio tenham aliases correspondentes | 
| Substituição de string vazia em URLs | Alias de variável não pertencente ao domínio não encontrado | Adicione o mapeamento de aliases ausente ou forneça o valor padrão em ConfigurationAliases | 

**Lista de verificação de validação**  
Use a lista de verificação a seguir para validar sua configuração de aliases: 

1. **Cobertura de variáveis de domínio:** garanta que todas as variáveis usadas em partes do domínio URLs tenham ConfigurationAliases entradas correspondentes

1. **Completude do alias:** verifique se todos os valores possíveis dos parâmetros do jogador estão incluídos como chaves nos mapeamentos de aliases

1. **Estrutura JSON:** valide se o ConfigurationAliases JSON está devidamente formatado e aninhado

1. **Nomeação dos parâmetros:** confirme se todos os parâmetros do player usam o prefixo `player_params.`

1. **Consistência de valores:** garanta que os valores de alias sejam válidos para o uso pretendido (URLs, nomes de perfil etc.)

## Resolução de alias de configuração de depuração
<a name="configuration-alias-debugging"></a>

Siga essa abordagem sistemática para depurar problemas de resolução de aliases de configuração. 

**Step-by-step metodologia de depuração**  
Use as etapas a seguir para identificar e resolver problemas de alias de configuração: 

**Procedimento de depuração de alias de configuração**

1. **Verifique a estrutura de configuração:** confirme se sua configuração de reprodução inclui a formatação adequada ConfigurationAliases

   ```
   {
       "ConfigurationAliases": {
           "player_params.example_param": {
               "alias1": "value1",
               "alias2": "value2"
           }
       }
   }
   ```

1. **Verifique o formato dos parâmetros do player:** certifique-se de que a inicialização da sessão inclua parâmetros do player formatados corretamente

   ```
   {
       "playerParams": {
           "example_param": "alias1"
       }
   }
   ```

1. **Validar o mapeamento de alias:** confirme se o valor do parâmetro do jogador (“alias1") existe como uma chave no mapeamento ConfigurationAliases 

1. **Teste com configuração simples:** comece com uma configuração mínima para isolar o problema

1. **Monitore respostas de erro:** verifique as respostas MediaTailor de erro para mensagens de validação específicas

1. **Verificar se os resolvidos foram confirmados URLs:** confirme se URLs os resolvidos finais são válidos e acessíveis

## Práticas recomendadas de aliases de configuração
<a name="configuration-alias-best-practices"></a>

Siga essas práticas recomendadas para garantir a implementação confiável do alias de configuração. 

**Considerações sobre segurança**  
Implemente as seguintes medidas de segurança ao usar aliases de configuração: 
+ **Validação de entrada:** valide todos os valores dos parâmetros do jogador antes de usá-los na resolução de aliases
+ **Limpeza do valor do alias: certifique-se de que os valores do** alias contenham somente caracteres e formatos esperados
+ **Restrições de domínio:** limite os aliases de domínio a domínios confiáveis e controlados
+ **Controle de acesso:** restrinja a modificação da configuração somente ao pessoal autorizado

**Otimização de desempenho**  
Otimize o desempenho do alias de configuração com estas recomendações: 
+ **Minimize a contagem de aliases:** use somente os aliases necessários para reduzir a sobrecarga de processamento
+ **Nomenclatura eficiente:** use convenções de nomenclatura claras e consistentes para aliases e parâmetros
+ **Valores padrão:** forneça aliases padrão sensatos para casos de uso comuns
+ **Cache de configuração: aproveite MediaTailor o cache** de configuração para melhorar o desempenho

**Manutenção e monitoramento**  
Mantenha operações confiáveis de alias de configuração com estas práticas: 
+ **Validação regular:** valide periodicamente se todos os mapeamentos de aliases são atuais e funcionais
+ **Monitoramento de erros:** monitore erros de HTTP 400 relacionados a aliases ausentes ou inválidos
+ **Documentação:** mantenha uma documentação clara de todos os mapeamentos de aliases e suas finalidades
+ **Procedimentos de teste:** implemente testes abrangentes para todas as combinações de aliases