

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 AWS Elemental MediaTailor para inserir anúncios
<a name="configurations"></a>

Configuração é um objeto com que você interage no AWS Elemental MediaTailor. A configuração contém as informações de mapeamento do servidor de origem e do servidor de decisão de anúncios (ADS). Você também pode definir uma reprodução padrão MediaTailor para ser usada quando um anúncio não está disponível ou não preenche toda a disponibilidade do anúncio.

Se você usa uma rede de distribuição de conteúdo (CDN) com MediaTailor, deve configurar as regras de comportamento na CDN antes de adicionar informações da CDN à configuração. Para obter mais informações sobre como configurar a CDN, consulte [Usando uma CDN para otimizar a personalização de MediaTailor anúncios e a entrega de conteúdo](integrating-cdn.md).

**Topics**
+ [Codecs de áudio e vídeo compatíveis](#supportedcodecs)
+ [Compreender o AWS Elemental MediaTailor comportamento de inserção de anúncios](ad-behavior.md)
+ [MediaTailor visão geral e implementação da inserção de anúncios guiada pelo servidor](server-guided.md)
+ [MediaTailor requisitos de integração do servidor de anúncios](vast.md)
+ [MediaTailor gerenciamento de configuração de reprodução](working-with-configurations.md)
+ [Integrando uma fonte de conteúdo para inserção de MediaTailor anúncios](integrating-origin.md)
+ [Integração AWS Elemental MediaTailor com o Google Ad Manager](gam-integration.md)
+ [Personalizando o comportamento de anúncios com a supressão de anúncios](ad-rules.md)
+ [MediaTailor pára-choques e inserção](bumpers.md)
+ [MediaTailor pré-rolo e inserção](ad-behavior-preroll.md)
+ [MediaTailor ardósia e inserção](slate-management.md)
+ [Pré-busca de anúncios](prefetching-ads.md)
+ [Usando anúncios pré-condicionados com AWS Elemental MediaTailor](precondition-ads.md)
+ [MediaTailor variáveis dinâmicas de anúncios para solicitações de ADS](variables.md)
+ [MediaTailor parâmetros de consulta do manifesto](manifest-query-parameters.md)
+ [Dados de relatórios e rastreamento](ad-reporting.md)
+ [Anúncios de sobreposição](overlay-ads.md)
+ [Decoração de ID do anúncio](ad-id-decoration.md)

## Codecs de áudio e vídeo compatíveis
<a name="supportedcodecs"></a>

MediaTailor suporta os seguintes codecs.
+ Codecs de áudio:mp4a,, e ac-3 ec-3
+ Codecs de vídeo: h.264 (AVC), h.265 (HEVC), av01 () AV1

# Compreender o AWS Elemental MediaTailor comportamento de inserção de anúncios
<a name="ad-behavior"></a>

AWS Elemental MediaTailor une anúncios em conteúdo ao vivo ou de vídeo sob demanda (VOD) substituindo ou inserindo anúncios no manifesto de origem. A inserção ou substituição dos anúncios depende de como os intervalos publicitários são configurados no manifesto de origem e se o conteúdo é VOD ou ao vivo. Um intervalo publicitário é o período durante a programação em que os comerciais são exibidos, enquanto os anúncios disponíveis são as unidades específicas do tempo de publicidade em um intervalo publicitário que podem ser preenchidas com anúncios.
+ Com a *substituição de anúncios, MediaTailor substitui* segmentos de conteúdo por anúncios. 
+ Com a *inserção de anúncios*, MediaTailor insere o conteúdo do anúncio onde os segmentos não existem.

Para obter informações sobre como MediaTailor agrupar anúncios em conteúdo ao vivo e VOD, selecione o tópico aplicável.

**Topics**
+ [Comportamento de costura de anúncios para VOD](#ad-behavior-vod)
+ [Comportamento de costura de anúncios ao vivo](#ad-behavior-live)

## Comportamento de costura de anúncios para VOD
<a name="ad-behavior-vod"></a>

MediaTailor insere ou substitui anúncios no conteúdo VOD com base em como os marcadores de anúncios são configurados no manifesto de origem e se o servidor de decisão de anúncios (ADS) envia respostas do VMAP.

Para saber o comportamento de anúncios por configuração de marcador, consulte as seções a seguir.

### Se os marcadores de anúncios estiverem presentes
<a name="markers-present"></a>

AWS Elemental MediaTailor insere anúncios em que os marcadores de anúncios SCTE-35 estão presentes no manifesto de origem. Marcadores de anúncios com um `EXT-X-CUE-OUT` valor de `0` duração indicam a inserção do anúncio. 

#### Diretrizes de HLS e marcadores
<a name="markers-present-hls"></a>

 Siga estas diretrizes para sinalização SCTE pós-rolagem e ad pod: 

##### Anúncios pré-lançados
<a name="post-roll-ad-markers"></a>

Para pós-exibições HLS, os marcadores `CUE-OUT/IN` devem preceder o último segmento de conteúdo. Isso porque a especificação HLS exige a declaração específica de decoradores de tag antes de um segmento. 

Por exemplo, considere a seguinte declaração. 

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
#EXT-X-ENDLIST
```

AWS Elemental MediaTailor insere um pós-rolo como o seguinte.

```
#EXTINF:4.000,
Videocontent.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.0,
Adsegment1.ts
#EXTINF:3.0,
Adsegment2.ts
#EXTINF:1.0,
Adsegment3.ts
#EXT-X-ENDLIST
```

**Example 2: Adicionar pods**  
 `CUE-OUT/IN`as tags devem ser anexadas explicitamente a um segmento. Não use várias tags `CUE-OUT/IN` em sucessão para imitar o comportamento de um conjunto de anúncios.  
Por exemplo, a declaração a seguir é um uso válido de `CUE-OUT/IN` para retratar um pod de anúncios.  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent1.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent2.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```
A declaração anterior acarreta um resultado semelhante ao seguinte.   

```
Ad 1
Somecontent.ts
Ad 2
Somecontent2.ts
Videocontent.ts
Post-Roll Ad 3
```
A declaração a seguir é inválida.  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```

### Se nenhum marcador de anúncio estiver presente
<a name="no-markers"></a>

Os marcadores de anúncios são a forma recomendada de sinalizar quebras de anúncios em um manifesto. No entanto, os marcadores de anúncios não são obrigatórios. Se o manifesto não contiver marcadores de anúncios para DASH ou HLS, MediaTailor faça uma única chamada para o ADS e crie intervalos publicitários com base na resposta:
+ Se o ADS enviar uma resposta VAST, MediaTailor insere todos os anúncios da resposta em um intervalo publicitário no início do manifesto. Este é um pre-roll.
+ Se o ADS enviar uma resposta do VMAP, MediaTailor usará os deslocamentos de tempo de intervalo do anúncio para criar intervalos e inseri-los em todo o manifesto nos horários especificados (pré-lançamento, meio ou pós-lançamento). MediaTailor usa todos os anúncios de cada intervalo de anúncio na resposta do VMAP para cada intervalo de anúncio no manifesto. 
**nota**  
Quando um segmento sobrepõe um ponto de inserção com VMAP para o conteúdo VOD, o MediaTailor arredonda para o ponto de inserção mais próximo. 
**dica**  
Caso você deseje criar intervalos comerciais intermediários, mas o ADS não ofereça suporte a VMAP, verifique se há marcadores de anúncios no manifesto. O MediaTailor insere anúncios nos marcadores, conforme descrito nas seções a seguir.

**nota**  
Para métodos de inserção de anúncios guiados pelo servidor, MediaTailor insere anúncios pré-lançados na parte superior do manifesto e o player os reproduz antes de outros tipos de anúncio.

## Comportamento de costura de anúncios ao vivo
<a name="ad-behavior-live"></a>

Nas transmissões ao vivo, AWS Elemental MediaTailor sempre realiza a substituição do anúncio, preservando o tempo total entre os marcadores do anúncio da forma mais próxima possível. Quando os marcadores de anúncio incluem o `DURATION` atributo, MediaTailor usa o valor para determinar a duração do intervalo publicitário. Cada `CUE-OUT` indicador deve ter uma duração ou um `CUE-IN` indicador correspondente em fluxos de trabalho ativos. 

MediaTailor realiza a substituição de anúncios para conteúdo ao vivo do HLS e do DASH. Para obter informações sobre como MediaTailor calcular o posicionamento e o tempo dos intervalos publicitários, consulte [Marcadores de anúncios compatíveis com HLS](hls-ad-markers.md) e. [Marcadores de anúncios DASH](dash-ad-markers.md) 

### Seleção e substituição de anúncios
<a name="ad-behavior-live-ad-selection"></a>

AWS Elemental MediaTailor inclui anúncios da resposta VAST do servidor de decisão de anúncios (ADS) da seguinte forma: 
+ Se uma duração for especificada, MediaTailor seleciona um conjunto de anúncios que se encaixa na duração e os inclui. 
+ Se nenhuma duração for especificada, MediaTailor reproduz o máximo de anúncios possível até encontrar um marcador de anúncio que indique um retorno ao conteúdo principal.

AWS Elemental MediaTailor segue as seguintes diretrizes durante a substituição de anúncios ao vivo: 
+ MediaTailor tenta reproduzir anúncios completos, sem recortes ou truncagens.
+ Sempre que MediaTailor encontra um marcador de anúncio que indica o fim do intervalo publicitário, ele retorna ao conteúdo subjacente. Isso pode significar a redução um anúncio em reprodução no momento. 
+ Ao final da duração, MediaTailor retorna ao conteúdo subjacente.
+ Se MediaTailor ficar sem anúncios para reproduzir durante um intervalo publicitário, ele será reproduzido, se houver um configurado, ou retomará a reprodução do fluxo de conteúdo subjacente. Em geral, isso acontece quando não há anúncios transcodificados suficientes para preencher o intervalo comercial. 

  
**dica**  
É possível definir o limite de tempo de anúncios não preenchido permitido em um intervalo com a configuração de limite de personalização. Para obter mais informações, consulte a [PlaybackConfiguration referência](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html#mediatailor-PutPlaybackConfiguration-request-PersonalizationThresholdSeconds).

### Pré-inscrição ao vivo para inserção de anúncios guiada pelo servidor
<a name="ad-behavior-live-preroll-sgai"></a>

A pré-rolagem ao vivo funciona de forma diferente para métodos de inserção de anúncios guiados pelo servidor em comparação com a inserção de anúncios no servidor:

Inserção de anúncios no lado do servidor (modo costurado)  
Os anúncios pré-lançados substituem parte do conteúdo ao vivo no início da sessão de cada espectador. Cada espectador vê a pré-inscrição em momentos diferentes, com base em quando entra na transmissão.

Métodos de inserção de anúncios guiados pelo servidor  
MediaTailor coloca uma tag de intervalo de datas de pré-rolagem na parte superior de todos os manifestos de mídia com atributos. `CUE="PRE,ONCE"` Isso faz com que os jogadores solicitem e reproduzam anúncios pré-lançados uma vez no início da reprodução, apesar de compartilharem o mesmo manifesto não personalizado.

**Requisitos de configuração:**
+ **Servidor de decisão de anúncios pré-lançados ao vivo:** configure um endpoint VAST para anúncios pré-lançados (pode ser diferente dos anúncios intermediários)
+ **Duração máxima permitida para pré-lançamento ao vivo:** defina a duração máxima para anúncios pré-lançados (opcional - se omitidos, todos os anúncios retornados serão usados)

**Implementação técnica:**
+ Usos `START-DATE="1970-01-01T00:00:00.000Z"` da tag de intervalo de datas de pré-rolagem (época do Unix)
+ As solicitações da lista de ativos para pré-inscrição usam o servidor de decisão de anúncios pré-lançado configurado, em vez do ADS normal.
+ Os jogadores identificam as solicitações de pré-inscrição por meio dos dados da `availId="aws-mediatailor-preroll-1"` lista de ativos.

**Importante**  
Para transmissões ao vivo, os anúncios pré-rolados abordam o conteúdo em vez de atrasá-lo. Versões futuras podem suportar o modo de atraso de conteúdo por meio de opções adicionais de configuração.

**nota**  
O comportamento da pré-inscrição varia entre conteúdo ao vivo e VOD para inserção de anúncios guiada pelo servidor. O conteúdo ao vivo exige uma configuração explícita de pré-lançamento, enquanto o conteúdo VOD inclui a pré-inscrição por padrão usando o servidor de decisão de anúncios normal.

### Exemplos
<a name="ad-behavior-live-examples"></a>
+ Se o intervalo publicitário tiver uma duração definida para 70 segundos e a resposta do ADS contiver dois anúncios de 40 segundos, AWS Elemental MediaTailor reproduzirá um dos anúncios de 40 segundos. No tempo restante, ele alterna para a barreira configurada ou o conteúdo subjacente. A qualquer momento durante esse processo, caso encontre um indicador da deixa de entrada, o MediaTailor vai imediatamente para o conteúdo subjacente. 
+ Se o intervalo publicitário tiver uma duração definida como 30 segundos e o anúncio mais curto fornecido pela resposta do ADS for de 40 segundos, não MediaTailor reproduzirá anúncios. Se uma lista de anúncios estiver configurada, MediaTailor reproduza-a por 30 segundos ou até encontrar um indicador de entrada. Caso contrário, MediaTailor reproduz o conteúdo subjacente.

# MediaTailor visão geral e implementação da inserção de anúncios guiada pelo servidor
<a name="server-guided"></a>

AWS Elemental MediaTailor a inserção de anúncios guiada pelo servidor (SGAI) fornece uma alternativa à inserção de anúncios no lado do servidor, referenciando anúncios como playlists separadas, em vez de agrupá-los diretamente em playlists de mídia. Essa abordagem melhora o desempenho por meio de manifestos armazenáveis em cache e permite melhor escalabilidade.

Para obter informações sobre como usar a inserção de anúncios guiada pelo servidor com MediaTailor, escolha o tópico aplicável na lista a seguir.

## Ativar na configuração de reprodução
<a name="enable-in-config"></a>

Para permitir que os jogadores usem a inserção de anúncios guiada pelo servidor, você deve definir como `PLAYER_SELECT` na configuração de `Insertion Mode` reprodução. MediaTailor Isso permite que os jogadores selecionem a inserção de anúncios costurados ou guiados no momento da inicialização da sessão.

## Crie uma sessão guiada pelo servidor
<a name="create-guided-session"></a>

Ao criar sessões de reprodução, escolha o modo guiado. A maneira de fazer isso depende se seus jogadores usam sessões implícitas ou explícitas.

### Sessões guiadas pelo servidor criadas implicitamente
<a name="create-implicit-guided-session"></a>

Anexe `aws.insertionMode=GUIDED` à solicitação de playlist multivariante do HLS. Exemplo:

```
playback-endpoint/v1/master/hashed-account-id/origin-id/index.m3u8?aws.insertionMode=GUIDED
```

Em que:
+ `playback-endpoint` é o endpoint de reprodução exclusivo gerado pelo AWS Elemental MediaTailor quando a configuração foi criada. 

  Exemplo

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com
  ```
+ `hashed-account-id`é o seu Conta da AWS ID. 

  Exemplo

  ```
  777788889999
  ```
+ `origin-id` é o nome dado quando se cria a configuração. 

  Exemplo

  ```
  myOrigin
  ```
+ `index.m3u8`ou é o nome do manifesto do fluxo de teste mais sua extensão de arquivo. Defina isso para que você obtenha um manifesto totalmente identificado ao anexá-lo à origem do conteúdo do vídeo configurada em [Etapa 4: Criar uma configuração](getting-started-ad-insertion.md#getting-started-add-mapping). 

Usando os valores dos exemplos anteriores, os valores completos URLs são os seguintes.
+ Exemplo:

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED
  ```

### Sessões guiadas pelo servidor criadas explicitamente
<a name="create-explicit-guided-session"></a>

Adicione `insertionMode=GUIDED` aos metadados JSON que o player envia no HTTP `POST` para o endpoint do prefixo de MediaTailor inicialização da sessão da configuração.

O exemplo a seguir mostra a estrutura dos metadados JSON:

```
{
  # other keys, e.g. "adsParams"
  "insertionMode": "GUIDED"       # this can be either GUIDED or STITCHED
}
```

Com esses metadados de inicialização, a sessão de reprodução usará a inserção de anúncios guiada pelo servidor.

# Rastreamento de anúncios com o SGAI
<a name="sgai-ad-tracking"></a>

O SGAI oferece suporte ao rastreamento de anúncios do lado do servidor e do lado do cliente. Você define o modo de relatório na inicialização da sessão. O modo não pode mudar durante a sessão.

Rastreamento do lado do servidor (padrão)  
MediaTailor dispara sinais VAST automaticamente quando o jogador solicita segmentos de anúncios. O anúncio URIs na lista de ativos contém metadados de beacon criptografados (`awsBeaconData`,,`awsBeaconDomain`). `awsConfigurationName` O jogador deve suportar a substituição de `#EXT-X-DEFINE:QUERYPARAM` variáveis HLS. A resposta da lista de ativos não inclui uma `TRACKING` seção.  
Para obter detalhes sobre como o beaconing do lado do servidor SGAI funciona, consulte. [Rastreamento do lado do servidor com inserção de anúncios guiada pelo servidor (SGAI)](ad-reporting-server-side-sgai.md)

Rastreamento do lado do cliente  
Adicione `aws.reportingMode=CLIENT` à sua solicitação de inicialização da sessão. A resposta da lista de ativos inclui uma `TRACKING` seção com um farol URLs que o player aciona durante a reprodução do anúncio. O endpoint `GetTracking` da API *não* é usado para sessões do SGAI. Em vez disso, cada resposta da lista de ativos inclui dados de rastreamento diretamente. Os dados de rastreamento usam o mesmo esquema JSON da resposta de rastreamento de inserção de anúncios no lado do servidor (SSAI).  
Para obter detalhes, consulte [Inserção de anúncios guiada pelo servidor](ad-reporting-client-side.md#ad-reporting-client-side-best-practices-sgai).

# Pré-busca guiada com batimento cardíaco manifesto
<a name="sgai-guided-prefetch"></a>

Para transmissões ao vivo do SGAI, você pode ativar a pré-busca de anúncios baseada em manifestos adicionando `aws.guidedPrefetchMode=MANIFEST` à sua solicitação de inicialização de sessão:

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

Quando ativado, MediaTailor anexa um identificador de sessão (`?aws.sessionId=<id>`) como parâmetro de consulta a cada URL de manifesto de mídia intersticial (`/v1/i-media`) na playlist multivariante. Sempre que o player atualiza um manifesto i-media, a solicitação chega MediaTailor com o ID da sessão, que é MediaTailor usado para enfileirar solicitações de busca prévia para os próximos intervalos publicitários.
+ O `aws.guidedPrefetchMode` parâmetro aceita dois valores: `MANIFEST` (ativado) e `OFF` (desativado, padrão).
+ O modo de pré-busca guiada só é válido para sessões do SGAI. Usá-lo com sessões costuradas retorna um erro.
+ O DASH ainda não oferece suporte ao modo de pré-busca guiada.
+ A pré-busca guiada é independente do modo de relatório — os beacons são acionados no momento da reprodução, não no momento da pré-busca.
+ **Não armazene em cache os manifestos i-media em sua CDN ao usar a pré-busca guiada.** O mecanismo de pré-busca depende das solicitações de atualização do manifesto do jogador chegarem diretamente. MediaTailor Se sua CDN armazena `/v1/i-media` respostas em cache, MediaTailor não recebe as solicitações de pulsação e não pode acionar a pré-busca.

# MediaTailor matriz de compatibilidade de recursos de inserção de anúncios guiada por servidor
<a name="sgai-feature-compatibility"></a>

AWS Elemental MediaTailor oferece dois métodos de inserção de anúncios com compatibilidade de recursos diferentes. A inserção de anúncios guiada pelo servidor funciona de forma diferente da inserção de anúncios no servidor, o que afeta a compatibilidade com alguns recursos. MediaTailor Use essa tabela para entender quais recursos funcionam com cada método de inserção de anúncios.


**Compatibilidade de recursos por método de inserção de anúncios**  

| Recurso | Inserção de anúncios no lado do servidor (SSAI) | Inserção de anúncios guiada pelo servidor (SGAI) | 
| --- | --- | --- | 
| Pré-busca de anúncios | ✓ Suportado | Sem suporte no momento | 
| Supressão de anúncios | ✓ Suportado | Não aplicável | 
| Pré-lançamento e comportamento | Controlado pela MediaTailor configuração | Controlado pela MediaTailor configuração | 
| Rastreamento de anúncios do lado do cliente | Usa GetTracking API | TRACKINGSeção de usos na lista de ativos (a GetTracking API não é usada) | 
| Rastreamento de anúncios do lado do servidor | ✓ Compatível — os beacons são acionados com base em /v1/segment solicitações usando o ID da sessão | ✓ Compatível (somente HLS) — usa beaconing sem sessão com dados de beacon criptografados incorporados ao ad via. URIs \$1EXT-X-DEFINE:QUERYPARAM Requer HLS v11 ou posterior. O DASH ainda não é suportado. | 
| Decoração de ID de anúncio | ✓ Suportado | ✗ Não compatível | 

## Detalhes de compatibilidade
<a name="compatibility-details"></a>

### Pré-busca de anúncios
<a name="prefetch-compatibility"></a>

No momento, a pré-busca de anúncios não é suportada.

### Supressão de anúncios
<a name="prefetch-compatibility"></a>

A supressão de anúncios não é compatível com os métodos de inserção de anúncios guiados pelo servidor porque os jogadores só buscam os anúncios que vão reproduzir. 

### Pré-lançamento e comportamento
<a name="preroll-compatibility"></a>

O pré-lançamento e o tempo funcionam de forma diferente entre os métodos de inserção:
+ **Inserção de anúncios no servidor:** MediaTailor controla quando os anúncios pré-lançados são reproduzidos com base nas configurações
+ **Inserção de anúncios guiada pelo servidor: MediaTailor insere** anúncios pré-lançados na parte superior do manifesto. Seu player mostra esses anúncios primeiro e depois inicia seu conteúdo

### Acompanhamento de anúncios
<a name="tracking-compatibility"></a>

O **rastreamento do lado do cliente** usa mecanismos diferentes, dependendo do método de inserção do anúncio:
+ **Inserção de anúncios no lado do servidor (SSAI)**: usa o endpoint da API `GetTracking`
+ **Inserção de anúncios guiada pelo servidor (SGAI):** MediaTailor fornece informações de rastreamento na `TRACKING` seção de cada resposta da lista de ativos. O endpoint `GetTracking` da API não é usado. A resposta de inicialização da sessão não inclui um`trackingUrl`.

O **rastreamento do lado do servidor** também difere entre os métodos:
+ **Inserção de anúncios no lado do servidor (SSAI):** MediaTailor dispara beacons quando o player busca segmentos de anúncios agrupados usando o ID da sessão. `/v1/segment/`
+ **Inserção de anúncios guiada pelo servidor (SGAI): usa beaconing** sem sessão. MediaTailor MediaTailor incorpora dados de beacon criptografados (`awsBeaconData`,`awsBeaconDomain`,`awsConfigurationName`) no manifesto publicitário URIs que eles retornam na lista de ativos. O manifesto do anúncio usa `#EXT-X-DEFINE:QUERYPARAM` tags para que o player substitua esses valores em um segmento URLs. Quando o player solicita cada segmento do anúncio, MediaTailor decifra os dados, dispara o beacon apropriado e redireciona para o segmento de conteúdo. Quando os relatórios do lado do servidor estão ativos, MediaTailor omite a `TRACKING` seção da resposta da lista de ativos. Para obter detalhes, consulte [Rastreamento do lado do servidor com inserção de anúncios guiada pelo servidor (SGAI)](ad-reporting-server-side-sgai.md).

### Decoração de ID de anúncio
<a name="ad-id-compatibility"></a>

A decoração do Ad-ID não é compatível com a inserção de anúncios guiada pelo servidor porque os campos que preenchem os X-AD-CREATIVE-SIGNALING cabeçalhos só são conhecidos quando a lista de ativos é buscada, não quando o manifesto é escrito.

# MediaTailor configuração de inserção de anúncios guiada por servidor para transmissões ao vivo
<a name="sgai-live-configuration"></a>

AWS Elemental MediaTailor a inserção de anúncios guiada pelo servidor para conteúdo ao vivo oferece benefícios significativos de desempenho por meio de manifestos que podem ser armazenados em cache. A configuração do SGAI para conteúdo ao vivo usa os mesmos parâmetros principais do VOD, com considerações específicas para as características da transmissão ao vivo e processamento em tempo real.

## Requisitos para SGAI ao vivo
<a name="sgai-live-requirements"></a>

Antes de ativar o SGAI para conteúdo ao vivo, verifique se você tem o seguinte:
+ Sua transmissão ao vivo inclui marcadores DATERANGE formatados corretamente
+ As durações dos intervalos publicitários são consistentes e previsíveis
+ Seu CDN está configurado para armazenar em cache os manifestos SGAI de forma adequada
+ Os jogadores oferecem suporte a fluxos de trabalho de inserção de anúncios guiados pelo servidor
+ Seu servidor de decisão de anúncios pode lidar com solicitações em tempo real de conteúdo ao vivo

### Requisitos do jogador
<a name="sgai-live-player-integration"></a>

Os jogadores devem estar configurados para lidar adequadamente com os manifestos ao vivo do SGAI:
+ Support para fluxos de trabalho de inserção de anúncios guiados pelo servidor
+ Capacidade de processar orientações de inserção de anúncios a partir de manifestos
+ Tratamento adequado do tempo e sincronização da transmissão ao vivo
+ Para conteúdo HLS: Support para HLS versão 8 e EXT-X-DATERANGE com o atributo CLASS. Versão 11 para beaconing do lado do servidor.
+ Para conteúdo HLS: suporte à substituição de EXT-X-DEFINE variáveis

## Configuração de reprodução ao vivo
<a name="sgai-live-playback-config"></a>

Para habilitar o SGAI para conteúdo ao vivo, crie uma configuração de reprodução com as seguintes configurações:

**Example Configuração de reprodução ao vivo do SGAI**  

```
{
  "Name": "LiveSGAIConfig",
  "VideoContentSourceUrl": "https://your-live-origin.com/live/stream.m3u8",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 1,
  "InsertionMode": "PLAYER_SELECT"
}
```

A seguir estão as principais considerações para a configuração ativa do SGAI:

`VideoContentSourceUrl`  
Deve apontar para um fluxo HLS ao vivo com marcadores SCTE-35 DATERANGE formatados corretamente. O stream deve manter durações de segmentos e variantes de taxa de bits consistentes.

## Solicitações de manifesto ao vivo do SG
<a name="sgai-live-manifest-requests"></a>

Os manifestos ativos do SGAI usam o mesmo padrão de URL da inserção tradicional de anúncios:

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED
```

## Pré-busca baseada em manifesto para SGAI ao vivo
<a name="sgai-live-guided-prefetch"></a>

Para fluxos de trabalho SGAI ativos, você pode ativar o heartbeating de pré-busca baseado em manifesto para reduzir a latência de preenchimento de anúncios. Adicione `aws.guidedPrefetchMode=MANIFEST` à solicitação do manifesto:

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

Quando ativado, MediaTailor anexa um identificador de sessão (`?aws.sessionId=<id>`) como parâmetro de consulta a cada URL de manifesto de mídia intersticial (`/v1/i-media`) na playlist multivariante. Sempre que o player atualiza um manifesto i-media, a solicitação chega MediaTailor com o ID da sessão, que é MediaTailor usado para identificar a sessão e enfileirar solicitações de pré-busca para os próximos intervalos publicitários.

**Importante**  
**Não armazene em cache os manifestos i-media em sua CDN ao usar a pré-busca guiada.** O mecanismo de pulsação prévia depende das solicitações de atualização do manifesto do jogador chegarem diretamente. MediaTailor Se sua CDN armazena em cache e fornece `/v1/i-media` respostas, MediaTailor não recebe as solicitações de pulsação e não pode acionar a pré-busca. Configure sua CDN para transmitir `/v1/i-media/*` solicitações até MediaTailor quando `aws.guidedPrefetchMode=MANIFEST` estiver em uso.

A pré-busca guiada é independente do modo de relatório. Se você usa o rastreamento do lado do servidor (padrão) ou do lado do cliente (`aws.reportingMode=CLIENT`), os beacons são acionados no momento da reprodução, não quando os anúncios são pré-buscados. Para obter informações gerais sobre como a pré-busca de anúncios funciona em MediaTailor. [Pré-busca de anúncios](prefetching-ads.md)

## Testando a configuração ativa do SGAI
<a name="sgai-live-testing"></a>

Verifique sua configuração ao vivo do SGAI com estas etapas de validação:

1. **Geração de manifesto de teste**

   Solicite o URL do manifesto ativo do SGAI e verifique se ele retorna conteúdo armazenável em cache com a orientação adequada de inserção de anúncios.

1. **Verifique o cache do CDN**

   Verifique se sua CDN está armazenando em cache os manifestos SGAI de acordo com os valores TTL configurados.

1. **Teste e inserção**

   Confirme se os jogadores conseguem inserir anúncios com sucesso usando as orientações fornecidas nos manifestos do SGAI.

1. **Monitore o desempenho**

   Use CloudWatch métricas para verificar a redução da carga de origem e as melhores taxas de acerto do cache.

# MediaTailor configuração de inserção de anúncios guiada pelo servidor para conteúdo VOD
<a name="sgai-vod-configuration"></a>

AWS Elemental MediaTailor a inserção de anúncios guiada por servidor para conteúdo VOD oferece benefícios significativos de desempenho por meio de manifestos altamente armazenáveis em cache e processamento reduzido do servidor. A configuração do SGAI para conteúdo VOD aproveita a natureza estática dos video-on-demand ativos para maximizar a eficiência do armazenamento em cache e minimizar as solicitações de origem, tornando-o ideal para grandes bibliotecas de conteúdo com padrões de visualização repetidos.

## Requisitos para VOD SGAI
<a name="sgai-vod-requirements"></a>

Antes de habilitar o SGAI para conteúdo VOD, verifique se você tem o seguinte:
+ Seu conteúdo VOD inclui marcadores de anúncios formatados corretamente (SCTE-35 ou metadados cronometrados)
+ O conteúdo é armazenado em uma origem confiável com disponibilidade consistente
+ Seu CDN está configurado para armazenar em cache os manifestos SGAI com os valores TTL apropriados
+ Os jogadores oferecem suporte a fluxos de trabalho de inserção de anúncios guiados pelo servidor
+ Seu servidor de decisão de anúncios pode lidar com metadados e segmentação específicos de VOD

### Requisitos do jogador
<a name="sgai-vod-player-requirements"></a>

Os jogadores devem estar configurados para lidar com manifestos VOD do SGAI e inserção de anúncios:
+ Support para fluxos de trabalho de inserção de anúncios guiados pelo servidor
+ Capacidade de processar orientações de inserção de anúncios a partir de manifestos de VOD
+ Support para inserção de anúncios do lado do cliente durante a reprodução de VOD
+ Tratamento adequado das operações de busca em intervalos publicitários
+ Support para duração do conteúdo e rastreamento de posição

## Configuração de reprodução de VOD
<a name="sgai-vod-playback-config"></a>

Para habilitar o SGAI para conteúdo VOD, crie uma configuração de reprodução com as seguintes configurações:

**Example Configuração de reprodução SGAI VOD**  

```
{
  "Name": "VODSGAIConfig",
  "VideoContentSourceUrl": "https://your-vod-origin.com/content/",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 5,
  "InsertionMode": "PLAYER_SELECT"
}
```

A seguir estão as principais considerações para a configuração do VOD SGAI:

`VideoContentSourceUrl`  
Deve apontar para sua biblioteca de conteúdo VOD com padrões de URL consistentes. Garanta que a origem possa lidar com o volume esperado de solicitações e forneça uma entrega confiável de conteúdo.

`ConfigurationAliases`  
Inclua parâmetros específicos do VOD, como duração do conteúdo, gênero ou informações da série, que podem ser usados para segmentação de anúncios sem afetar a capacidade de armazenamento em cache do manifesto.

`ManifestProcessingRules`  
Ative a passagem do marcador de anúncios para preservar as informações de tempo do conteúdo original, o que é especialmente importante para conteúdo VOD com posições predefinidas de interrupção do anúncio.

## Solicitações de manifesto SGAI VOD
<a name="sgai-vod-manifest-requests"></a>

Os manifestos VOD do SGAI usam o mesmo padrão de URL (inserção tradicional de anúncios VOD). 

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/content-path/manifest.m3u8?aws.insertionMode=GUIDED
```

## Segmentação de anúncios específica para VOD
<a name="sgai-vod-ad-targeting"></a>

O conteúdo VOD oferece oportunidades exclusivas de segmentação de anúncios:

### Segmentação por metadados de conteúdo
<a name="sgai-vod-content-metadata"></a>

Aproveite os metadados de conteúdo VOD para melhorar a segmentação de anúncios:
+ **Gênero e categoria:** segmente anúncios com base no tipo de conteúdo (drama, comédia, documentário)
+ **Classificação do conteúdo:** garanta um conteúdo de anúncio adequado à idade (classificações G, PG, R)
+ **Séries e temporadas:** segmente anúncios para continuidade da série ou conteúdo relacionado
+ **Data de lançamento:** meta com base na idade do conteúdo (novos lançamentos versus conteúdo do catálogo)
+ **Duração do conteúdo:** ajuste a carga do anúncio com base no tamanho total do conteúdo

### Visualizando a segmentação por contexto
<a name="sgai-vod-viewing-context"></a>

Os padrões de visualização de VOD permitem a segmentação contextual de anúncios:
+ **Hora do dia:** segmente anúncios com base em quando o conteúdo está sendo assistido
+ **Assistir compulsivamente:** ajuste a frequência dos anúncios para usuários que assistem a vários episódios
+ **Taxa de conclusão:** meta com base nos padrões históricos de conclusão do conteúdo do usuário
+ **Tipo de dispositivo:** otimize os formatos de anúncio para o dispositivo de visualização (TV, celular, tablet)

## Testando a configuração do SGAI VOD
<a name="sgai-vod-testing"></a>

Verifique a configuração do SGAI VOD com estas etapas de validação:

1. **Geração de manifesto de teste**

   Solicite o manifesto SGAI VOD URLs para diferentes tipos de conteúdo e verifique se eles retornam conteúdo armazenável em cache com a orientação adequada de inserção de anúncios.

1. **Verifique o cache do CDN**

   Verifique se sua CDN está armazenando em cache os manifestos SGAI de acordo com os valores de TTL configurados e alcançando altas taxas de acerto do cache.

1. **Teste e inserção**

   Confirme se os jogadores conseguem inserir anúncios com sucesso usando as orientações fornecidas nos manifestos do SGAI para vários conteúdos de VOD.

1. **Operações de busca de testes**

   Verifique se a busca no conteúdo VOD funciona corretamente em intervalos publicitários e mantém a posição de reprodução adequada.

1. **Monitore o desempenho**

   Use CloudWatch métricas para verificar a redução da carga de origem, melhores taxas de acerto do cache e taxas de inserção de anúncios bem-sucedidas.

### Principais cenários de teste
<a name="sgai-vod-testing-scenarios"></a>

Teste esses cenários específicos de VOD:
+ **Conteúdo popular:** verifique as altas taxas de acerto do cache para ativos de VOD acessados com frequência
+ **Conteúdo de formato longo:** teste a inserção de anúncios em filmes ou episódios longos com vários intervalos publicitários
+ **Conteúdo da série:** verifique a segmentação consistente de anúncios em todos os episódios de uma série
+ **Gêneros diferentes:** teste a segmentação de anúncios com base nos metadados e no gênero do conteúdo

## Melhores práticas de otimização do VOD SGAI
<a name="sgai-vod-optimization"></a>

Otimize sua implementação do SGAI VOD para obter o máximo desempenho:

### Otimização de cache
<a name="sgai-vod-cache-optimization"></a>
+ **Maximize os valores de TTL:** use durações de cache mais longas para manifestos de VOD, pois o conteúdo não muda
+ **Minimize as chaves de cache:** reduza as variações das chaves de cache para melhorar as taxas de acerto
+ **Pré-aqueça conteúdo popular:** manifestos de cache para conteúdo VOD popular ou em destaque
+ **Monitore o desempenho do cache:** acompanhe as taxas de acerto do cache e otimize com base nos padrões de uso

### Otimização da entrega de conteúdo
<a name="sgai-vod-content-optimization"></a>
+ **Padrões de URL consistentes:** use estruturas de URL previsíveis para melhorar o armazenamento em cache
+ **Padronização de metadados:** garanta metadados de conteúdo consistentes para uma segmentação confiável de anúncios
+ Posicionamento do **intervalo do anúncio: otimize o posicionamento** do intervalo do anúncio para transições naturais de conteúdo
+ **Variantes de qualidade:** garanta que o SGAI funcione em todas as variantes de taxa de bits do seu conteúdo VOD

# MediaTailor requisitos de integração do servidor de anúncios
<a name="vast"></a>

Para integrar seu servidor de anúncios AWS Elemental MediaTailor, seu servidor de anúncios deve enviar um XML que esteja em conformidade com as especificações do IAB para as versões compatíveis do VAST e do VMAP. Use um validador VAST público para garantir que as tags estejam bem formadas.

AWS Elemental MediaTailor suporta respostas VAST e VMAP de servidores de decisão de anúncios. AWS Elemental MediaTailor também suporta o proxy de metadados VPAID por meio de nossa API de relatórios do lado do cliente para inserção de anúncios do lado do cliente. Para obter informações sobre relatórios no lado do cliente, consulte [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md).

MediaTailor suporta as seguintes versões do VAST, VMAP e VPAID:
+ Até [VAST 4.3](https://iabtechlab.com/standards/vast/) 

  MediaTailor aceita versões de resposta por meio do VAST 4.3, mas alguns recursos avançados do VAST 4.0 e superior não são suportados.
+ [VMAP 1.0](https://www.iab.com/guidelines/digital-video-multiple-ad-playlist-vmap-1-0-1/)
+ [VPAID 2.0](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/)

## Requisitos VAST
<a name="vast-integration"></a>

A resposta VAST do servidor de anúncios deve conter elementos `TrackingEvents` compatíveis com IAB e tipos de evento padrão, como `impression`. Se você incluir eventos de rastreamento não padrão, AWS Elemental MediaTailor rejeitará a resposta do VAST e não fornecerá um anúncio disponível.

O VAST 3.0 introduziu suporte para conjuntos de anúncios, que é a entrega de um conjunto de anúncios lineares sequenciais. Se um anúncio específico em um pod de anúncios não estiver disponível, AWS Elemental MediaTailor registra um erro no CloudWatch registro de interações do ADS. Em seguida, ele tenta inserir o próximo anúncio no conjunto. Dessa forma, MediaTailor percorre os anúncios no pod até encontrar um que possa ser usado.

### Definição de destino
<a name="targeting"></a>

Para segmentar jogadores específicos para seus anúncios, você pode criar modelos para suas tags de anúncio URLs e. Para obter mais informações, consulte [MediaTailor variáveis dinâmicas de anúncios para solicitações de ADS](variables.md).

AWS Elemental MediaTailor usa proxy para o player `user-agent` e os `x-forwarded-for` cabeçalhos quando envia a solicitação VAST do servidor de anúncios e quando faz as chamadas de rastreamento do lado do servidor. Verifique se o servidor de anúncios consegue processar esses cabeçalhos. Também use `[session.user_agent]` ou `[session.client_ip]` e passe esses valores em strings de consulta na tag e no URL do anúncio. Para obter mais informações, consulte [MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md).

### Adicionar chamadas
<a name="ad-calls"></a>

AWS Elemental MediaTailor chama seu URL de anúncios VAST conforme definido em sua configuração. Ele substitui quaisquer parâmetros específicos do jogador ou da sessão ao fazer a chamada do anúncio. MediaTailor segue até sete níveis de invólucros e redirecionamentos VAST na resposta VAST. Em cenários de transmissão ao vivo, MediaTailor faz chamadas publicitárias simultaneamente no início da disponibilidade do anúncio para jogadores conectados. Na prática, por causa da oscilação, essas chamadas de anúncios podem ser distribuídas ao longo de alguns segundos. Certifique-se de que seu servidor de anúncios possa lidar com o número de conexões simultâneas que esse tipo de chamada exige. MediaTailor suporta a pré-busca de respostas VAST para fluxos de trabalho ativos. Para obter mais informações, consulte [Pré-busca de anúncios](prefetching-ads.md).

### Manipulação criativa
<a name="creative-handling"></a>

Quando AWS Elemental MediaTailor recebe a resposta do ADS VAST, para cada criativo, ele identifica a taxa de bits mais alta `MediaFile` para transcodificação e a usa como fonte. Ele envia esse arquivo para o on-the-fly transcodificador para transformação em representações que se ajustem às taxas de bits e resoluções multivariantes da playlist do player. Para obter melhores resultados, certifique-se de que seu arquivo de mídia com maior taxa de bits seja um MP4 ativo de alta qualidade com predefinições de manifesto válidas. Quando as predefinições de manifesto não são válidas, as tarefas de transcodificação falham, resultando na não exibição de anúncios. Exemplos de predefinições que não são válidas incluem formatos de arquivo de entrada não suportados, como, e determinadas especificações de representação ProRes, como a resolução 855X481. 

Para obter uma lista de formatos compatíveis para entradas de arquivos de mídia, consulte a **MP4**linha de [formatos de entrada compatíveis](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html) no *Guia do AWS Elemental MediaConvert usuário*.

**Indexação criativa**  
AWS Elemental MediaTailor indexa exclusivamente cada criativo pelo valor do `id` atributo fornecido no elemento. `<Creative>` Se o ID do criativo não for especificado, MediaTailor usa o URL do arquivo de mídia para o índice.

A seguinte declaração de exemplo mostra o ID do criativo.

```
<Creatives>
        <Creative id="57859154776" sequence="1">
```

Se você definir seu próprio criativo IDs, use um ID novo e exclusivo para cada criativo. Não reutilize a criatividade IDs. AWS Elemental MediaTailor armazena conteúdo criativo para uso repetido e encontra cada um por seu ID indexado. Quando um novo criativo chega, o serviço primeiro verifica o ID em relação ao índice. Caso o ID esteja presente, o MediaTailor usa o conteúdo armazenado, em vez de reprocessar o conteúdo recebido. Se você reutilizar uma ID criativa, MediaTailor usará o anúncio antigo armazenado e não reproduzirá seu novo anúncio. 

**Extensões VAST fornecidas por parceiros de veiculação de anúncios**  
Para ajudar a evitar colisões com a criatividade IDs, você pode usar extensões fornecidas por parceiros de veiculação de anúncios para a resposta do VAST. MediaTailor suporta extensões de SpringServe, Publica e. FreeWheel Quando você ativa as substituições da extensão VAST, MediaTailor substitui a ID criativa padrão pelo valor da extensão.

Para habilitar esse recurso, [envie um ticket de AWS Support](https://console.aws.amazon.com/support/home#/) para solicitar que a criação baseada na extensão VAST IDs seja habilitada. Inclua as seguintes informações no ticket do Support:
+ AWS Região
+ AWS ID da conta
+ MediaTailor nomes de configuração de reprodução

Para validar se os criativos baseados na extensão VAST IDs estão habilitados em sua conta, recomendamos que você também solicite que o `RAW_ADS_RESPONSE` registro seja ativado em uma configuração de teste ou teste de reprodução. Com o registro, você pode visualizar a resposta VAST original que o ADS recebe e confirmar se o criativo IDs correto foi usado. 

## Requisitos do VPAID
<a name="vpaid"></a>

VPAID permite que os editores veiculem anúncios de vídeo altamente interativos e forneçam métricas de visibilidade sobre os streamings monetizados. Para obter informações sobre VPAID, consulte a especificação [VPAID](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/).

AWS Elemental MediaTailor suporta uma combinação de anúncios MP4 lineares server-side-stitched client-side-inserted VAST e criativos interativos VPAID na mesma disponibilidade de anúncios. Ele preserva a ordem em que eles aparecem na resposta VAST. MediaTailor segue os redirecionamentos do VPAID por meio de um máximo de sete níveis de invólucros. A resposta dos relatórios no lado do cliente inclui metadados VPAID desencapsulados.

Para usar VPAID, siga estas diretrizes:
+ Configure uma MP4 lista para seus criativos VPAID. AWS Elemental MediaTailor preenche os espaços de anúncios VPAID com sua lista configurada e fornece metadados de anúncios VPAID para o player cliente usar para veicular os anúncios interativos. Caso você não tenha uma barreira configurada, quando um anúncio VPAID é exibido, o MediaTailor fornece os metadados do anúncio por meio de relatórios no lado do cliente normalmente. Ele também registra um erro CloudWatch sobre a lousa ausente. Para obter mais informações, consulte [MediaTailor ardósia e inserção](slate-management.md) e [Criando uma MediaTailor configuração de reprodução](configurations-create.md). 
+ Use relatórios do lado do cliente. AWS Elemental MediaTailor suporta VPAID por meio de nossa API de relatórios do lado do cliente. Para obter mais informações, consulte [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md). 

  Teoricamente, é possível usar o modo de relatórios no lado do servidor padrão com VPAID. No entanto, caso use relatórios no lado do servidor, você perde todas as informações sobre a presença do anúncio VPAID e dos metadados próximos, porque eles só estão disponíveis por meio da API no lado do cliente. 
+ Em cenários ao vivo, certifique-se de que seus anúncios, indicados por`EXT-X-CUE-OUT: Duration`, sejam longos o suficiente para acomodar qualquer interatividade do usuário no VPAID. Por exemplo, se o XML VAST especificar um anúncio VPAID com 30 segundos de duração, considere configurar a disponibilidade do anúncio para mais de 30 segundos. Esse tempo adicional dá aos usuários mais chances de interagir com o anúncio. Se você não adicionar tempo, poderá perder os metadados VPAID porque a duração restante na disponibilidade do anúncio não é longa o suficiente para acomodar o anúncio VPAID.



# MediaTailor gerenciamento de configuração de reprodução
<a name="working-with-configurations"></a>

Esta seção aborda as principais tarefas para gerenciar as configurações de AWS Elemental MediaTailor reprodução. Você pode aprender a criar uma nova configuração para configurar fluxos de conteúdo e fornecer acesso a dispositivos de reprodução, visualizar detalhes de uma configuração existente, editar uma configuração para atualizar configurações, como servidores de origem e servidores de decisão de anúncios, e excluir uma configuração que não é mais necessária.

**Topics**
+ [Criando uma MediaTailor configuração de reprodução](configurations-create.md)
+ [Visualizando detalhes da MediaTailor configuração](configurations-view.md)
+ [Editando MediaTailor as configurações](configurations-edit.md)
+ [Excluindo configurações MediaTailor](configurations-delete.md)

# Criando uma MediaTailor configuração de reprodução
<a name="configurations-create"></a>

Este tópico mostra como criar uma configuração para começar a receber fluxos de conteúdo. AWS Elemental MediaTailor Também mostra como fornecer um ponto de acesso para dispositivos de reprodução downstream solicitarem conteúdo.

Você pode usar o AWS Elemental MediaTailor console, o AWS Command Line Interface (AWS CLI) > ou a MediaTailor API para criar uma configuração. Para obter informações sobre como criar uma configuração por meio da MediaTailor API AWS CLI or, consulte a [https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html).

Ao criar uma configuração, não coloque informações de identificação confidenciais em campos de formato livre, como o campo **Nome da configuração**. As informações de identificação podem incluir coisas como números de contas de clientes. Além disso, não use informações de identificação ao trabalhar no MediaTailor console, na API REST AWS CLI, no ou AWS SDKs. Todos os dados que você inserir MediaTailor podem ser coletados para inclusão nos registros de diagnóstico ou nos CloudWatch Eventos da Amazon.

**Como adicionar uma configuração (console)**

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

1. Na página **Configurações**, selecione **Criar configuração**. 

1. Preencha os campos de configuração e configuração adicionais, conforme descrito nos tópicos a seguir:
   +  [Configurações necessárias](#configurations-create-main) 
   +  [Configurações opcionais](#configurations-create-addl) 

1. Escolha **Criar configuração**. 

   AWS Elemental MediaTailor exibe a nova configuração na tabela da página **Configurações**.

1. (Recomendado) Configure uma CDN AWS Elemental MediaTailor para solicitações de manifestos e relatórios. Você pode usar a reprodução da configuração URLs para a configuração do CDN. Para obter informações sobre como configurar uma CDN para solicitações de manifestos e relatórios, consulte [Usando uma CDN para otimizar a personalização de MediaTailor anúncios e a entrega de conteúdo](integrating-cdn.md).

## Configurações necessárias
<a name="configurations-create-main"></a>

Ao criar uma configuração, você deve incluir as configurações necessárias a seguir.

**Nome**  
Insira um nome exclusivo que descreva a configuração. O nome é o principal identificador da configuração. O tamanho máximo permitido é de 512 caracteres.

**Fonte de conteúdo**  
 Insira o prefixo do URL do manifesto para esse streaming, menos o ID do ativo. O tamanho máximo é de 512 caracteres.  
Por exemplo, o prefixo de URL `http://origin-server.com/a/` é válido para um URL de playlist multivariante HLS de `http://origin-server.com/a/main.m3u8` e para um URL DASH MPD de. `http://origin-server.com/a/dash.mpd` Também é possível inserir um prefixo mais curto, como `http://origin-server.com`, mas o `/a/` deve ser incluído no ID do ativo na solicitação do player para o conteúdo.   
Caso a origem do conteúdo use HTTPS, o certificado deve ser de uma autoridade de certificação bem conhecida. Não pode ser um certificado autoassinado. Se você usa um certificado autoassinado, AWS Elemental MediaTailor não consegue se conectar à origem do conteúdo e não pode veicular manifestos em resposta às solicitações dos jogadores.

**Servidor de decisão de anúncios**  
 Insira o URL do servidor de decisões de anúncios (ADS). Esse é o URL com variáveis conforme descrito em [Etapa 3: Configurar o URL de solicitação do ADS e os parâmetros de consulta](getting-started-ad-insertion.md#getting-started-configure-request) ou o URL VAST estático que você está usando para fins de teste. O tamanho máximo é de 25.000 caracteres.  
Caso o ADS use HTTPS, o certificado deve ser de uma autoridade de certificação bem conhecida. Não pode ser um certificado autoassinado. O mesmo também se aplica ao anúncio de mezanino URLs retornado pelo ADS. Se você usar um certificado autoassinado, não AWS Elemental MediaTailor poderá recuperar e incluir anúncios nos manifestos a partir da origem do conteúdo.

## Configurações opcionais
<a name="configurations-create-addl"></a>

Opcionalmente, você pode definir **aliases de configuração**, **detalhes de personalização** e **configurações avançadas** no MediaTailor console, na MediaTailor API ou no AWS Command Line Interface ().AWS CLI

### Aliases de configuração
<a name="configurations-configuration-aliases"></a>

A seguir estão os aliases de configuração opcionais que você pode configurar no MediaTailor console ou com a MediaTailor API.

**Variável de parâmetro do jogador**  
Para configuração dinâmica do domínio durante a inicialização da sessão, adicione uma ou mais variáveis de parâmetros do player.  
Para obter mais informações sobre o uso de variáveis de parâmetros do player para configurar domínios dinamicamente, consulte. [MediaTailor variáveis de domínio para várias fontes de conteúdo](variables-domains.md)

### Configuração de log
<a name="configurations-log-configurations"></a>

A seguir estão as configurações de log.

**Porcentagem ativada**  
Define a porcentagem de registros da sessão de configuração de reprodução que MediaTailor grava CloudWatch nos registros. Por exemplo, se sua configuração de reprodução tiver 1.000 sessões e você definir a porcentagem ativada como **60**, MediaTailor grava 600 registros de sessão em CloudWatch Logs.  
 Quando você ativa essa opção, cria MediaTailor automaticamente uma função vinculada ao serviço que permite MediaTailor gravar e gerenciar registros de sessão na sua conta do CloudWatch Logs. Para obter mais informações, consulte [Usando funções vinculadas a serviços para MediaTailor](using-service-linked-roles.md). 

**Estratégias de registro**  
Indica o método usado para coletar os registros MediaTailor emitidos. Para enviar registros diretamente para o CloudWatch Logs, escolha`LEGACY_CLOUDWATCH`. Para enviar registros para o CloudWatch Logs, que então os vende para o destino de sua escolha, escolha`VENDED_LOGS`. Os destinos compatíveis são um grupo de CloudWatch registros de registros, um bucket do Amazon S3 e um stream do Amazon Data Firehose.  
É necessária uma configuração adicional para troncos vendidos. Para configurar, consulte[Usando registros vendidos](vended-logs.md).

**Eventos de aceitação do registro de interações do ADS**  
Indica que MediaTailor emitirá `RAW_ADS_RESPONSE` registros para sessões inicializadas com essa configuração.   
O evento de `RAW_ADS_RESPONSE` log contém toda a resposta VAST ou VMAP do ADS. Dessa forma, os registros podem ser extensos e aumentar seus custos de registro.

**Registro de interação do ADS exclui eventos**  
Indica que MediaTailor não emitirá os eventos selecionados nos registros que descrevem as interações com o ADS.  
Para obter uma descrição dos eventos de registro do ADS, consulte[Registros do ADS](ads-log-format.md).

**Registro de interação do serviço manifesto, exclui eventos**  
Indica que MediaTailor não emitirá os eventos selecionados nos registros que descrevem as interações com o serviço de manifesto.  
Para obter uma descrição dos eventos do log de serviço do manifesto, consulte[Registros de manifestos](log-types.md).

### Condicionamento de anúncios
<a name="configurations-ad-conditioning"></a>

As informações a seguir determinam quais ações são MediaTailor tomadas para condicionar os anúncios antes de agrupá-los em um fluxo de conteúdo. 

**Condicionamento de arquivos de mídia de streaming**  
Determina a lógica MediaTailor usada ao decidir quais anúncios costurar.   
+ Quando o **condicionamento do arquivo de mídia de streaming** está definido como **Transcodificar**, MediaTailor transcodifica os arquivos de mídia com a `progressive` entrega e os une ao manifesto. Se não houver anúncios suficientes com arquivos de mídia `progressive` de entrega para preencher a disponibilidade, MediaTailor transcodifica e usa esses anúncios com `streaming` entrega.
+ Quando o **condicionamento de arquivos de mídia de streaming** está definido como **Nenhum** MediaTailor , agrupa anúncios com arquivos `streaming` de mídia de entrega no manifesto sem transcodificá-los. Se não houver anúncios suficientes com arquivos de mídia `streaming` de entrega para preencher a disponibilidade, MediaTailor transcodifica e usa esses anúncios com `progressive` entrega. 

### Detalhes de personalização
<a name="configurations-personalization-details"></a>

Veja a seguir os detalhes de personalização que você pode configurar no MediaTailor console ou com a MediaTailor API.

**Anúncio de barreira**  
Insira o URL de um MP4 recurso de alta qualidade MediaTailor usado para preencher o tempo de anúncio não preenchido. A configuração do Slate é opcional para a maioria dos fluxos de trabalho, mas obrigatória para anúncios VPAID. Para obter informações abrangentes sobre o comportamento da ardósia, os requisitos de configuração e quando a ardósia é exibida, consulte. [MediaTailor ardósia e inserção](slate-management.md)

**Para-choque de partida**  
O URL da localização inicial do ativo bumper. Os bumpers são pequenos clipes de vídeo ou áudio que são reproduzidos no início ou no final de um intervalo publicitário. Eles podem ser armazenados no S3 da Amazon ou em um serviço de armazenamento diferente. Para saber mais sobre pára-choques, consulte[MediaTailor pára-choques e inserção](bumpers.md).

**Pára-choque final**  
O URL da localização do ativo final do bumper. Os bumpers são pequenos clipes de vídeo ou áudio que são reproduzidos no início ou no final de um intervalo publicitário. Eles podem ser armazenados no S3 da Amazon ou em um serviço de armazenamento diferente. Para saber mais sobre pára-choques, consulte[MediaTailor pára-choques e inserção](bumpers.md).

**Limite de personalização**  
Só se aplica quando usado em conjunto com o anúncio em ardósia. Define a duração máxima do tempo de anúncio não preenchido (em segundos) permitido em um intervalo publicitário antes de MediaTailor abandonar a personalização e mostrar o conteúdo subjacente. Esse recurso se aplica à substituição de anúncios em streamings ao vivo e VOD e não à inserção de anúncios, porque ele depende de um fluxo de conteúdo subjacente. Para cenários de comportamento detalhados e informações abrangentes, consulte[Como funciona o limite de personalização](slate-management.md#personalization-threshold-scenarios).

**Servidor de decisões de anúncios pre-roll ao vivo**  
Para inserir anúncios no início de um streaming ao vivo antes do início da reprodução do conteúdo principal, insira o URL do anúncio pre-roll do servidor de decisões de anúncios (ADS). Esse é o URL com variáveis conforme descrito em [Etapa 3: Configurar o URL de solicitação do ADS e os parâmetros de consulta](getting-started-ad-insertion.md#getting-started-configure-request) ou o URL VAST estático que você está usando para fins de teste. O tamanho máximo é de 25.000 caracteres.  
Caso o ADS use HTTPS, o certificado deve ser de uma autoridade de certificação bem conhecida. Não pode ser um certificado autoassinado. O mesmo também se aplica ao anúncio de mezanino URLs retornado pelo ADS. Se você usar um certificado autoassinado, não AWS Elemental MediaTailor poderá recuperar e incluir anúncios nos manifestos a partir da origem do conteúdo.
Para obter informações sobre como funciona o pre-roll, consulte [MediaTailor pré-rolo e inserção](ad-behavior-preroll.md).

**Duração máxima permitida de pre-roll ao vivo**  
Ao inserir anúncios no início de um streaming ao vivo, insira a duração máxima permitida para a disponibilidade de anúncios pre-roll. O MediaTailor não excederá essa duração ao inserir anúncios. Se a resposta do ADS contiver mais anúncios do que cabe nessa duração, MediaTailor preencha o formulário com o maior número possível de anúncios, sem ultrapassar a duração. Para obter mais detalhes sobre como os MediaTailor preenchimentos são disponibilizados, consulte. [Comportamento de costura de anúncios ao vivo](ad-behavior.md#ad-behavior-live)

**Aproveite o modo de supressão**  
Define o modo de supressão de disponibilidade, também conhecido como supressão de anúncios. Por padrão, a supressão de anúncios está desativada e MediaTailor preenche tudo com anúncios ou ardósia. Quando o modo está definido como`BEHIND_LIVE_EDGE`, a supressão de anúncios está ativa e MediaTailor não preenche os intervalos de anúncios dentro ou após o tempo de valor da supressão de disponibilidade na janela de retrospectiva do manifesto. Quando o modo está definido como`AFTER_LIVE_EDGE`, a supressão de anúncios está ativa. MediaTailornão preenche intervalos publicitários durante ou após o período de supressão de disponibilidade, que é a vantagem ativa mais o valor da supressão de disponibilidade mais o tempo de espera.

**Valor de supressão de aproveitamento**  
O valor de supressão de disponibilidade é um tempo de compensação de borda em tempo real. `HH:MM:SS` MediaTailor desta vez, não preencherei intervalos publicitários anteriores ou posteriores na janela de retrospectiva do manifesto.

**Modo de inserção**  
O Modo de Inserção controla se os jogadores podem usar a inserção de anúncios costurados ou guiados. O padrão,`STITCHED_ONLY`, força todas as sessões do jogador a usarem a inserção de anúncios costurados (do lado do servidor). InsertionMode A configuração para `PLAYER_SELECT` permite que os jogadores selecionem a inserção de anúncios costurados ou guiados no momento da inicialização da sessão. O padrão para jogadores que não especificam um modo de inserção é costurado.

### Configurações avançadas
<a name="configurations-advanced-settings"></a>

A seguir estão as configurações opcionais avançadas. Você pode configurá-los no MediaTailor console, com o AWS Command Line Interface (AWS CLI) ou usando a MediaTailor API.

**Prefixo do segmento de conteúdo da CDN**  
Permite AWS Elemental MediaTailor criar manifestos em seu caminho URLs de CDN para segmentos de conteúdo. Antes de seguir essa etapa, configure uma regra na CDN para extrair segmentos do servidor de origem. Em **CDN content segment prefix (Prefixo do segmento de conteúdo CDN)**, digite o caminho do prefixo CDN.  
Para obter mais informações sobre a integração MediaTailor com uma CDN, consulte. [Usando uma CDN para otimizar a personalização de MediaTailor anúncios e a entrega de conteúdo](integrating-cdn.md)

**Prefixo de segmento de anúncios da CDN**  
Permite AWS Elemental MediaTailor criar manifestos com URLs seu próprio caminho de CDN para segmentos de anúncios. Por padrão, MediaTailor veicula segmentos de anúncios de uma CloudFront distribuição interna da Amazon com configurações de cache padrão. Para preencher o campo **CDN ad segment prefix (Prefixo do segmento de anúncios da CDN)**, você deve configurar uma regra na CDN para extrair segmentos de anúncio na seguinte origem, como o exemplo a seguir.  

```
https://segments.mediatailor.<region>.amazonaws.com
```
Em **CDN ad segment prefix (Prefixo do segmento de anúncios da CDN)**, digite o nome do prefixo da CDN na configuração.  
Para obter mais informações sobre a integração MediaTailor com uma CDN, consulte. [Usando uma CDN para otimizar a personalização de MediaTailor anúncios e a entrega de conteúdo](integrating-cdn.md)

**Tipo de manifesto de origem DASH**  
Se o servidor de origem produzir manifestos DASH de período único, abra a lista suspensa e escolha **SINGLE\$1PERIOD**. Por padrão, o MediaTailor lida com manifestos DASH de vários períodos. Para obter mais informações, consulte [Integrando uma fonte MPEG-DASH](manifest-dash.md).

**Local de mpd DASH**  
(Opcional conforme necessário para o DASH) O local da descrição da apresentação de mídia (mpd). Escolha **DESATIVADO** para a seguinte situação:  
+ Você configura as regras de roteamento da CDN para acessar MediaTailor manifestos.
+ Você usa relatórios do lado do cliente ou seu player suporta redirecionamentos HTTP persistentes.
Para obter mais informações sobre o recurso **Location (Local)**, consulte [Recurso de localização do DASH](dash-location-feature.md).

**Transcodifique o nome do perfil**  
O nome que associa essa configuração a um perfil de transcodificação personalizado. Esse nome substitui os padrões de transcodificação dinâmica de. MediaTailor Preencha esse campo somente se você já tiver configurado perfis personalizados com a ajuda do AWS Support.

**Passagem de marcadores de anúncios**  
Para HLS, ativa ou desativa a passagem de marcadores de anúncios. Quando a transmissão do marcador de anúncio está ativada, os marcadores de `EXT-X-SPLICEPOINT-SCTE35` anúncio MediaTailor passam por `EXT-X-CUE-IN` e do manifesto de origem para o manifesto MediaTailor personalizado. `EXT-X-CUE-OUT` Nenhuma lógica é aplicada aos valores do marcador do anúncio; eles são passados do manifesto de origem para o manifesto personalizado no estado em que se encontram. Por exemplo, se `EXT-X-CUE-OUT` tiver um valor de `60` no manifesto de origem, mas nenhum anúncio for colocado, MediaTailor não alterará o valor para `0` no manifesto personalizado.

# Visualizando detalhes da MediaTailor configuração
<a name="configurations-view"></a>

Além dos valores fornecidos quando a configuração foi criada, AWS Elemental MediaTailor exibe o nome da configuração, os endpoints de reprodução e o acesso relevante. URLs Para visualizar uma configuração, use o procedimento a seguir.



 **Como exibir uma configuração ** 

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

1. Na página **Configurations (Configurações)**, escolha o **Configuration name (Nome da configuração)** a ser exibida.

# Editando MediaTailor as configurações
<a name="configurations-edit"></a>

Você pode editar uma configuração para atualizar o servidor de origem e o mapeamento do servidor de decisão de anúncios (ADS) ou alterar a forma como AWS Elemental MediaTailor interage com uma rede de distribuição de conteúdo (CDN).



 **Para editar uma configuração ** 

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

1. Na página **Configurations (Configurações)**, escolha o nome da configuração que deseja editar.

1. Na página de detalhes da configuração, escolha **Edit (Editar)** e revise as definições de configuração conforme necessário. Não edite o nome da configuração. Para obter informações sobre atributos da configuração, consulte [Criando uma MediaTailor configuração de reprodução](configurations-create.md).

1. Escolha **Salvar**. 

# Excluindo configurações MediaTailor
<a name="configurations-delete"></a>

Você pode excluir uma configuração para torná-la indisponível para reprodução com. AWS Elemental MediaTailor



 **Como excluir uma configuração ** 

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

1. Na página **Configurations (Configurações)**, faça o seguinte:
   + Escolha o nome da configuração que você deseja excluir. 
   + Na coluna **Configuration name (Nome da configuração)**, escolha a opção ao lado do nome e **Delete (Excluir)**. 

1. Na caixa de confirmação **Delete (Excluir)**, digite **Delete** e escolha **Delete (Excluir)**. 

# Integrando uma fonte de conteúdo para inserção de MediaTailor anúncios
<a name="integrating-origin"></a>

Este tópico aborda a integração de diferentes tipos de fontes de conteúdo de vídeo com o. MediaTailor MediaTailorsuporta os protocolos de streaming HLS e DASH para conteúdo ao vivo e sob demanda. O serviço pode realizar a inserção ou substituição de anúncios durante intervalos publicitários designados e tem requisitos específicos para a estrutura e formatação dos manifestos de vídeo de entrada para habilitar esses recursos. Os tópicos a seguir fornecem detalhes sobre os requisitos da fonte de entrada e as etapas para integrar o conteúdo do HLS e do DASH MediaTailor para permitir experiências publicitárias personalizadas.

**Topics**
+ [Requisitos de fonte de entrada para inserção de MediaTailor anúncios](stream-reqmts.md)
+ [Integrando uma fonte HLS](manifest-hls.md)
+ [Integrando uma fonte MPEG-DASH](manifest-dash.md)
+ [Protegendo as interações de AWS Elemental MediaTailor origem com o SigV4](origin-sigv4.md)

# Requisitos de fonte de entrada para inserção de MediaTailor anúncios
<a name="stream-reqmts"></a>

Uma fonte de entrada deve atender aos seguintes requisitos para trabalhar com MediaTailor:
+ Usar Apple HLS (HTTP Live Streaming) ou MPEG DASH (Dynamic Adaptive Streaming over HTTP)
+ Usar streaming ao vivo ou VOD
+ Estar acessível na internet pública e ter um endereço IP público
+ Use portas HTTP padrão (porta 80) ou portas HTTPS (porta 443). MediaTailor não oferece suporte a portas personalizadas para comunicação com o servidor de origem.
+ Contenha marcadores de anúncios em um dos formatos descritos no tutorial de [introdução à inserção de MediaTailor anúncios](getting-started-ad-insertion.md#getting-started-prep-stream) 

# Integrando uma fonte HLS
<a name="manifest-hls"></a>

AWS Elemental MediaTailor suporta `.m3u8` manifestos HLS com um `EXT-X-VERSION` de `3` ou superior para transmissão ao vivo e vídeo sob demanda (VOD). Quando MediaTailor encontra uma quebra de anúncio, ele tenta inserir ou substituir o anúncio, com base no tipo de conteúdo. Se não houver anúncios suficientes para preencher a duração, durante o restante do intervalo publicitário, MediaTailor exibirá o fluxo de conteúdo subjacente ou a lista configurada. Para obter mais informações sobre o comportamento do anúncio HLS com base no tipo de conteúdo, consulte[Compreender o AWS Elemental MediaTailor comportamento de inserção de anúncios](ad-behavior.md).

As seções a seguir fornecem mais informações sobre como MediaTailor lidar com manifestos HLS.

**Topics**
+ [Marcadores de anúncios compatíveis com HLS](hls-ad-markers.md)
+ [Habilitando a passagem de marcadores de anúncios](ad-marker-passthrough.md)
+ [Manipulação de tags de manifesto HLS](manifest-hls-tags.md)
+ [Exemplos de manifestos HLS](manifest-hls-example.md)

# Marcadores de anúncios compatíveis com HLS
<a name="hls-ad-markers"></a>

AWS Elemental MediaTailor identifica os limites de disponibilidade de anúncios em um manifesto HLS analisando o manifesto de entrada em busca de marcadores de anúncios compatíveis. As seções a seguir descrevem quais marcadores o MediaTailor usa.

## EXT-X-ASSET
<a name="hls-ad-markers-asset"></a>

A tag `EXT-X-ASSET` contém metadados usados pelo servidor de decisões de anúncios (ADS) para personalizar o conteúdo para o visualizador. Os parâmetros `EXT-X-ASSET` são pares de chave-valor separados por vírgula.

Para usar essa tag, é necessário atender aos seguintes requisitos:
+ Você deve codificar em URL `EXT-X-ASSET` *os valores* no manifesto de origem. O exemplo a seguir mostra a tag `EXT-X-ASSET` com chaves e valores codificados em URL.

  ```
              #EXT-X-ASSET:GENRE=CV,CAID=12345678,EPISODE="Episode%20Name%20Date",SEASON="Season%20Name%20and%20Number",SERIES="Series%2520Name"
  ```
+ Você deve incluir a `[asset.]` variável dinâmica e as *chaves* na configuração do MediaTailor ADS. O exemplo a seguir mostra uma configuração do MediaTailor ADS usando a `[asset.]` variável dinâmica e as chaves.

  ```
              https://myads.com/stub?c=[asset.GENRE]&g=[asset.CAID]&e=[asset.EPISODE]&s=[asset.SEASON]&k=[asset.SERIES]
  ```

**Exemplo de solicitação VAST**  
O exemplo a seguir mostra uma solicitação `GET` VAST para um ADS.

```
            https://myads.com/stub?c=CV&g=12345678&e=Episode%20Name%20Date&s=Season%20Name%20and%20Number&k=Series%2520Name
```

## EXT-X-CUE-OUT and EXT-X-CUE-IN
<a name="hls-ad-markers-cue"></a>

Esse tipo de marcador de anúncio é o mais comum. Os exemplos a seguir mostram as opções para esses marcadores de deixas.

```
#EXT-X-CUE-OUT:DURATION=120
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT:30.000
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT
    ...
    #EXT-X-CUE-IN
```

## EXT-X-DATERANGE
<a name="hls-ad-markers-range"></a>

Com tags de marcadores de anúncios `EXT-X-DATERANGE`, use atributos `SCTE35-OUT` para especificar a programação da disponibilidade de anúncios. 

**nota**  
AWS Elemental MediaTailor ignora todos `START-DATE` os atributos fornecidos para marcadores de `EXT-X-DATERANGE` anúncios. 

É possível especificar a disponibilidade de anúncios de uma das seguintes formas:
+ A tag `EXT-X-DATERANGE` com especificações `SCTE35-OUT` e `DURATION`. 

  Exemplo

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
  ```
+ Tags `EXT-X-DATERANGE` emparelhadas, a primeira com uma especificação `SCTE35-OUT` e a segunda com uma especificação `SCTE35-IN`. 

  Exemplo

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```
+ Uma combinação das opções anteriores. Você especifica uma tag `EXT-X-DATERANGE` com especificações `DURATION` `SCTE35-OUT` e seguidas por uma tag `EXT-X-DATERANGE` com uma especificação `SCTE35-IN`. Nesse caso, MediaTailor usa a configuração de sinalização mais antiga das duas especificações.

  Exemplo

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```

## PONTO DE EMENDA EXT-X- SCTE35
<a name="hls-ad-markers-splice"></a>

Anexe a tag do marcador de anúncios `EXT-X-SPLICEPOINT-SCTE35` com uma carga SCTE-35 em binário codificado em base64. O binário codificado deve fornecer um `splice_info_section` SCTE-35 contendo o marcador de deixa de saída `0x34`, para início da oportunidade de posicionamento do provedor, e o marcador de deixa de entrada `0x35`, para término da oportunidade de posicionamento do provedor. 

O exemplo a seguir mostra a especificação de ponto de emenda com cargas binárias codificadas em base64 que especificam marcadores de deixa de entrada e saída. 

```
    #EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
    ...
    #EXT-X-SPLICEPOINT-SCTE35:/DA4AAAAAAAAAP/wBQb+tTeaawAiAiBDVUVJAAAKqH+/DBFNRFNOQjAwMTEzMjIxOTJfTjUAAIiGK1s=
```

# Habilitando a passagem de marcadores de anúncios
<a name="ad-marker-passthrough"></a>

Por padrão, para o HLS, os manifestos MediaTailor personalizados não incluem os marcadores de anúncios SCTE-35 dos manifestos de origem. Quando a transmissão do marcador de anúncio está ativada, MediaTailor passa pelos seguintes marcadores de anúncio dos manifestos de origem para os manifestos personalizados:
+ EXT-X-CUE-IN
+ EXT-X-CUE-OUT
+ PONTO DE EMENDA EXT-X- SCTE35

 A passagem do marcador de anúncio é uma configuração opcional. Use a passagem de marcadores de anúncios se quiser que os marcadores de anúncios SCTE sejam incluídos no manifesto personalizado. MediaTailor Os casos de uso comuns incluem o seguinte: 
+ Substituição de conteúdo - Execute a substituição ou restrição de conteúdo.
+ Rastreamento de anúncios: acione as informações de rastreamento de anúncios com base na presença ou ausência de um ou mais marcadores de anúncios.
+ Configurações do player - Ative a funcionalidade de depuração ou cronômetro de contagem regressiva na interface do player, com base na presença ou ausência de marcadores de anúncios.

**nota**  
MediaTailor não altera os valores desses marcadores. Por exemplo, se `EXT-X-CUE-OUT` tiver um valor de `60` no manifesto de origem, mas nenhum anúncio for colocado, MediaTailor não alterará o valor para `0` no manifesto personalizado. 

## Ativar a passagem de marcadores de anúncios
<a name="enable-ad-marker-passthrough"></a>

Você pode ativar a passagem do marcador de anúncio usando o Console de gerenciamento da AWS ou o AWS Command Line Interface ()AWS CLI.

**Para ativar a passagem de marcadores de anúncios usando o console**

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

1.  Selecione **Nova configuração** ou **Editar configuração**.

1. Na seção **Configurações avançadas**, selecione **Ativar** no menu suspenso.

**Para ativar a passagem de marcadores de anúncios usando o AWS Command Line Interface ()AWS CLI**  
Use o comando [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html).

# Manipulação de tags de manifesto HLS
<a name="manifest-hls-tags"></a>

Esta seção descreve como AWS Elemental MediaTailor gerencia as tags no manifesto de saída personalizado.

## EXT-X-CUE etiquetas
<a name="manifest-hls-tags-cue"></a>

MediaTailor substitui as `EXT-X-CUE-IN` tags `EXT-X-CUE-OUT``EXT-X-CUE-OUT-CONT`, e no manifesto de entrada por `EXT-X-DISCONTINUITY` tags no manifesto de saída. As tags `DISCONTINUITY` marcam os seguintes limites:
+ Onde o conteúdo principal muda para um anúncio
+ Onde um anúncio muda para outro anúncio
+ Onde um anúncio muda de volta para o conteúdo principal

## Tags do EXT-X-DATERANGE
<a name="manifest-hls-tags-daterange"></a>

MediaTailor passa pelas `EXT-X-DATERANGE` tags do manifesto de entrada para o manifesto de saída. MediaTailor também insere `EXT-X-DISCONTINUITY` tags que correspondem às `DATERANGE` tags. As tags `DISCONTINUITY` marcam os seguintes limites:
+ Onde o conteúdo principal muda para um anúncio
+ Onde um anúncio muda para outro anúncio
+ Onde um anúncio muda de volta para o conteúdo principal

## Tags do EXT-X-KEY
<a name="manifest-hls-tags-key"></a>

MediaTailor passa pelas `EXT-X-KEY` tags do manifesto de entrada. Essas tags indicam que o conteúdo principal é criptografado. Como os anúncios não são criptografados, o MediaTailor insere `EXT-X-KEY:METHOD=NONE` no início de uma disponibilidade de anúncio. Quando a reprodução retornar ao conteúdo principal, MediaTailor reative a criptografia inserindo a `EXT-X-KEY` tag com o `METHOD` valor definido como o tipo de criptografia.

## Tags não reconhecidas
<a name="manifest-hls-tags-unknown"></a>

MediaTailor passa por todas as tags desconhecidas e personalizadas do manifesto de entrada para o manifesto de saída.

# Exemplos de manifestos HLS
<a name="manifest-hls-example"></a>

As seções a seguir fornecem exemplos de manifestos de origem HLS e manifestos personalizados. Compreender esses exemplos pode ajudá-lo a configurar e solucionar problemas em seus MediaTailor fluxos de trabalho.

Para obter informações sobre como os parâmetros de consulta são aplicados aos manifestos e segmentos do HLS, consulte. [MediaTailor Inicialização de sessão implícita do HLS](manifest-query-parameters-hls-implicit-session-initialization.md)

## Entendendo os tipos de playlists do HLS
<a name="hls-playlist-overview"></a>

O HTTP Live Streaming (HLS) usa dois tipos principais de playlists:

Lista de reprodução multivariante  
Uma playlist multivariante é o arquivo de índice de nível superior que lista todas as representações disponíveis do conteúdo. Ele contém referências a playlists de mídia, mas não contém nenhum segmento de mídia em si. Essa playlist permite que os jogadores selecionem a representação mais adequada com base nas condições da rede, nos recursos do dispositivo ou nas preferências do usuário.  
Esse tipo de playlist também é conhecido por vários outros nomes em vários contextos, incluindo playlist master, manifesto principal, playlist primária, playlist principal, arquivo de índice ou master M3U8.  
Em MediaTailor fluxos de trabalho, a playlist multivariante é o ponto de entrada para solicitações de reprodução e é onde a personalização de anúncios começa.

Playlist de mídia  
Uma playlist de mídia contém as informações reais do segmento de mídia para uma representação específica (nível de qualidade) do conteúdo. Ele inclui informações de tempo URLs, segmentos e outros metadados necessários para a reprodução de uma única representação.  
Esse tipo de playlist também é conhecido como playlist de mídia, manifesto secundário, chunklist, mídia M3U8 ou playlist de renderização.  
Nos MediaTailor fluxos de trabalho, as playlists de mídia são personalizadas para incluir segmentos de conteúdo e segmentos de anúncios na sequência correta.

Para obter informações mais detalhadas sobre os tipos de playlist do HLS, consulte[Tipos de playlist HLS](hls-playlist-types.md).

## Exemplos de manifesto de origem do HLS
<a name="manifest-hls-ex-origin"></a>

O exemplo a seguir mostra uma playlist multivariante HLS AWS Elemental MediaTailor recebida pelo HLS da origem do conteúdo.

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:BANDWIDTH=2665726,AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_1.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=3956044,AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_2.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=995315,AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,FRAME-RATE=29.970,CODECS="avc1.4D401E,mp4a.40.2",SUBTITLES="subtitles"
    index_3.m3u8
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="caption_1",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="eng",URI="index_4_0.m3u8"
```

Neste exemplo de playlist multivariante:
+ As `#EXT-X-STREAM-INF` tags definem diferentes rendições com diferentes resoluções e taxas de bits
+ Cada representação faz referência a uma playlist de mídia (como) `index_1.m3u8`
+ A `#EXT-X-MEDIA` tag define uma faixa de legenda

O exemplo a seguir mostra uma playlist de mídia HLS AWS Elemental MediaTailor recebida pelo HLS da origem do conteúdo. Esse exemplo usa tags `EXT-X-CUE-OUT` e `EXT-X-CUE-IN` para descrever oportunidades de disponibilidade de anúncios.

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXTINF:6.006,
    index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    index_1_8779959.ts?m=1566416212
    #EXT-OATCLS-SCTE35:/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXT-X-CUE-OUT:20.020
    #EXTINF:0.634,
    index_1_8779960.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=0.634,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779961.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=6.640,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779962.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=12.646,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779963.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=18.652,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:1.368,
    index_1_8779964.ts?m=1566416212
    #EXT-X-CUE-IN
    #EXTINF:4.638,
    index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779968.ts?m=1566416212
```

Neste exemplo de playlist de mídia:
+ As `#EXTINF` tags especificam a duração de cada segmento
+ A `#EXT-X-CUE-OUT` tag marca o início de um intervalo publicitário
+ As `#EXT-X-CUE-OUT-CONT` tags fornecem informações sobre o intervalo publicitário em andamento
+ A `#EXT-X-CUE-IN` tag marca o final do intervalo publicitário

## Exemplos de manifestos personalizados do HLS
<a name="manifest-hls-ex-personalized"></a>

O exemplo a seguir mostra uma playlist multivariante HLS personalizada. AWS Elemental MediaTailor 

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/3.m3u8",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665726
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=3956044
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/1.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.4D401E,mp4a.40.2",AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=995315
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/2.m3u8
```

Observe como MediaTailor modificou a playlist de mídia URLs para incluir informações específicas da sessão que permitem a inserção personalizada de anúncios.

O exemplo a seguir mostra uma playlist de mídia AWS Elemental MediaTailor personalizada.

```
#EXTM3U
    #EXT-X-VERSION:6
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXT-X-DISCONTINUITY-SEQUENCE:0
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779959.ts?m=1566416212
    #EXT-X-DISCONTINUITY
    #EXTINF:3.066667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779960
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779961
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779962
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779963
    #EXTINF:2.966667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779964
    #EXT-X-DISCONTINUITY
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779963.ts?m=1566416212
    #EXTINF:1.368,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779964.ts?m=1566416212
    #EXTINF:4.638,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779968.ts?m=1566416212
```

Neste exemplo de playlist de mídia personalizada:
+ MediaTailor inseriu segmentos de anúncios entre os segmentos de conteúdo
+ As `#EXT-X-DISCONTINUITY` tags marcam as transições entre conteúdo e anúncios
+ Os segmentos de conteúdo são servidos a partir do servidor de origem (MediaPackage neste exemplo)
+ Os segmentos de anúncios são servidos a partir MediaTailor do armazenamento de segmentos de anúncios

## Principais diferenças em manifestos personalizados
<a name="manifest-hls-key-differences"></a>

Quando MediaTailor personaliza os manifestos do HLS, ele faz várias mudanças importantes:

Mudanças multivariantes na playlist  
+  URLs As playlists variantes são reescritas para apontar para MediaTailor -managed, incluindo URLs informações da sessão
+ A ordem das tags pode ser reorganizada para uma reprodução ideal

Alterações na playlist variante  
+ Os marcadores de anúncios (`EXT-X-CUE-OUT`,`EXT-X-CUE-IN`) são substituídos por segmentos de anúncios reais
+ Marcadores de descontinuidade (`EXT-X-DISCONTINUITY`) são adicionados nos limites content/ad 
+  URLs Os segmentos de conteúdo são reescritos para apontar para a origem ou CDN
+ Segmentos de anúncios URLs são adicionados ao armazenamento de segmentos MediaTailor de anúncios do point to

Compreender essas mudanças pode ajudá-lo a solucionar problemas em seus MediaTailor fluxos de trabalho e garantir a configuração adequada do CDN e do player.

## Tópicos relacionados
<a name="manifest-hls-related-topics"></a>

Para obter mais informações sobre manifestos do HLS e MediaTailor, consulte os seguintes tópicos:
+ [Tipos de playlist HLS](hls-playlist-types.md)- Explicação detalhada dos tipos de playlists HLS
+ [Usando uma CDN para otimizar a personalização de MediaTailor anúncios e a entrega de conteúdo](integrating-cdn.md)- Informações sobre o uso de uma CDN com MediaTailor
+ [Como funciona a inserção de MediaTailor anúncios](what-is-flow.md)- Visão geral de como a inserção de MediaTailor anúncios funciona

# Integrando uma fonte MPEG-DASH
<a name="manifest-dash"></a>

AWS Elemental MediaTailor suporta manifestos `.mpd` ao vivo e de vídeo sob demanda (VOD) que seguem as diretrizes do perfil dinâmico do DASH. MediaTailor aceita entradas de manifesto compatíveis com DASH de vários períodos e de período único e fornece saídas de manifesto compatíveis com DASH de vários períodos. 

Os manifestos de entrada devem ter o seguinte:
+ Streamings de eventos SCTE-35 com configurações de informações de emenda para `splice insert ` ou ` time signal`. As configurações podem ser fornecidas em XML limpo ou em binário codificado em base64. 
+ `Segment templates` com `segment timelines`. 

Para manifestos publicados, MediaTailor exige que as atualizações do servidor de origem deixem o seguinte inalterado: 
+ Horários de início do período, especificados no atributo `start`. 
+ Valores de `presentationTimeOffset` nos modelos de segmento das representações do período. 

Como prática recomendada, forneça aos anúncios as mesmas `Representation` configurações `AdaptationSet` e os mesmos prazos do fluxo de conteúdo. AWS Elemental MediaTailor usa essas configurações para transcodificar os anúncios de acordo com o fluxo de conteúdo, para uma alternância suave entre os dois.

As seções a seguir fornecem mais informações sobre como MediaTailor lidar com anúncios em manifestos do DASH.

**Topics**
+ [Marcadores de anúncios DASH](dash-ad-markers.md)
+ [DASH e duração do Avail](dash-ad-avail-duration.md)
+ [Numeração de segmentos do manifesto DASH](dash-manifest-segment-numbering.md)
+ [Exemplos de DASH MPD](manifest-dash-example.md)
+ [Recurso de localização do DASH](dash-location-feature.md)

# Marcadores de anúncios DASH
<a name="dash-ad-markers"></a>

MediaTailor 

AWS Elemental MediaTailor usa marcadores de saída SCTE-35 para identificar anúncios no manifesto DASH usando a seguinte lógica: 
+ **DASH de vários períodos**: MediaTailor insere anúncios para o primeiro `Event` em cada um `Period` que contém marcadores `SpliceInsert` ou `TimeSignal` marcadores destacados. MediaTailorignora `Event` marcadores adicionais no. `Period`
+ **DASH de período único**: MediaTailor insere anúncios `Period` que contêm `Event` marcadores `SpliceInsert` ou `TimeSignal` marcadores destacados.

Por padrão, AWS Elemental MediaTailor gerencia os manifestos do DASH como manifestos de vários períodos. Você pode alterar sua configuração para lidar com manifestos DASH de um único período no servidor de origem. Para mais informações, consulte [Criando uma MediaTailor configuração de reprodução](configurations-create.md).

As seções a seguir fornecem detalhes adicionais sobre o manuseio de marcadores de anúncios DASH e fornecem manifestos decorados desde a origem.

## Requisitos de XML do manifesto de origem do DASH
<a name="dash-ad-markers-examples"></a>

Os marcadores de anúncios nos manifestos do DASH da origem devem ser formatados adequadamente MediaTailor para identificar quebras de anúncios. Os tópicos a seguir descrevem esses requisitos de formatação em XML claro.

### `SpliceInsert`em XML claro
<a name="dash-splice-xml"></a>

`SpliceInsert`os marcadores de anúncios em XML claro devem conter o seguinte:
+ `EventStream`deve ter o seguinte atributo: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`deve aguentar `scte35:SpliceInfoSection` 
+ `scte35:SpliceInfoSection`deve aguentar `scte35:SpliceInsert` 
+ `scte35:SpliceInsert`deve ter o seguinte atributo: `outOfNetworkIndicator="true"`

**Example `SpliceInsert`em XML**  
No exemplo a seguir, os marcadores SCTE obrigatórios estão em negrito.   

```
<Period start="PT444806.040S" id="123586" 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="4026531855" 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>
    </Event>
  .
  .
  .
</Period>
```

### `TimeSignal`em XML claro
<a name="dash-signal-xml"></a>

`TimeSignal`os marcadores de anúncios em XML claro devem conter o seguinte:
+ `EventStream`deve ter o seguinte atributo: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`deve aguentar `scte35:SpliceInfoSection`
+ `scte35:SpliceInfoSection`deve aguentar `scte35:TimeSignal`
+ `scte35:SpliceInfoSection`também deve segurar `scte35:SegmentationDescriptor`
+ `scte35:SegmentationDescriptor`deve ter o seguinte atributo, em que o valor é válido[Números de recorte](#dash-signal-xml-values): `segmentationTypeId="xx"`
+ `scte35:SegmentationDescriptor`deve aguentar `scte35:SegmentationUpid` 
<a name="dash-signal-xml-values"></a>
**Números de recorte**  
A seguir estão os números de sinalização suportados para o. `segmentationTypeId`


| Mensagem de segmentação | Valor do segmentationTypeId | Valor hexadecimal | 
| --- | --- | --- | 
| Fim do anúncio do distribuidor | 51 | 0x51 | 
| Início do anúncio do distribuidor | 50 | 0x32 | 
| Fim da oportunidade de colocação de distribuidores | 55 | 0x37 | 
| Início da oportunidade de colocação de distribuidor | 54 | 0x36 | 
| Intervalo final | 35 | 0x23 | 
| Fim do anúncio do provedor | 49 | 0x31 | 
| Início do anúncio do provedor | 48 | 0x30 | 
| Fim da oportunidade de colocação de sobreposição de fornecedores | 57 | 0x39 | 
| Início da oportunidade de colocação de sobreposição de fornecedores | 56 | 0x38 | 
| Fim da oportunidade de colocação de fornecedores | 53 | 0x35 | 
| Início da oportunidade de colocação de fornecedores | 52 | 0x34 | 
| Comece o intervalo | 34 | 0x22 | 

**Example `TimeSignal`em XML**  
No exemplo a seguir, os marcadores SCTE obrigatórios estão em negrito.   

```
<Period start="PT346530.250S" id="178443" 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="1414668" 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>
  .
  .
  .
</Period>
```

## Requisitos binários codificados em base64 do manifesto de origem do DASH
<a name="dash-base64"></a>

Os marcadores de anúncios nos manifestos do DASH da origem devem ser formatados adequadamente MediaTailor para identificar quebras de anúncios. Os tópicos a seguir descrevem esses requisitos de formatação em binário codificado em base64.

Ambos `TimeSignal` e os marcadores de `SpliceInsert` anúncios em manifestos codificados em base64 devem conter o seguinte:
+ `EventStream`deve ter o seguinte atributo: `urn:scte:scte35:2014:xml+bin`
+ `Event`deve aguentar `scte35:Signal`
+ `scte35:Signal`deve conter um `scte35:Binary` binário codificado em base64. 

O binário decodificado deve fornecer a `splice_info_section` com as mesmas informações necessárias para marcadores de anúncios em XML claros.
+ O tipo de comando deve ser `splice_insert()` ou `time_signal()`
+ As configurações adicionais devem estar em conformidade com as descritas em [`TimeSignal`em XML claro](#dash-signal-xml) [`SpliceInsert`em XML claro](#dash-splice-xml) e.

 O binário codificado deve fornecer um `splice_info_section` com o mesmo conjunto de informações que o XML limpo forneceria em um elemento `scte35:SpliceInfoSection`. O tipo de comando deve ser `splice_insert()` ou `time_signal()`, e as configurações adicionais devem estar em conformidade com as descritas anteriormente para a entrega de XML limpo. 

O exemplo a seguir mostra essa opção, com os marcadores necessários em negrito.

```
<Period start="PT444806.040S" id="123586" 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</scte35:Binary>
        </scte35:Signal>
      </Event>
      <Event presentationTime="1541436360" duration="24" id="30">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</scte35:Binary>
        </scte35:Signal>
      </Event>
  .
  .
  .
</Period>
```

O seguinte é o binário decodificado para o primeiro evento listado no exemplo anterior. A configuração `splice_command_type` é 5, o que indica `splice_insert`. 

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

# DASH e duração do Avail
<a name="dash-ad-avail-duration"></a>

Durante a reprodução, quando AWS Elemental MediaTailor encontra um anúncio disponível, ele substitui parte ou toda a disponibilidade por anúncios. MediaTailor inicia a substituição do anúncio no início da disponibilidade do anúncio e inclui anúncios da seguinte forma: 
+ Se a disponibilidade do anúncio especificar uma duração, MediaTailor inclua quantos anúncios couberem dentro do limite de duração, sem substituir o conteúdo a seguir. 
+ Se nenhuma duração for fornecida, MediaTailor inclua anúncios até o final da disponibilidade do anúncio. Para manifestos de vários períodos, este é o término do período. Para manifestos de período único, esse é o fim do evento. MediaTailor não exibe anúncios após o final da disponibilidade do anúncio e, quando chega ao fim, trunca o anúncio atual em vez de sobrescrever o conteúdo a seguir. 

**Como AWS Elemental MediaTailor parece a duração da disponibilidade do anúncio**  
AWS Elemental MediaTailor pesquisa uma configuração de duração na seguinte ordem: 

1. `Event` `duration`

1. Para inserção por emenda, `scte35:BreakDuration` `duration`

1. Para o sinal de tempo, `scte35:SegmentationDescriptor` `segmentationDuration`

Se AWS Elemental MediaTailor não encontrar nenhuma dessas configurações, ele gerencia a inclusão de anúncios sem uma duração. 

O exemplo a seguir mostra um recurso `Event` que tem uma `duration`.

```
  <Period start="PT444806.040S" id="123586" 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="4026531855" 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>
            </Event>
              ...
```

O exemplo a seguir mostra a disponibilidade de anúncios sem duração especificada. O `Event` não tem `duration`, e o elemento `scte35:SpliceInsert` não contém um elemento filho `scte35:BreakDuration`.

```
  <Period start="PT444836.720S" id="123597" duration="PT12.280S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event>
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531856" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5675385600"/></scte35:Program>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
            ...
```

# Numeração de segmentos do manifesto DASH
<a name="dash-manifest-segment-numbering"></a>

MediaTailor suporta segmentos de mídia `<SegmentTemplate>` que são definidos usando `<SegmentTimeline>` e o `media` atributo. Você pode especificar a lista de segmentos de mídia no atributo `media` usando o identificador `$Number$` ou o identificador `$Time$`.

 O exemplo a seguir mostra um `SegmentTemplate` com um atributo `media` que usa o identificador `$Number$`.

```
        <SegmentTemplate initialization="index_subtitles_4_0_init.mp4?m=1532451703" media="index_subtitles_4_0_$Number$.mp4?m=1532451703" presentationTimeOffset="1062336677920" startNumber="2349899" timescale="90000">
                <SegmentTimeline>
                  <S d="540540" r="2" t="1062338840080"/>
                  <S d="69069" t="1062340461700"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

 O exemplo a seguir mostra um `SegmentTemplate` com um atributo `media` que usa o identificador `$Time$`.

```
        <SegmentTemplate initialization="asset_720p_8000K_9_init.mp4" media="asset_720p_8000K_9_$Time$.mp4" startNumber="1" timescale="90000">
                <SegmentTimeline>
                  <S d="180000" r="2" t="0"/>
                  <S d="147000" t="540000"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

# Exemplos de DASH MPD
<a name="manifest-dash-example"></a>

As seções a seguir fornecem exemplos de origem MPDs e personalização MPDs do DASH. Compreender esses exemplos pode ajudá-lo a configurar e solucionar problemas em seus MediaTailor fluxos de trabalho.

Para obter informações sobre como os parâmetros de consulta são aplicados aos manifestos e segmentos do DASH, consulte. [MediaTailor Inicialização de sessão implícita do DASH](manifest-query-parameters-dash-implicit-session-initialization.md)

## Entendendo a estrutura do DASH MPD
<a name="dash-mpd-overview"></a>

O Dynamic Adaptive Streaming over HTTP (DASH) usa um manifesto Media Presentation Description (MPD) para fornecer conteúdo de streaming. O MPD é um documento XML que descreve a estrutura e a disponibilidade do conteúdo de mídia.

MPD (Descrição da apresentação de mídia)  
O MPD é o arquivo de manifesto principal no streaming do DASH que descreve a estrutura e a disponibilidade do conteúdo de mídia. Ele contém informações sobre períodos, conjuntos de adaptação, representações e segmentos que compõem o conteúdo de streaming.  
Esse tipo de manifesto também é conhecido por vários outros nomes em vários contextos, incluindo manifesto DASH, DASH MPD, manifesto mestre (quando comparado ao HLS) ou manifesto de apresentação.  
Em MediaTailor fluxos de trabalho, o MPD é o ponto de entrada para solicitações de reprodução e é onde a personalização de anúncios começa.

Período  
Um período é uma seção temporal de uma apresentação do DASH. Cada período contém um ou mais conjuntos de adaptação e representa um período de tempo de mídia. Em fluxos de trabalho de inserção de anúncios, períodos separados são normalmente usados para delimitar entre conteúdo e anúncios.  
Nos MediaTailor fluxos de trabalho, os períodos são usados para separar o conteúdo principal do conteúdo do anúncio, com cada anúncio normalmente representado por seu próprio período.

AdaptationSet  
E AdaptationSet agrupa um conjunto de versões codificadas intercambiáveis de um ou vários componentes de conteúdo de mídia. Por exemplo, um AdaptationSet pode conter vários níveis de qualidade de vídeo, enquanto outro pode conter várias opções de idioma de áudio.  
Nos MediaTailor fluxos de trabalho, AdaptationSets são preservados durante a inserção do anúncio para manter os tipos de mídia consistentes entre o conteúdo e os anúncios.

Representação  
Uma representação é uma versão codificada específica do conteúdo de mídia em um AdaptationSet. Cada representação normalmente difere em taxa de bits, resolução ou outros parâmetros de codificação, permitindo que os clientes selecionem a versão mais apropriada com base nas condições da rede e nos recursos do dispositivo.  
Em MediaTailor fluxos de trabalho, as Representações em Períodos de Anúncios são combinadas da forma mais próxima possível com as Representações em Períodos de Conteúdo para garantir uma experiência de visualização tranquila.

Para obter informações mais detalhadas sobre os tipos de manifesto DASH, consulte[Tipos de manifesto DASH](dash-manifest-types.md).

Para obter informações sobre a estrutura e configuração do manifesto do DASH em AWS Elemental MediaPackage, consulte a seção Guia do MediaPackage usuário sobre a visão geral do DASH.

## Exemplos de DASH MPD ao vivo
<a name="dash-manifest-live-examples"></a>

Esta seção fornece exemplos de DASH MPDs ao vivo. Cada exemplo lista um MPD como recebido do servidor de origem e depois MediaTailor personalizou o MPD com anúncios.

### Exemplo de inserção de emenda DASH MPD
<a name="dash-manifest-splice-insert-example"></a>

**Exemplo de MPD de origem DASH para inserção de emenda**  
O exemplo a seguir de um MPD mostra um anúncio disponível em um manifesto recebido pelo DASH da origem do conteúdo. Este exemplo usa o `SpliceInsert` marcador para indicar a disponibilidade de um anúncio.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="9450000"/>
        </scte35:SpliceInsert>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001">
        <SegmentTimeline>
          <S t="16633452289" d="96256" r="3"/>
          <S t="16633837313" d="95232"/>
          <S t="16633932545" d="96256" r="4"/>
          <S t="16634413825" d="95232"/>
          <S t="16634509057" d="96256" r="5"/>
          <S t="16635086593" d="95232"/>
          <S t="16635181825" d="96256" r="4"/>
          <S t="16635663105" d="95232"/>
          <S t="16635758337" d="96256" r="5"/>
          <S t="16636335873" d="71680"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Neste exemplo de origem do MPD:
+ O `<EventStream>` elemento contém marcadores SCTE-35 que indicam anúncios disponíveis
+ O `<scte35:SpliceInsert>` elemento fornece detalhes sobre a disponibilidade do anúncio
+ O `<scte35:BreakDuration>` elemento especifica a duração do intervalo publicitário
+ Os `<AdaptationSet>` elementos definem os fluxos de vídeo e áudio disponíveis

**Exemplo de MPD personalizado do DASH para inserção de emenda**  
AWS Elemental MediaTailor personaliza o anúncio com as especificações de publicidade. As personalizações refletem os dados do espectador recebidos do player e as campanhas publicitárias atualmente em andamento. 

O exemplo a seguir mostra a disponibilidade de um anúncio depois de AWS Elemental MediaTailor personalizá-lo. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
    <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280">
      <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Neste exemplo personalizado de MPD:
+ MediaTailor criou um novo período para o conteúdo do anúncio
+ O `<BaseURL>` elemento aponta para o local do conteúdo do anúncio
+ Os `<AdaptationSet>` elementos mantêm uma estrutura semelhante ao conteúdo
+ Os `<Representation>` elementos fornecem diferentes níveis de qualidade para o conteúdo do anúncio

### Exemplo de sinal de horário DASH MPD
<a name="dash-manifest-time-signal-example"></a>

**Exemplo de MPD de origem DASH para sinal de tempo**  
O exemplo a seguir de um MPD mostra um anúncio disponível em um manifesto recebido pelo DASH da origem do conteúdo. Este exemplo usa o `TimeSignal` marcador para indicar a disponibilidade de um anúncio.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="7835775000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Neste exemplo de origem do MPD:
+ O `<scte35:TimeSignal>` elemento é usado em vez de `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>`Fornece informações adicionais sobre a disponibilidade do anúncio

**Exemplo de MPD personalizado do DASH para sinal de tempo**  
AWS Elemental MediaTailor personaliza o anúncio com as especificações de publicidade. As personalizações refletem os dados do espectador recebidos do player e as campanhas publicitárias atualmente em andamento. 

O exemplo a seguir mostra a disponibilidade de um anúncio depois de AWS Elemental MediaTailor personalizá-lo. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

O MPD personalizado para sinal de tempo é semelhante ao da inserção de emenda, com a MediaTailor criação de um novo período para o conteúdo do anúncio.

## Exemplos de VOD DASH MPD
<a name="dash-manifest-vod-examples"></a>

Esta seção fornece exemplos de vídeo sob demanda (VOD) MPDs DASH. Cada exemplo lista um MPD como recebido do servidor de origem e depois MediaTailor personalizou o MPD com anúncios.

O VOD DASH MPDs segue a mesma estrutura do live MPDs, mas normalmente tem um `type="static"` atributo no elemento MPD e pode conter vários períodos para diferentes segmentos de conteúdo.

Para exemplos de VOD DASH MPDs, consulte a MediaTailor documentação em. [Marcadores de anúncios DASH](dash-ad-markers.md)

## Principais diferenças na personalização MPDs
<a name="dash-manifest-key-differences"></a>

Quando MediaTailor personaliza o DASH MPDs, ele faz várias mudanças importantes:

Tratamento do período  
+ Novos períodos são criados para o conteúdo do anúncio
+ Os horários de início do período são ajustados para manter a continuidade do cronograma
+ EventStream elementos com marcadores SCTE-35 são processados e removidos

AdaptationSet e tratamento de representações  
+ AdaptationSets no anúncio Os períodos são criados para corresponder ao conteúdo AdaptationSets
+ As representações são criadas para diferentes níveis de qualidade do conteúdo do anúncio
+ SegmentTemplate os elementos são atualizados para apontar para o conteúdo do anúncio

Compreender essas mudanças pode ajudá-lo a solucionar problemas em seus MediaTailor fluxos de trabalho e garantir a configuração adequada do CDN e do player.

## Tópicos relacionados
<a name="dash-manifest-related-topics"></a>

Para obter mais informações sobre o DASH MPDs e MediaTailor, consulte os seguintes tópicos:
+ [Tipos de manifesto DASH](dash-manifest-types.md)- Explicação detalhada dos tipos de manifesto DASH
+ [Usando uma CDN para otimizar a personalização de MediaTailor anúncios e a entrega de conteúdo](integrating-cdn.md)- Informações sobre o uso de uma CDN com MediaTailor
+ [Como funciona a inserção de MediaTailor anúncios](what-is-flow.md)- Visão geral de como a inserção de MediaTailor anúncios funciona
+ Para obter informações abrangentes sobre a estrutura e a MediaPackage configuração do manifesto do DASH, consulte a seção Guia do MediaPackage usuário sobre a visão geral do DASH.

# Recurso de localização do DASH
<a name="dash-location-feature"></a>

Esta seção fornece informações sobre o recurso de local de DASH, habilitado por padrão em AWS Elemental MediaTailor. Leia esta seção se você criar regras de roteamento da rede de distribuição de conteúdo (CDN) para acessar MediaTailor manifestos. Também leia esta seção caso você use relatórios no lado do servidor com players que não ofereçam suporte a redirecionamentos HTTP recorrentes.

**O que é o recurso de local?**  
O recurso de local permite que players que não ofereçam suporte a redirecionamentos HTTP recorrentes forneçam um comportamento recorrente nas solicitações de atualização do manifesto. 

AWS Elemental MediaTailor usa inicialização sem sessão e exige um comportamento persistente de redirecionamento HTTP de seus jogadores. Com os relatórios do lado do servidor, quando o jogador solicita uma atualização do manifesto para MediaTailor, o serviço emite um redirecionamento 302 temporário, para direcionar o jogador a um endpoint para o manifesto personalizado. MediaTailor inclui um ID de sessão na resposta, como parâmetro de consulta. A intenção é para o player seguir o URL em toda a sessão, mas os players que não oferecem suporte a redirecionamentos HTTP recorrentes ignoram o redirecionamento e retornam ao URL original. Quando um player retorna ao URL original, para cada nova solicitação MediaTailor cria uma nova sessão em vez de permanecer com a sessão original. Isso pode corromper o manifesto. 

A especificação DASH fornece uma solução para esse problema no recurso de localização, que é ativado por padrão nas AWS Elemental MediaTailor configurações. Quando esse recurso está ativado, MediaTailor coloca o URL absoluto na `<Location>` tag do manifesto. Os players que não oferecem suporte a redirecionamentos HTTP recorrentes podem usar o URL fornecido em `<Location>` para solicitar atualizações no manifesto. 

**Preciso desabilitar o recurso de local na minha configuração?**  
O recurso de local substitui todas as regras de roteamento CDN configuradas para acessar manifestos do AWS Elemental MediaTailor e, assim, talvez seja necessário desabilitá-lo. O recurso de local não afeta o armazenamento em cache CDN de conteúdo ou segmentos de anúncios. 

Encontre a situação na lista a seguir para determinar se você precisa desabilitar o recurso de local para a configuração e como processar isso:
+ Caso você não tenha regras de roteamento CDN configuradas para acessar manifestos do AWS Elemental MediaTailor , deixe a configuração do local habilitada. 
+ Do contrário, use as seguintes regras:
  + Caso você não use relatórios no lado do servidor ou todos os players ofereçam suporte a redirecionamentos HTTP recorrentes, desabilite o recurso de local. Para obter informações sobre como fazer isso no console, consulte [Criando uma MediaTailor configuração de reprodução](configurations-create.md).
  + Caso contrário, entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/).

**Preciso usar o recurso de local?**  
Você precisa usar o recurso de localização para jogadores que não suportam redirecionamentos HTTP fixos. Use o URL fornecido na tag `<Location>` em todas as solicitações de atualização de manifesto. 

**Exemplo**  
Exemplo URLs e exemplo de `<Location>` tag.
+   
**Example Exemplo: URL da solicitação inicial**  

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd
  ```
+   
**Example Exemplo: resposta 302 redirecionada**  

  ```
  /v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6
  ```
+   
**Example Exemplo: tag de local em um manifesto**  

  ```
  <Location>https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6</Location>
  ```

# Protegendo as interações de AWS Elemental MediaTailor origem com o SigV4
<a name="origin-sigv4"></a>

O Signature Version 4 (SigV4) é um protocolo de assinatura usado para autenticar MediaTailor solicitações em origens suportadas via HTTPS. MediaTailor só suporta comunicação HTTPS e não permite conexões HTTP. Com a assinatura SigV4, MediaTailor inclui um cabeçalho de autorização assinado na solicitação de origem HTTPS para MediaTailor Channel Assembly, Amazon S3 AWS Elemental MediaPackage e versão 2. 

Você pode usar o SigV4 em sua origem para garantir que as solicitações de manifesto sejam atendidas somente se forem de MediaTailor e contiverem um cabeçalho de autorização assinado. Dessa forma, configurações de MediaTailor reprodução não autorizadas são impedidas de acessar seu conteúdo original. Se o cabeçalho de autorização assinado for válido, sua origem atenderá à solicitação. Se não for válido, a solicitação falhará.

As seções a seguir descrevem os requisitos para usar a assinatura MediaTailor SigV4 nas origens suportadas.

## MediaTailor Requisitos de montagem do canal
<a name="origin-sigv4-ca"></a>

Se você usa o SigV4 para proteger sua origem de montagem de MediaTailor canais, os seguintes requisitos devem ser atendidos MediaTailor para acessar o manifesto:
+ O URL base de origem em sua MediaTailor configuração deve ser um canal de montagem de canais no seguinte formato: `channel-assembly.mediatailor.region.amazonaws.com`
+ Sua origem deve estar configurada para usar HTTPS. MediaTailor só suporta comunicação HTTPS e não permite conexões HTTP. Se o HTTPS não estiver habilitado na origem, não MediaTailor assinará a solicitação.
+ Seu canal deve ter uma política de acesso de origem que inclua o seguinte:
  + Acesso principal MediaTailor para acessar seu canal. Conceda acesso a **mediatailor.amazonaws.com**.
  + **Mediatailor de permissões do IAM: GetManifest ** para ler todas as playlists multivariantes referenciadas pela configuração. MediaTailor 

  Para obter informações sobre como definir uma política no canal, consulte[Crie um canal usando o MediaTailor console](channel-assembly-creating-channels.md).

**Example política de acesso de origem para Channel Assembly, com escopo na conta MediaTailor de configuração**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "777788889999"}
    }
}
```

**Example política de acesso de origem para Channel Assembly, com escopo de acordo com a configuração de MediaTailor reprodução**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:777788889999:playbackConfiguration/test"}
    }
}
```

## Requisitos do Amazon S3
<a name="origin-sigv4-s3"></a>

Se você usa o SigV4 para proteger sua origem do Amazon S3, os seguintes requisitos devem ser atendidos MediaTailor para acessar o manifesto:
+ O URL base de origem em sua MediaTailor configuração deve ser um bucket do S3 no seguinte formato: `s3.region.amazonaws.com`
+ Sua origem deve estar configurada para usar HTTPS. MediaTailor só suporta comunicação HTTPS e não permite conexões HTTP. Se o HTTPS não estiver habilitado na origem, não MediaTailor assinará a solicitação.
+ Seu canal deve ter uma política de acesso de origem que inclua o seguinte:
  + Acesso principal MediaTailor para acessar seu bucket. Conceda acesso a **mediatailor.amazonaws.com**. 

    Para obter informações sobre como configurar o acesso no IAM, consulte [Gerenciamento de acesso](https://docs.aws.amazon.com/) no *Guia do usuário do AWS Identity and Access Management*. 
  + Permissões do IAM **s3: GetObject ** para ler todos os manifestos de nível superior referenciados pela configuração. MediaTailor 

 Para obter informações gerais sobre o SigV4 para o Amazon S3, consulte [o tópico Solicitações de autenticação (AWS Signature versão](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) 4) na referência da API do *Amazon S3*. 

**Example política de acesso de origem para o Amazon S3, com escopo definido para a conta MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "111122223333"}
    }
}
```

**Example política de acesso de origem para o Amazon S3, com escopo de acordo com a configuração de reprodução MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:111122223333:playbackConfiguration/test”}
    }
}
```

## MediaPackage requisitos
<a name="origin-sigv4-mp"></a>

Se você usa o SigV4 para proteger sua origem MediaPackage v2, os seguintes requisitos devem ser atendidos MediaTailor para acessar o manifesto:
+ O URL base de origem em sua MediaTailor configuração deve ser um endpoint MediaPackage v2 no seguinte formato: `mediapackagev2.region.amazonaws.com`
+ Sua origem deve estar configurada para usar HTTPS. MediaTailor só suporta comunicação HTTPS e não permite conexões HTTP. Se o HTTPS não estiver habilitado na origem, não MediaTailor assinará a solicitação.
+ Seu canal deve ter uma política de acesso de origem que inclua o seguinte:
  + Acesso principal para MediaTailor acessar seu endpoint. Conceda acesso a **mediatailor.amazonaws.com**. 
  + Permissões do IAM **mediapackagev2: GetObject ** para ler todas as playlists multivariantes referenciadas pela configuração. MediaTailor 

 *Para obter informações gerais sobre o SigV4 para MediaPackage v2, consulte o tópico [Solicitações de autenticação (AWS Signature versão 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) na referência da MediaPackage API v2.*

**Example política de acesso de origem para MediaPackage v2, com escopo definido para a conta MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "444455556666"}
    }
}
```

**Example política de acesso de origem para MediaPackage v2, com escopo de acordo com a configuração de reprodução MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:444455556666:playbackConfiguration/test”"}
    }
}
```

# Integração AWS Elemental MediaTailor com o Google Ad Manager
<a name="gam-integration"></a>

 MediaTailor Integre-se ao [Google Ad Manager](https://admanager.google.com/home/) (Ad Manager) para acesso programático a um mercado on-line orientado por leilões, onde as impressões de anúncios podem ser compradas e vendidas em tempo real. Você deve ter uma conta configurada com o Ad Manager e, em seguida, pode integrar-se ao Ad Manager das seguintes maneiras:
+ Uma integração do lado do servidor usando um certificado SSL. 
+ Uma integração de player do lado do cliente usando o SDK de bibliotecas de acesso programático (PAL). Essa integração é necessária se você quiser usar o tipo de transação de leilão aberto.

O suporte do Ad Manager para tipos de transação programática varia de acordo com o tipo de integração que você está usando. Para ver uma lista das opções disponíveis, consulte [Tipos de transação](https://support.google.com/admanager/answer/2805834?hl=en) ou entre em contato com a equipe da sua conta do Google. 

As seções a seguir descrevem essas integrações em detalhes.

**Topics**
+ [Integração do lado do servidor](gam-integration-ssl.md)
+ [Integração do lado do cliente](gam-integration-pal.md)

# AWS Elemental MediaTailor Integração do lado do servidor com o Google Ad Manager
<a name="gam-integration-ssl"></a>

As solicitações de anúncios do lado do servidor para o Google Ad Manager (Ad Manager) devem incluir o certificado SSL que o Ad Manager emitiu para MediaTailor autorizar transações programáticas. 

**Para fazer solicitações de anúncios do lado do servidor ao Ad Manager**

1. [Envie um ticket de AWS Support](https://console.aws.amazon.com/support/home#/) para solicitar que os certificados SSL sejam habilitados. Inclua as seguintes informações no ticket do Support:
   + AWS Região
   + AWS ID da conta
   + MediaTailor nome da configuração de reprodução

   Se você não ativar os certificados SSL, o Ad Manager responderá às solicitações de MediaTailor anúncios com códigos de erro HTTP 401 no tipo de evento do registro de interações do `ERROR_ADS_INVALID_RESPONSE` ADS.

1. Depois que os certificados SSL estiverem habilitados, atualize o URL e os parâmetros do seu ADS e pré-role o ADS na configuração de reprodução. Para atualizar ou criar uma configuração de reprodução, consulte[MediaTailor gerenciamento de configuração de reprodução](working-with-configurations.md).

   Para obter orientação oficial sobre os parâmetros de URL de solicitação de anúncios VAST para o Ad Manager, consulte o guia de implementação do Ad Manager no [lado do servidor](https://support.google.com/admanager/answer/10668760). A atualização inclui as seguintes alterações:
   + Altere o URL base de `pubads.g.doubleclick.net` para`serverside.doubleclick.net`.
   + Adicione o parâmetro `ssss=mediatailor`. Isso indica que MediaTailor é a fonte de costura do lado do servidor.
   + Remova o `IP` parâmetro. MediaTailor passa automaticamente o endereço IP do usuário final usando o `X-Forwarded-For` cabeçalho.
   + Remova o `ss_req=1` parâmetro.

   Para obter orientações atualizadas e completas sobre o VAST URL, consulte o [guia de implementação do lado do servidor](https://support.google.com/admanager/answer/10668760) ou entre em contato com a equipe da sua conta do Google. 

# AWS Elemental MediaTailor Integração do lado do cliente com o Google Ad Manager
<a name="gam-integration-pal"></a>

É necessária uma integração MediaTailor do lado do cliente para usar as bibliotecas de acesso programático (PAL) do Google Ad Manager. SDKs Essa integração é necessária se você quiser usar o tipo de transação de leilão aberto do Ad Manager. 

O PAL SDKs fornece informações sobre o conteúdo, o dispositivo e os dados do usuário para uma sessão de reprodução. Por meio do SDK PAL, você pode fornecer essas informações ao Google Ad Manager, que pode então fazer melhores determinações sobre quais anúncios segmentados exibir. SDKsestão disponíveis para Android HTML5, iOS e Cast. Para obter informações sobre como usar o PAL SDKs, consulte [SDK PAL do Google Ad Manager](https://developers.google.com/ad-manager/pal). 

**Para criar uma integração do lado do cliente com o Ad Manager**

1. Use o SDK PAL para gerar um nonce. 

   O nonce é uma string criptografada que o PAL gera para solicitações de stream. Cada solicitação deve ter um nome exclusivo. Para obter informações sobre como configurar um nonce, escolha seu SDK no SDK [PAL do Google Ad Manager](https://developers.google.com/ad-manager/pal).

1. Use o `givn` parâmetro em sua solicitação do ADS para transmitir o valor nonce. Para fazer isso, atualize seu URL do ADS para incluir`&givn=[player_params.givn]`. Para instruções, consulte [Habilitando o rastreamento do lado do cliente](ad-reporting-client-side.md#ad-reporting-client-side-enabling).

**Leitor Datazoom SDKs**  
MediaTailor fez parceria com a Datazoom para fornecer um player gratuito SDKs para facilitar as integrações, SDKs como as oferecidas no Ad Manager PAL. Para obter informações sobre o Datazoom e a MediaTailor parceria, consulte. [Reprodutor gratuito Datazoom SDKs](ad-reporting-client-side-ad-tracking-integrations.md#ad-reporting-client-side-ad-tracking-integrations-dz)

Para acessar o player Datazoom SDKs, use as informações de contato no site [Datazoom](https://www.datazoom.io/partner-aws) with. AWS

# Personalizando o comportamento de anúncios com a supressão de anúncios
<a name="ad-rules"></a>

Ao criar uma configuração em AWS Elemental MediaTailor, você pode especificar configurações opcionais de interrupção de anúncios que controlam o comportamento de intervalos de anúncios, incluindo a capacidade de configurar a supressão de anúncios. Isso permite que você personalize as experiências de pausa publicitária do seu conteúdo de vídeo para atender aos seus requisitos específicos.

**Restrições de compatibilidade**  
Você não pode usar a supressão de quebras publicitárias com o seguinte:
+  VOD e live-to-VOD fluxos de trabalho. Somente fluxos de trabalho ativos são suportados.
+ Métodos de inserção de anúncios guiados pelo servidor (SGAI). Os métodos guiados pelo servidor lidam com a tomada de decisões sobre anúncios de forma diferente e não exigem configuração de supressão.

**Topics**
+ [Configurando a supressão de quebras de anúncios](#ad-suppression)

## Configurando a supressão de quebras de anúncios
<a name="ad-suppression"></a>

Você pode configurar MediaTailor para ignorar a personalização de anúncios para conteúdo ao vivo. Isso é conhecido como supressão de *quebra de anúncio ou supressão* de *disponibilidade.* Este tópico mostra como e também explica como funciona a configuração da supressão de quebras de anúncios.

A supressão de quebras de anúncios pode ser usada nos seguintes casos de uso:
+ **Janela retroativa de manifesto grande** – se um visualizador iniciar a reprodução na borda em tempo real de um manifesto, mas a janela retroativa for grande, convém inserir apenas anúncios iniciados depois que o visualizador começou a assistir. Ou insira anúncios para uma parte da janela retroativa total no manifesto. Você pode configurar a supressão de anúncios para MediaTailor personalizar intervalos de anúncios em ou dentro de um intervalo de tempo especificado atrás da borda ativa.
+ **Junção de intervalo intermediário** – se o visualizador começar a assistir a uma transmissão de vídeo ao vivo no meio de um intervalo comercial, é provável que o usuário mude de canal e não assista ao anúncio. Com a supressão de anúncios, você pode pular a personalização do anúncio se o intervalo do anúncio tiver começado antes de o espectador entrar na transmissão.

### Configurando a supressão de anúncios
<a name="working-with-ad-suppression"></a>

Para usar a supressão de anúncios, você configura um **modo de supressão de disponibilidade, um valor de supressão** **de disponibilidade e uma política de preenchimento de supressão** **de disponibilidade das seguintes maneiras**: 
+ No MediaTailor console
+ Usando o AWS Command Line Interface (AWS CLI)
+ Usando a MediaTailor API ou como parâmetros na solicitação de sessão de reprodução do seu cliente

Para obter informações sobre configuração com parâmetros, consulte[Configurar parâmetros de supressão de anúncios — solicitação de sessão de reprodução](#configuring-ad-suppression-parameters-playback-session-request).

#### Parâmetros de configuração de supressão de anúncios
<a name="ad-suppression-configuration-parameters"></a>

Você pode optar por ativar ou desativar a supressão de anúncios. Se você ativar a supressão de anúncios, você especifica se essa supressão ocorre após a borda da reprodução ao vivo ou antes da borda da reprodução ao vivo de uma transmissão ao vivo. Em ambos os casos, você também especifica um horário, em relação à borda ao vivo, em que MediaTailor não personaliza os anúncios. Ao ativar a supressão de disponibilidade, você pode especificar uma política de supressão de disponibilidade que é MediaTailor usada para preenchimentos parciais de intervalos de anúncios quando uma sessão começa no meio do intervalo.

Veja a seguir os parâmetros de configuração de supressão de anúncios:
+ **Avail suppression mode (Modo de supressão de disponibilidade)** – define o modo de supressão de anúncios. Por padrão, a supressão de anúncios fica desativada. **Valores aceitos**:`OFF`,`BEHIND_LIVE_EDGE`, ou`AFTER_LIVE_EDGE`.
  + `OFF`R: Não há supressão de anúncios e MediaTailor personaliza todos os intervalos publicitários.
  + `BEHIND_LIVE_EDGE`: MediaTailor não personaliza os intervalos publicitários que começam antes da transmissão ao vivo, menos o valor de supressão do **Avail**. Isso afeta todo o intervalo publicitário, não apenas os anúncios individuais.
  + `AFTER_LIVE_EDGE`: MediaTailor não personaliza os intervalos publicitários que estão dentro da borda ativa, além do valor de **supressão do Avail**. Isso pode ser configurado para afetar intervalos publicitários inteiros ou permitir o preenchimento parcial dos anúncios.
+ **Avail suppression value (Valor de supressão de disponibilidade)** – um tempo relativo à borda ao vivo em um streaming ao vivo. **Accepted value (Valor aceito)**: um valor de tempo em `HH:MM:SS`.
+ **Política de preenchimento de supressão de disponibilidade** — Define a política que MediaTailor se aplica ao modo de supressão de **disponibilidade.** **Valores aceitos**: `PARTIAL_AVAIL`, `FULL_AVAIL_ONLY`.
  + `BEHIND_LIVE_EDGE`O modo sempre usa a política de `FULL_AVAIL_ONLY` supressão. 
  + `AFTER_LIVE_EDGE`O modo pode ser usado para invocar preenchimentos de intervalos `PARTIAL_AVAIL` publicitários quando uma sessão começa no meio do intervalo.

#### Exemplos de configurações de supressão de anúncios
<a name="ad-suppression-settings-examples"></a>

A forma como os [parâmetros de configuração da supressão de anúncios](#ad-suppression-configuration-parameters) interagem entre si permite especificar várias maneiras diferentes de lidar com a supressão de anúncios e aproveitar o preenchimento antes, durante ou depois da borda ao vivo da transmissão ao vivo. Esta seção fornece exemplos que mostram algumas dessas interações. Use esses exemplos para ajudá-lo a definir os parâmetros de configuração para sua situação específica.

Veja a seguir exemplos de configurações de supressão de anúncios:

**Example 1: Sem supressão de anúncios**  
Quando o **modo de supressão de disponibilidade** é`OFF`, não há supressão de anúncios e MediaTailor personaliza todos os intervalos publicitários.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo ou de um intervalo publicitário personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Dois intervalos publicitários ocorrem antes da borda ao vivo, e outro intervalo de anúncio está em andamento na borda ao vivo. Conforme mostrado na figura, quando o modo de supressão de disponibilidade está ativado`OFF`, MediaTailor personaliza todos os intervalos publicitários que ocorrem antes da exibição ao vivo na linha do tempo. MediaTailor também personaliza a pausa publicitária em andamento na borda ao vivo.  

![\[MediaTailor personalização de pausas publicitárias com o modo de supressão de disponibilidade definido como. OFF\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/no_ad_suppression.png)


**Example 2: supressão de `BEHIND_LIVE_EDGE` anúncios com valor sincronizado com o Live Edge**  
Quando o **modo de supressão de disponibilidade** está definido como `BEHIND_LIVE_EDGE` e o valor de **supressão de disponibilidade está definido como`00:00:00`, o valor** de supressão de disponibilidade está sincronizado com a borda ativa. MediaTailor não personaliza nenhum intervalo publicitário que comece antes ou antes da transmissão ao vivo.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo, de um intervalo publicitário personalizado ou de um intervalo publicitário não personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Outra linha pontilhada, representando o valor de supressão de disponibilidade definido como`00:00:00`, se sobrepõe à linha pontilhada da borda ativa. Dois intervalos publicitários ocorrem antes da borda ativa e outro após a borda ativa. Conforme mostrado na figura, quando o modo de supressão de disponibilidade está definido como e o valor de supressão de disponibilidade está definido para que `00:00:00` fique sincronizado com a borda ativa, MediaTailor não personaliza nenhum intervalo publicitário que ocorra antes da borda ativa na linha do tempo. `BEHIND_LIVE_EDGE` MediaTailor personaliza o intervalo publicitário que ocorre *após* a transmissão ao vivo.  

![\[MediaTailor personalização do anúncio com o modo de supressão de disponibilidade definido como BEHIND_LIVE_EDGE e o valor de supressão de disponibilidade definido como. 00:00:00\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad_supp_value_sync_live_edge.png)


**Example 3: supressão de `BEHIND_LIVE_EDGE` anúncios com valor por trás do Live Edge**  
Quando o **modo de supressão de disponibilidade** está definido como`BEHIND_LIVE_EDGE`, MediaTailor não personaliza nenhum intervalo publicitário antes ou durante esse horário. Neste exemplo, MediaTailor personaliza intervalos publicitários que começam até 45 minutos atrás da borda ao vivo. MediaTailor *não* personaliza intervalos publicitários que começam mais de 45 minutos atrás da borda ao vivo.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo, de um intervalo publicitário personalizado ou de um intervalo publicitário não personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Outra linha pontilhada, representando o valor de supressão de disponibilidade definido como`00:45:00`, ocorre 45 minutos antes na linha do tempo em relação à linha pontilhada da borda ativa. O período de 45 minutos entre as linhas pontilhadas representa o período de supressão de disponibilidade. Um anúncio publicitário está em andamento no início do período de supressão de disponibilidade. Dois outros intervalos publicitários ocorrem durante o período de supressão de disponibilidade. Conforme mostrado na figura, quando o modo de supressão de disponibilidade está definido como e o valor de supressão de disponibilidade está definido como `00:45:00` Behind the Live Edge, MediaTailor personaliza quaisquer intervalos publicitários que ocorram dentro do período de supressão de disponibilidade. `BEHIND_LIVE_EDGE` MediaTailor *não* personaliza a pausa publicitária em andamento no início do período de supressão de disponibilidade.  

![\[MediaTailor personalização do anúncio com o modo de supressão de disponibilidade definido como BEHIND_LIVE_EDGE e o valor de supressão de disponibilidade definido como. 00:45:00\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad_supp_value_offset_live_edge.png)


**Example 4: supressão de `AFTER_LIVE_EDGE` anúncios sem que ocorram intervalos de anúncios durante o período de supressão de disponibilidade**  
Quando o **modo de supressão de disponibilidade** está definido como `AFTER_LIVE_EDGE` e o **valor de supressão de disponibilidade** é maior que zero, MediaTailor não personaliza nenhum intervalo publicitário até que o tempo decorrido da sessão atinja esse valor.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo ou de um intervalo publicitário personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Outra linha pontilhada, representando o valor de supressão de disponibilidade definido como`00:30:00`, ocorre 30 minutos depois na linha do tempo em relação à linha pontilhada da borda ativa. Uma terceira linha pontilhada, representando a inicialização da sessão, ocorre mais cedo na linha do tempo em relação à linha pontilhada da borda ativa. O período de 30 minutos entre o horário limite ao vivo e o avail-suppression-value horário representa o período de supressão de disponibilidade. Um intervalo publicitário ocorre após o período de supressão de disponibilidade. *Conforme mostrado na figura, quando o modo de supressão de disponibilidade está definido como`AFTER_LIVE_EDGE`, o valor de supressão de disponibilidade é definido como `00:30:00` após a borda ativa, e a inicialização da sessão ocorre antes da borda ativa, MediaTailor personalizando quaisquer intervalos publicitários que ocorram após o período de supressão de disponibilidade.*  

![\[MediaTailor personalização do anúncio com o modo de supressão de disponibilidade definido comoAFTER_LIVE_EDGE, o valor de supressão de disponibilidade definido como e a inicialização da sessão 00:30:00 ocorrendo antes da borda ativa.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad_supp_after_no_ad_break.png)


**Example 5: supressão de `AFTER_LIVE_EDGE` anúncios com política de `PARTIAL_AVAIL` preenchimento e uma interrupção de anúncio em andamento no final do período de supressão de disponibilidade**  
Quando o **modo de supressão de disponibilidade** está definido como `AFTER_LIVE_EDGE` e o **valor de supressão de disponibilidade** é maior que zero, MediaTailor não personaliza nenhum intervalo publicitário até que o tempo decorrido da sessão atinja esse valor.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo, de um intervalo publicitário personalizado ou de um intervalo publicitário não personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Outra linha pontilhada, representando o valor de supressão de disponibilidade definido como`00:30:00`, ocorre 30 minutos depois na linha do tempo em relação à linha pontilhada da borda ativa. Uma terceira linha pontilhada, representando a inicialização da sessão, ocorre mais cedo na linha do tempo em relação à linha pontilhada da borda ativa. O período de 30 minutos entre o horário limite ao vivo e o avail-suppression-value horário representa o período de supressão de disponibilidade. Um anúncio publicitário está em andamento no final do período de supressão de disponibilidade. *Conforme mostrado na figura, quando o modo de supressão de disponibilidade está definido como`AFTER_LIVE_EDGE`, o valor de supressão de disponibilidade é definido como `00:30:00` após a borda ativa, a política de preenchimento de supressão de disponibilidade é definida como e a inicialização da sessão ocorre antes da borda ativa`PARTIAL_AVAIL`, MediaTailor personalizando quaisquer intervalos publicitários que ocorram após o período de supressão de disponibilidade.* *Para o intervalo de anúncio em andamento no final do período de supressão de disponibilidade, MediaTailor personaliza a parte desse intervalo de anúncio que ocorre *após* o período de supressão de disponibilidade, mas não personaliza a parte desse intervalo de anúncio que ocorre durante o período de supressão de disponibilidade.*  

![\[MediaTailor personalização do anúncio com o modo de supressão de disponibilidade definido comoAFTER_LIVE_EDGE, valor de supressão de disponibilidade definido como00:30:00, política de preenchimento de supressão de disponibilidade definida comoPARTIAL_AVAIL, inicialização da sessão ocorrendo antes da borda ativa e uma pausa publicitária em andamento no final do período de supressão de disponibilidade.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad_supp_after_ending_ad_break.png)


**Example 6: supressão de `AFTER_LIVE_EDGE` anúncios com política de `PARTIAL_AVAIL` preenchimento e uma interrupção de anúncio em andamento desde antes da inicialização da sessão até após o final do período de supressão de disponibilidade**  
Quando o **modo de supressão de disponibilidade** está definido como `AFTER_LIVE_EDGE` e o **valor de supressão de disponibilidade** é maior que zero, MediaTailor não personaliza nenhum intervalo publicitário até que o tempo decorrido da sessão atinja esse valor.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo, de um intervalo publicitário personalizado ou de um intervalo publicitário não personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Outra linha pontilhada, representando o valor de supressão de disponibilidade definido como`00:30:00`, ocorre 30 minutos depois na linha do tempo em relação à linha pontilhada da borda ativa. Uma terceira linha pontilhada, representando a inicialização da sessão, ocorre mais cedo na linha do tempo em relação à linha pontilhada da borda ativa. O período de 30 minutos entre o horário limite ao vivo e o avail-suppression-value horário representa o período de supressão de disponibilidade. Uma pausa publicitária está em andamento desde um momento antes da inicialização da sessão até um momento após o período de supressão de disponibilidade. *Conforme mostrado na figura, quando o modo de supressão de disponibilidade está definido como`AFTER_LIVE_EDGE`, o valor de supressão de disponibilidade é definido como `00:30:00` após a borda ativa, a política de preenchimento de supressão de disponibilidade é definida como e a inicialização da sessão ocorre antes da borda ativa`PARTIAL_AVAIL`, MediaTailor personalizando quaisquer intervalos publicitários que ocorram após o período de supressão de disponibilidade.* *Para o intervalo de anúncio em andamento antes, durante e depois do período de supressão de disponibilidade, MediaTailor personaliza a parte desse intervalo de anúncio que ocorre *após* o período de supressão de disponibilidade, mas não personaliza a parte desse intervalo de anúncio que ocorre *antes* ou durante o período de supressão de disponibilidade.*  

![\[MediaTailor personalização de anúncios com o modo de supressão de disponibilidade definido comoAFTER_LIVE_EDGE; valor de supressão de disponibilidade definido como00:30:00; política de preenchimento de supressão de disponibilidade definida como; inicialização da sessão ocorrendo antes da borda ativaPARTIAL_AVAIL; e uma pausa publicitária em andamento antes, durante e depois do período de supressão de disponibilidade.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad_supp_after_ad_break_throughout.png)


**Example 7: supressão de `AFTER_LIVE_EDGE` anúncios com uma interrupção de anúncio em andamento no início do período de supressão de disponibilidade**  
Quando o **modo de supressão de disponibilidade** está definido como `AFTER_LIVE_EDGE` e o **valor de supressão de disponibilidade** é maior que zero, MediaTailor não personaliza nenhum intervalo publicitário até que o tempo decorrido da sessão atinja esse valor.  
Na figura a seguir, vários blocos são organizados horizontalmente ao longo de uma linha do tempo que avança da esquerda para a direita. Cada bloco representa uma parte do tempo em que o conteúdo da transmissão ao vivo ou de um intervalo publicitário não personalizado é reproduzido. Uma linha pontilhada representa a borda atual da transmissão ao vivo. Outra linha pontilhada, representando o valor de supressão de disponibilidade definido como`00:30:00`, ocorre 30 minutos depois na linha do tempo em relação à linha pontilhada da borda ativa. Uma terceira linha pontilhada, representando a inicialização da sessão, ocorre mais cedo na linha do tempo em relação à linha pontilhada da borda ativa. O período de 30 minutos entre o horário limite ao vivo e o avail-suppression-value horário representa o período de supressão de disponibilidade. Um intervalo publicitário está em andamento desde um momento antes da inicialização da sessão até um momento dentro do período de supressão de disponibilidade. Conforme mostrado na figura, quando o modo de supressão de disponibilidade está definido como`AFTER_LIVE_EDGE`, o valor de supressão de disponibilidade é definido como `00:30:00` após a borda ativa, e a inicialização da sessão ocorre antes do horário de borda ao vivo, mas após o início do intervalo publicitário, MediaTailor não personaliza esse intervalo publicitário.  

![\[MediaTailor personalização do anúncio com o modo de supressão de disponibilidade definido comoAFTER_LIVE_EDGE; valor de supressão de disponibilidade definido como00:30:00; inicialização da sessão ocorrendo antes da borda ativa; e um anúncio em andamento antes, mas terminando durante o período de supressão de disponibilidade.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad_supp_after_beginning_ad_break.png)


#### Configurar parâmetros de supressão de anúncios — solicitação de sessão de reprodução
<a name="configuring-ad-suppression-parameters-playback-session-request"></a>

Você pode definir as configurações de supressão de anúncios por meio de parâmetros em sua solicitação *inicial* de sessão de reprodução do lado do servidor ou do lado do cliente para. MediaTailor Se você já definiu as configurações de supressão de anúncios por meio do MediaTailor console ou AWS Elemental MediaTailor da API, esses parâmetros substituem essas configurações.

Tanto o modo de supressão de disponibilidade quanto o valor de supressão de disponibilidade são necessários para que a supressão de anúncios funcione. Esses parâmetros não podem ser configurados de fontes diferentes. Por exemplo, você não pode configurar um parâmetro com o MediaTailor console e outro com um parâmetro de consulta.

MediaTailor suporta os seguintes parâmetros de supressão de anúncios.


| Name (Nome) | Description | Valores aceitos | 
| --- | --- | --- | 
| availSuppressionMode |  Define o modo de supressão de anúncios. Por padrão, a supressão de anúncios é`OFF`. Quando definido como`BEHIND_LIVE_EDGE`, MediaTailor não preenche intervalos publicitários dentro ou fora do `aws.availSuppressionValue` horário. Quando definido como`AFTER_LIVE_EDGE`, MediaTailor não preenche intervalos publicitários durante ou após o período de supressão de disponibilidade. O período de supressão do aproveitamento vai do limite de produção até o momento, além de um tempo adicional de `aws.availSuppressionValue` buffer.  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-rules.html)  | 
| availSuppressionValue | Um tempo relativo a borda ao vivo em um streaming ao vivo. | Um código de tempo codificado por URL UTF-8 em. HH:MM:SS Por exemplo, 1 hora e 30 minutos seria 01%3A30%3A00. | 
| availSuppressionFillPolicy | Define a política a ser aplicada ao modo de supressão de disponibilidade. BEHIND\$1LIVE\$1EDGEsempre usa a política de supressão de disponibilidade total. AFTER\$1LIVE\$1EDGEpode ser usado para invocar preenchimentos parciais de intervalos publicitários quando uma sessão começa no meio do intervalo. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-rules.html)  | 

##### Configuração do servidor
<a name="server-side-query"></a>

O parâmetro de consulta base é `aws.availSuppression`, que é seguido por pares de nome de parâmetro e valor opcionais. Para criar a consulta, anexe `aws.availSuppression=` ao final da solicitação da sessão de reprodução a MediaTailor, seguido pelos nomes e valores dos parâmetros. Para obter mais informações sobre como criar uma solicitação de sessão de reprodução no lado do servidor, consulte [MediaTailor Rastreamento e relatórios de anúncios do lado do servidor](ad-reporting-server-side.md).

**Exemplo**: HLS

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/index.m3u8?aws.availSuppressionMode=BEHIND_LIVE_EDGE&aws.availSuppressionValue=00%3A00%3A21
```

A sintaxe da consulta do lado do servidor está listada na tabela a seguir.


| Componente da string da consulta | Description | 
| --- | --- | 
| ? | Um caractere restrito que marca o início de uma consulta. | 
| aws. | A consulta base, que é seguida por parâmetros criados de pares de nome e valor. Para obter uma lista de todos os parâmetros disponíveis, consulte [Configurar parâmetros de supressão de anúncios — solicitação de sessão de reprodução](#configuring-ad-suppression-parameters-playback-session-request).  | 
| = | Associa o nome do parâmetro a um valor. Por exemplo, .aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE | 
| & | Concatena parâmetros de consulta. Por exemplo, aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE e aws.availSuppressionValue=00:30:00&aws.availSuppressionFillPolicy=FULL\$1AVAIL\$1ONLY>. | 

##### Configuração do cliente
<a name="client-side-configuration"></a>

Inclua `availSuppression` parâmetros na solicitação POST do seu cliente para MediaTailor. Para obter mais informações sobre como criar uma solicitação de sessão de reprodução no lado do cliente, consulte [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md).

**Exemplo**: HLS

```
POST parent.m3u8
    {
       "availSuppression": {
          "mode": "BEHIND_LIVE_EDGE",
          "value": "00:00:21",
          "fillPolicy": "FULL_AVAIL_ONLY"
       }
    }
```

# MediaTailor pára-choques e inserção
<a name="bumpers"></a>

Os bumpers são clipes de vídeo ou áudio curtos e não puláveis que são reproduzidos no início ou antes do final de um intervalo publicitário. AWS Elemental MediaTailor

 As seguintes condições se aplicam aos pára-choques: 
+ Os amortecedores devem ter 10 segundos ou menos.
+ Os amortecedores podem ser inseridos no início de um intervalo publicitário, diretamente antes do final de um intervalo publicitário, ou ambos.
+ Os bumpers são reproduzidos durante cada intervalo publicitário em uma sessão de reprodução, a menos que o pre-roll esteja configurado. Se a pré-rolagem estiver configurada, os bumpers não serão reproduzidos durante o intervalo da pré-rolagem. Em vez disso, eles jogarão em todas as pausas subsequentes após o pré-lançamento.
+ Para HLS, você deve incluir o `duration` atributo em cada tag SCTE-35`EXT-X-CUE-OUT`.
+ Os bumpers são transcodificados para corresponder ao conteúdo de origem.
+ Você não é cobrado pelos amortecedores.

## Configurando amortecedores
<a name="configuring-bumpers"></a>

Para usar bumpers, configure o bumper URLs com o MediaTailor console, a MediaTailor API ou o AWS Command Line Interface ()AWS CLI. Você pode configurar um para-choque inicial, um para-choque final ou ambos. Os bumpers são armazenados em um servidor, como o Amazon Simple Storage Service (Amazon S3). O para-choque URLs indica a localização do (s) ativo (s) do para-choque armazenado (s).

Exemplo de amortecedor URLs inicial e final:

URL inicial do bumper: `https://s3.amazonaws.com/startbumperad`

URL final do bumper: `https://s3.amazonaws.com/endbumperad`

### Exemplo
<a name="example"></a>

Veja a seguir um exemplo do comportamento de um anúncio de bumper.

**Example Exemplo 1: Para-choques inicial e final**  
Neste exemplo, os amortecedores inicial e final estão habilitados. O servidor de decisão de anúncios tem 50 segundos de anúncios personalizados para preencher um intervalo publicitário de 70 segundos. O bumper inicial de 10 segundos é reproduzido no início do intervalo publicitário, 50 segundos de exibição do anúncio e, em seguida, o bumper final de 10 segundos.

![\[Esta ilustração mostra um intervalo publicitário preenchido com um bumper inicial e final e anúncios.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/bumpers.png)


# MediaTailor pré-rolo e inserção
<a name="ad-behavior-preroll"></a>

**nota**  
Anúncios pré-lançados configuráveis só estão disponíveis para fluxos de trabalho ativos. Para obter detalhes sobre como a inserção de anúncios (incluindo o pré-lançamento) funciona para VOD, consulte. [Comportamento de costura de anúncios para VOD](ad-behavior.md#ad-behavior-vod)

AWS Elemental MediaTailor pode inserir anúncios no início de uma sessão de reprodução, antes do início do conteúdo principal. Esses são chamados anúncios *pre-roll*.

Para inserir anúncios pre-roll, preencha os campos **Live pre-roll ad decision server (Servidor de decisão de anúncio pre-roll)** e **Live pre-roll maximum allowed duration (Duração máxima permitida do pre-roll em tempo real)** nas definições **Additional (Adicionais)** em sua configuração, conforme descrito em [Configurações opcionais](configurations-create.md#configurations-create-addl). 

1. Quando MediaTailor recebe uma solicitação de reprodução, ele envia uma solicitação ao ADS para anúncios pré-lançados com base nos seguintes campos na configuração de MediaTailor reprodução:
   + O **servidor de decisão de anúncios pré-lançados ao vivo** é o URL do servidor de decisão de anúncios (ADS) que MediaTailor envia a solicitação de anúncios pré-lançados. 
   + A **duração máxima permitida para pré-lançamento ao vivo** é a duração máxima total dos anúncios pré-lançados. MediaTailor executa a seguinte ação com base na duração máxima permitida:
     + Se a duração total dos anúncios na resposta do ADS for *menor* que o valor que você deu na **duração máxima permitida do pré-lançamento ao vivo**, MediaTailor insere todos os anúncios. Quando o último anúncio for concluído, ele retornará MediaTailor imediatamente ao conteúdo subjacente.
     + Se a duração total dos anúncios na resposta do ADS for *maior* do que o valor que você deu na **duração máxima permitida para pré-lançamento ao vivo**, MediaTailor selecione um conjunto de anúncios que se encaixam na duração sem ultrapassar. MediaTailor insere esses anúncios sem recortes ou truncagens. MediaTailor retorna ao conteúdo subjacente quando o último anúncio selecionado é concluído.

1. Quando MediaTailor recebe a resposta pré-lançada do ADS, ele manipula o manifesto para adicionar links aos anúncios pré-lançados. MediaTailor calcula a hora de início do pré-lançamento e do intervalo da seguinte forma:
   + Para DASH, a fórmula é `(publishTime - availabilityStartTime) - max(suggestedPresentationDelay, minBufferTime)`.
   + Para HLS, a fórmula é `max(2*EXT-X-TARGETDURATION, EXT-X-START:TIMEOFFSET)`.

1. MediaTailor determina a ação a ser tomada em quaisquer intervalos publicitários que não estejam pré-lançados. Se o pré-lançamento se sobrepor a outro intervalo publicitário, MediaTailor não personaliza a parte sobreposta do intervalo publicitário. 

# MediaTailor ardósia e inserção
<a name="slate-management"></a>

**nota**  
O Slate está disponível apenas para fluxos ao vivo e live-to-VOD de trabalho.

Com AWS Elemental MediaTailor, você pode designar um anúncio tipo *slate para intervalos publicitários*. Um slate é um MP4 ativo padrão inserido em um stream, como uma imagem estática ou um vídeo em loop, que é reproduzido em vez do conteúdo ao vivo.

AWS Elemental MediaTailor mostra a lista durante os intervalos publicitários nas seguintes situações específicas:
+ Para preencher o tempo restante em uma pausa que não foi substituída por anúncios personalizados
+ Se o Ad Decision Server (ADS) responder com uma resposta VAST ou VMAP vazia
+ Para condições de erro, como tempo limite do ADS ou erro HTTP 500 do ADS
+ Se um anúncio não estiver disponível para inserção MediaTailor (por exemplo, quando a transcodificação não foi concluída)

Se você não configurar um slate, usará como MediaTailor padrão o fluxo de conteúdo subjacente quando uma das condições acima for atendida.

## Configurando a ardósia
<a name="configuring-the-slate"></a>

[Você designa a lousa no painel de **configuração adicional** no console. MediaTailor ](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) MediaTailor baixa a lista do URL que você especifica e a transcodifica para as mesmas representações do seu conteúdo. Você pode controlar o tempo máximo em que uma lista será exibida por meio da configuração opcional de **limite de personalização** no console. MediaTailor Para obter mais informações, consulte [Como funciona o limite de personalização](#personalization-threshold-scenarios).

O slate deve ser um MP4 ativo de alta qualidade que contenha áudio e vídeo. Configurar o slate é opcional para configurações não VPAID, mas obrigatório para fluxos de trabalho VPAID.

**nota**  
Caso o servidor que hospeda a barreira use HTTPS, o certificado deve ser de uma autoridade de certificação bem conhecida. Não pode ser um certificado autoassinado. Se você usa um certificado autoassinado, não é AWS Elemental MediaTailor possível recuperar e inserir a lista nos manifestos a partir da origem do conteúdo.

## Como funciona o limite de personalização
<a name="personalization-threshold-scenarios"></a>

O limite de personalização define a duração máxima do tempo de anúncio não preenchido (em segundos) permitido em um intervalo publicitário. Esse recurso se aplica especificamente à substituição de anúncios em streams ao vivo e VOD, em vez da inserção de anúncios, pois depende de um fluxo de conteúdo subjacente.

O comportamento varia com base em três cenários:

1. **Quando a personalização está desativada:**

   1. O Slate será inserido por toda a duração do tempo não preenchido

   1. Os amortecedores de início/fim serão inseridos quando configurados (para obter mais informações, consulte) [MediaTailor pára-choques e inserção](bumpers.md)

   1. Os anúncios serão inseridos normalmente

1. **Quando a personalização está ativada e o limite é menor que a duração do intervalo:**

   1. Se o tempo não preenchido exceder o limite de personalização:

      1. MediaTailor abandona a personalização do intervalo publicitário

      1. O conteúdo subjacente é mostrado

      1. Nenhum anúncio, ardósia ou pára-choques são inseridos

   1. Se o tempo não preenchido for menor que o limite de personalização:

      1. Anúncios e ardósia são inseridos

      1. Os amortecedores são inseridos se configurados

1. **Quando a personalização está ativada e o limite é maior que a duração do intervalo:**

   1. Os anúncios serão inseridos

   1. O Slate será inserido por qualquer tempo restante no intervalo do anúncio

   1. Os amortecedores serão inseridos se configurados

A tabela a seguir fornece comportamentos detalhados para cenários específicos nos protocolos HLS e DASH:


**Matriz de comportamento detalhada**  

| Cenário | Personalização desativada | Personalização ativada em menos do que a duração do intervalo | Personalização habilitada maior do que a duração do intervalo | 
| --- | --- | --- | --- | 
| Esvazie VAST ou VMAP | Ardósia inserida | Nenhuma ardósia inserida | Ardósia inserida | 
| Tempo limite do ADS | Ardósia inserida | Nenhuma ardósia inserida | Ardósia inserida | 
| O anúncio não está disponível (Vast 404) | Ardósia inserida | Nenhuma ardósia inserida | Ardósia inserida | 
| A duração dos anúncios é maior do que o intervalo do anúncio | Anúncios inseridos | Nenhum anúncio inserido | Anúncios inseridos | 
| Tempo de preenchimento que não é totalmente usado por um substituto de anúncio | Ardósia inserida | Se o limite de personalização for maior que o tempo não preenchido: Não ads/slates inserido, caso contrário: Anúncios e lousas inseridos | Ardósia inserida | 
| Pré-rolo com VAST vazio | Ardósia inserida, sem pré-rolo inserido | Nenhuma lousa inserida, nenhum pré-rolo inserido | Ardósia inserida, sem pré-rolo inserido | 
| Pré-lançamento com tempo limite do ADS | Ardósia inserida, sem pré-rolo inserido | Nenhuma lousa inserida, nenhum pré-rolo inserido | Ardósia inserida, sem pré-rolo inserido | 
| Faça a pré-inscrição quando o anúncio não estiver disponível (Vast 404) | Ardósia inserida, sem pré-rolo inserido | Nenhuma lousa inserida, nenhum pré-rolo inserido | Ardósia inserida, sem pré-rolo inserido | 
| Pára-choques com VAST vazio | Ardósia inserida, pára-choque inserido | Sem ardósias inseridas, sem amortecedores inseridos | Ardósia inserida, pára-choque inserido | 
| Pára-choques com tempo limite de ADS | Ardósia inserida, pára-choque inserido | Sem ardósias inseridas, sem amortecedores inseridos | Ardósia inserida, pára-choque inserido | 
| Amortece quando o anúncio não está disponível (Vast 404) | Ardósia inserida, pára-choque inserido | Sem ardósias inseridas, sem amortecedores inseridos | Ardósia inserida, pára-choque inserido | 
| Amortecedores para preencher um tempo que não é totalmente usado pela substituição de anúncios | Ardósia inserida, amortecedor inserido e inserido | Se o limite de personalização for maior que o tempo não preenchido: Não inserido bumpers/ads/slates inserted, else: No bumpers/ads/slates | Ardósia inserida, amortecedor inserido e inserido | 

**Considerações importantes**  
Lembre-se do seguinte ao trabalhar com o slate e o limite de personalização.
+ Esse comportamento é consistente nos protocolos HLS e DASH.
+ O recurso de limite de personalização só se aplica quando o slate é configurado
+ Quando o slate estiver configurado e o limite de personalização não estiver configurado, o slate será reproduzido durante todo o período de disponibilidade do Origin ou pelo tempo restante após o preenchimento dos anúncios
+ Para anúncios VPAID, MediaTailor insere uma lista com a duração do anúncio VPAID para manter espaço para os anúncios que o player de vídeo inserirá

## Configuração do Slate e VPAID
<a name="vpaid-requirements"></a>

**Importante**  
A configuração do Slate é obrigatória ao usar anúncios VPAID. MediaTailor insere o slate para manter espaço para anúncios VPAID que o player de vídeo inserirá. A duração da lista pode ser um pouco maior do que a duração do anúncio VPAID para acomodar a interatividade do usuário.

O player de vídeo então manipula o anúncio VPAID com base nos metadados de relatórios do lado do cliente que MediaTailor retornam, conforme descrito em. [Requisitos do VPAID](vast.md#vpaid) Para obter informações sobre relatórios no lado do cliente, consulte [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md).

# Pré-busca de anúncios
<a name="prefetching-ads"></a>

Use a pré-busca de AWS Elemental MediaTailor anúncios para transmissões ao vivo para ajudar a reduzir o pico de carga nos servidores de decisão de anúncios (ADS) e diminuir a latência de entrega do manifesto no início de cada intervalo de anúncio. Quando você define um cronograma de busca prévia, MediaTailor segue o cronograma para recuperar anúncios do ADS e prepará-los para a inserção de anúncios antes que sejam necessários para um intervalo publicitário. Durante as transmissões ao vivo, a busca prévia pode ajudar a reduzir as taxas de preenchimento de anúncios e a perda de oportunidades de monetização devido a solicitações de anúncios, tempos limite de transcodificação ou outros atrasos na rede. 

**nota**  
A busca prévia de anúncios não funciona com métodos de inserção de anúncios guiados pelo servidor (SGAI), incluindo os tradicionais intersticiais guiados pelo servidor e HLS. Os métodos SGAI não exigem busca prévia porque os jogadores buscam apenas os anúncios que vão jogar, e os manifestos podem ser veiculados CDNs sem MediaTailor ver solicitações de sessão individuais.

Para configurar a pré-busca de anúncios, você cria uma ou mais *agendas de pré-busca* na sua configuração de reprodução. Um cronograma de pré-busca MediaTailor informa como e quando recuperar e preparar anúncios para um próximo intervalo publicitário. 
+ Se um evento tiver anúncios disponíveis em um cronograma previsível, use um *único cronograma de pré-busca*. Cada agenda de pré-busca define um único conjunto de anúncios MediaTailor para colocar em um único anúncio disponível. Para pré-buscar anúncios para vários anúncios disponíveis ao usar agendas de pré-busca únicas, você deve criar várias agendas de pré-busca (até 24 horas antes da disponibilidade do anúncio) que se correlacionem com cada disponibilidade do anúncio. 
+ Se um evento tiver anúncios disponíveis que não estejam em um cronograma previsível, use um cronograma de *pré-busca recorrente*. Uma agenda de pré-busca recorrente cria automaticamente uma agenda e pré-busca anúncios antes de cada intervalo publicitário em um evento. A programação recorrente de pré-busca recupera anúncios para cada anúncio disponível em um período de tempo definido (até 24 horas antes do término do evento). Você não precisa criar um cronograma para cada anúncio disponível, mas perde parte do controle de tempo que a pré-busca única oferece.

Os tópicos a seguir descrevem mais sobre a busca prévia de anúncios.

**Topics**
+ [Como funciona a pré-busca](understanding-prefetching.md)
+ [Criação de agendas de pré-busca](creating-prefetch-schedules.md)
+ [Modelagem de tráfego baseada em TPS](tps-traffic-shaping.md)
+ [Excluindo agendas de pré-busca](deleting-prefetch-schedules.md)

# Como funciona a pré-busca
<a name="understanding-prefetching"></a>

Quando seu cliente faz uma solicitação manifesta para MediaTailor, o serviço avalia todos os agendamentos de pré-busca associados à configuração de reprodução. Se MediaTailor não encontrar um cronograma de pré-busca correspondente, o serviço reverte para a inserção normal de anúncios e não faz a pré-busca de anúncios.

Se MediaTailor encontrar um cronograma de pré-busca correspondente, o serviço avalia o cronograma com base em dois componentes: recuperação e consumo. A configuração de cada componente varia entre agendamentos de pré-busca únicos e agendamentos de pré-busca recorrentes, conforme descrito nas seções a seguir.

## Fluxo único de agendamento de pré-busca
<a name="understanding-prefetching-single"></a>

**Recuperação**  
Isso define a *janela de recuperação*, que é o intervalo de tempo em que MediaTailor pré-busca anúncios do ADS. Certifique-se de programar essa janela para um horário que seja antes do intervalo publicitário. A seguir, é apresentada uma visão geral de como MediaTailor processa um único cronograma de pré-busca.  
Para ver as etapas para criar uma única agenda de pré-busca no console, consulte. [Criação de agendas de pré-busca](creating-prefetch-schedules.md) Para obter instruções sobre a API, consulte [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)a *Referência AWS Elemental MediaTailor da API*.  
Durante a *janela de recuperação* especificada, MediaTailor envia solicitações ao ADS para recuperar e preparar anúncios para inserção posterior nas sessões de reprodução.  
+ MediaTailor opcionalmente, usa modelagem de tráfego para limitar o número de solicitações ao ADS ao mesmo tempo. Você pode escolher entre duas abordagens:

  *Modelagem de tráfego com janela de tempo* - MediaTailor distribui as solicitações pelo número especificado de segundos em vez de enviar solicitações para todas as sessões ao mesmo tempo. Essa distribuição dispersa de tráfego ajuda a evitar que o ADS fique sobrecarregado, resultando em tempos limite e baixas taxas de preenchimento de anúncios.

  *Modelagem de tráfego baseada em TPS* - MediaTailor limita as solicitações com base em transações por segundo (TPS) e usuários simultâneos. Essa abordagem fornece uma configuração mais intuitiva com base nos limites de capacidade do ADS. Para obter mais informações, consulte [Modelagem de tráfego baseada em TPS](tps-traffic-shaping.md).
+ Se você configurar *variáveis dinâmicas*, MediaTailor inclua essas variáveis nas solicitações ao ADS. MediaTailor usa essas variáveis para combinar e aproveita para pré-buscar programações durante a janela de consumo. Consulte a seção *Consumo* a seguir para obter mais informações.

**Example**  
Um evento ao vivo dura das 7h45 às 10h, com um intervalo publicitário às 8h15. Você configura MediaTailor para recuperar anúncios das 7h45 às 8h, com uma janela de modelagem de tráfego de 60 segundos. Com 500.000 usuários simultâneos, MediaTailor distribui as solicitações do ADS para atingir uma taxa média de aproximadamente 8.333 transações por segundo por 60 segundos (500.000 usuários/60 segundos = 8.333 solicitações por segundo), em vez de enviar todas as solicitações simultaneamente.   
A configuração de recuperação inclui a chave `scte.event` e o valor `1234` da variável dinâmica. MediaTailor inclui essa variável nas solicitações para o ADS, que então pode ser usada para direcionar anunciantes específicos para a ID de evento 1234. 

**Consumo**  
Quando MediaTailor encontra os marcadores de quebra de anúncio SCTE-35 durante a janela de consumo, ele coloca os anúncios pré-buscados em um intervalo publicitário.  
+ Se você não definiu critérios de correspondência de disponibilidade, MediaTailor insere anúncios na primeira pausa na janela de consumo.
+ Se você definiu uma *chave de variável dinâmica* para *aproveitar* *os *critérios* de correspondência*, MediaTailor avalia esses critérios em relação às variáveis dinâmicas definidas na janela de recuperação. Um intervalo publicitário é elegível para inserção de anúncios pré-buscados somente se os critérios de correspondência de disponibilidade forem atendidos. MediaTailor insere anúncios no primeiro intervalo que atendam aos critérios.

  Para obter uma lista dos critérios de correspondência disponível compatíveis, consulte a coluna *Disponível para pré-busca de anúncios* na tabela em. [MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md)

**Example contínuo**  
Você define a hora de início do consumo como 8h15 e a hora de término como 8h17. Você inclui `scte.event_id` a chave nos critérios de correspondência disponíveis.   
Para cada intervalo publicitário que MediaTailor acontece das 8h15 às 8h17, ele avalia o ID do SCTE evento para cada intervalo publicitário. Em cada sessão de reprodução, MediaTailor insere os anúncios pré-buscados no primeiro intervalo publicitário que tem uma ID de evento de 1234 (conforme definido nas variáveis dinâmicas de recuperação). Para intervalos publicitários que não contêm o ID de evento correto, MediaTailor realiza a inserção de anúncios padrão. 

## Fluxo recorrente do cronograma de pré-busca
<a name="understanding-prefetching-recurring"></a>

**Recuperação**  
Isso define a *janela de recuperação recorrente*, que é o intervalo de tempo em que MediaTailor pré-busca e insere anúncios para um evento ao vivo (até 24 horas). A seguir, é apresentada uma visão geral de como MediaTailor processa agendamentos de pré-busca recorrentes.  
Para ver as etapas para criar uma agenda de pré-busca recorrente no console, consulte. [Criação de agendas de pré-busca](creating-prefetch-schedules.md) Para obter instruções sobre a API, consulte [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)a *Referência AWS Elemental MediaTailor da API*.  
Durante a janela de pré-busca recorrente especificada, MediaTailor recupera e insere anúncios de um evento ao vivo de até 24 horas. Depois de cada intervalo publicitário na janela, recupera MediaTailor automaticamente os anúncios para o próximo intervalo publicitário.   
+ Se você definir o *atraso após o término da disponibilidade*, MediaTailor aguarda o tempo especificado antes de recuperar o próximo conjunto de anúncios para o próximo intervalo publicitário.
+ MediaTailor opcionalmente, usa modelagem de tráfego para limitar o número de solicitações ao ADS ao mesmo tempo. Você pode escolher entre duas abordagens:

  *Modelagem de tráfego com janela de tempo* - MediaTailor distribui as solicitações pelo número especificado de segundos em vez de enviar solicitações para todas as sessões ao mesmo tempo. Essa distribuição dispersa de tráfego ajuda a evitar que o ADS fique sobrecarregado, resultando em tempos limite e baixas taxas de preenchimento de anúncios.

  *Modelagem de tráfego baseada em TPS* - MediaTailor limita as solicitações com base em transações por segundo (TPS) e usuários simultâneos. Essa abordagem fornece uma configuração mais intuitiva com base nos limites de capacidade do ADS. Para obter mais informações, consulte [Modelagem de tráfego baseada em TPS](tps-traffic-shaping.md).
+ Se você configurar *variáveis dinâmicas*, MediaTailor inclua essas variáveis nas solicitações ao ADS. MediaTailor usa essas variáveis para combinar e aproveita para pré-buscar programações durante a janela de consumo. Consulte a seção *Consumo* a seguir para obter mais informações.

**Example**  
Um evento ao vivo dura das 19h às 20h45, com quatro intervalos publicitários durante esse período. Os intervalos publicitários não estão em um cronograma previsível. Você configura a pré-busca recorrente das 19h às 20h45, com um atraso de 10 minutos e uma janela de modelagem de tráfego de 60 segundos. Depois de cada disponibilidade, MediaTailor recupera os anúncios para o próximo intervalo publicitário. Dez minutos após o término da disponibilidade, MediaTailor começa a enviar solicitações de recuperação para o ADS. Com uma janela de modelagem de tráfego de 60 segundos e 500.000 usuários simultâneos, MediaTailor distribui as solicitações do ADS para atingir uma taxa média de aproximadamente 8.333 transações por segundo durante 60 segundos (500.000 usuários/60 segundos = 8.333 solicitações por segundo), em vez de enviar todas as solicitações simultaneamente.   
A configuração de recuperação inclui a chave `scte.event` e o valor `1234` da variável dinâmica. MediaTailor inclui essa variável nas solicitações para o ADS, que então pode ser usada para direcionar anunciantes específicos para a ID de evento 1234.

**Consumo**  
Quando MediaTailor encontra os marcadores de quebra de anúncio SCTE-35, ele coloca os anúncios pré-buscados em um intervalo de anúncio.  
+ Se você definir a *expiração do anúncio recuperado*, os anúncios pré-buscados estarão disponíveis para inserção até a expiração especificada.
+ Se você não definiu critérios de correspondência de disponibilidade, MediaTailor insere anúncios na primeira pausa na janela de consumo.
+ Se você definiu uma *chave de variável dinâmica* para *aproveitar* *os *critérios* de correspondência*, MediaTailor avalia esses critérios em relação às variáveis dinâmicas definidas na janela de recuperação. Um intervalo publicitário é elegível para inserção de anúncios pré-buscados somente se os critérios de correspondência de disponibilidade forem atendidos. MediaTailor insere anúncios no primeiro intervalo que atendam aos critérios.

  Para obter uma lista dos critérios de correspondência disponível compatíveis, consulte a coluna *Disponível para pré-busca de anúncios* na tabela em. [MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md)

**Example contínuo**  
No consumo, você inclui `scte.event_id` a chave nos critérios de correspondência disponíveis.   
Para cada intervalo publicitário encontrado MediaTailor , ele avalia o ID do SCTE evento para cada intervalo publicitário. Em cada sessão de reprodução, MediaTailor insere os anúncios pré-buscados em cada intervalo de anúncio que tem uma ID de evento de 1234 (conforme definido nas variáveis dinâmicas de recuperação). Para intervalos publicitários que não contêm o ID de evento correto, MediaTailor realiza a inserção de anúncios padrão.   
Você define a expiração do anúncio em 2.700 segundos para que os anúncios recuperados fiquem disponíveis para inserção por 45 minutos.
O gráfico a seguir ilustra o exemplo, com os pequenos quadrados representando intervalos publicitários. As configurações recorrentes do cronograma de pré-busca são ilustradas ao longo da linha do tempo do evento.  

![\[Ilustração gráfica de um evento ao vivo, incluindo configurações recorrentes do cronograma de pré-busca.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/recurring_prefetch_timeline.png)


## Entendendo os custos de pré-busca
<a name="billing"></a>

Não há custos para fazer solicitações de recuperação de anúncios. No entanto, para a recuperação de anúncios pré-buscados, você será cobrado de acordo com a taxa de transcodificação padrão dos anúncios pré-buscados que transcodificam. MediaTailor Para o consumo de anúncios pré-buscados, você será cobrado pela taxa padrão pela inserção de anúncios para os anúncios pré-buscados colocados em intervalos publicitários. MediaTailor [Para obter informações sobre os custos de transcodificação e inserção de anúncios, consulte Preços.AWS Elemental MediaTailor](https://aws.amazon.com/mediatailor/pricing/)

# Criação de agendas de pré-busca
<a name="creating-prefetch-schedules"></a>

O procedimento a seguir explica como criar uma agenda de pré-busca usando o MediaTailor console. *Para obter informações sobre como criar e gerenciar agendamentos de pré-busca programaticamente usando a MediaTailor API, consulte [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)a Referência da API.AWS Elemental MediaTailor *

**nota**  
Ao configurar agendamentos de pré-busca MediaTailor, é importante entender como os diferentes tipos de variáveis são tratados.  

**Aproveite os critérios de correspondência**  
Se você quiser usar os critérios de correspondência de disponibilidade em uma programação, primeiro configure o modelo de URL do ADS da configuração de reprodução com [variáveis de sessão dinâmicas](variables-session.md), caso contrário, os critérios de correspondência de disponibilidade não terão efeito. Para obter informações sobre como trabalhar com variáveis dinâmicas de sessão, consulte [Etapa 3: Configurar o URL de solicitação do ADS e os parâmetros de consulta](getting-started-ad-insertion.md#getting-started-configure-request) o tópico Introdução à inserção de MediaTailor anúncios.

**Variáveis do jogador em agendas de pré-busca**  
Ao criar um cronograma de pré-busca, não defina as variáveis do player como variáveis dinâmicas na sua configuração de pré-busca. Em vez disso, passe as variáveis do player como faria normalmente no início da sessão. MediaTailor incluirá automaticamente essas variáveis em solicitações de anúncios pré-buscadas se as variáveis forem mapeadas na URL do modelo do ADS.

**Para criar uma nova agenda de pré-busca usando o console**

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

1. No painel de navegação, escolha **Configurações**. Selecione a configuração de reprodução para a qual você deseja criar uma agenda de pré-busca.

1. Na guia Programações de **pré-busca, escolha **Adicionar** agenda** de pré-busca.

1. No painel de **detalhes do cronograma do Prefetch**, faça o seguinte:
   + Em **Nome**, insira um identificador para sua agenda de pré-busca, como. **my-prefetch-schedule**
   + Em **Stream ID**, opcionalmente, insira um ID exclusivo. Se sua origem contiver vários streams de reprodução, você poderá usar esse ID para MediaTailor instruir a colocar anúncios em um stream específico. Por exemplo, se sua configuração de reprodução tiver um stream de esportes e um stream de um programa de TV, você poderá usar o ID do stream para criar agendas de pré-busca para inserir anúncios segmentados para o stream de esportes. Você passa o valor do ID do stream para a MediaTailor inicialização da sessão ou solicitação de manifesto do seu cliente. Para obter mais informações, consulte o exemplo a seguir.
     + Para *rastreamento do lado do servidor*, inclua o parâmetro e o valor da `?aws.streamId` consulta na `GET HTTP` solicitação do seu cliente ao seu endpoint. MediaTailor Para obter informações gerais sobre o rastreamento do lado do servidor, consulte. [MediaTailor Rastreamento e relatórios de anúncios do lado do servidor](ad-reporting-server-side.md) Uma solicitação de manifesto para um endpoint HLS que inclui um ID de stream tem a seguinte aparência, onde `myStreamId` está o nome do seu ID de stream:

       ```
       GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.streamId=myStreamId
       ```
     + Para *rastreamento do lado do cliente*, inclua a `streamId` chave e o valor no corpo da solicitação de inicialização da `POST HTTP` sessão do seu cliente até o endpoint. **MediaTailor/v1/session** Para obter informações gerais sobre o rastreamento do lado do cliente, consulte. [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md) Uma solicitação de inicialização de sessão que inclui um ID de stream tem a seguinte aparência, onde `myStreamId` está o nome do seu ID de stream:

       ```
       POST <mediatailorURL>/v1/session/<hashed-account-id>/<origin-id>/<asset-id>
       {
           'streamId': 'myStreamId',
           'reportingMode': 'client'
       }
       ```

1. Para o **tipo de busca prévia**, faça sua seleção e escolha a seção correspondente para obter ajuda com campos adicionais:
   + Escolha **Único** se você estiver criando um cronograma de pré-busca para um intervalo publicitário em um evento.
   + Escolha **Recorrente** se você estiver criando uma programação que pré-busca anúncios automaticamente antes de cada intervalo publicitário em um evento. 

## Cronograma único de pré-busca
<a name="single-prefetch"></a>

Para criar uma programação que pré-busque anúncios antes que um anúncio seja disponibilizado em um evento.

1. No painel **Recuperação**, especifique as configurações de recuperação que você deseja usar. Essas configurações determinam quando MediaTailor pré-busca anúncios do ADS. Eles também determinam quais variáveis dinâmicas de sessão devem ser incluídas na solicitação ao ADS, se houver.
   + Em **Hora de início**, insira a hora em que MediaTailor você pode iniciar as recuperações prévias para esse intervalo publicitário. MediaTailor tentará pré-buscar anúncios para solicitações manifestas feitas por seu cliente em ou após esse período. O valor padrão é o horário atual. Se você não especificar um valor, o serviço iniciará a recuperação da pré-busca assim que possível.
   + Em **Hora de término**, insira a hora em que você MediaTailor deseja parar de pré-buscar anúncios para esse intervalo publicitário. MediaTailor tentará pré-buscar anúncios para solicitações de manifesto que ocorrerem nesse momento ou antes dele. A janela de recuperação pode se sobrepor à janela de consumo.
   + Opcionalmente, configure a modelagem de tráfego para limitar o número de solicitações ao ADS ao mesmo tempo. Escolha uma das seguintes abordagens:

     *Abordagem de janela de tempo*: para a **duração da janela de modelagem de tráfego**, insira o número de segundos que MediaTailor devem distribuir as solicitações ao ADS. Para obter mais informações, consulte Explicação da [recuperação do cronograma de pré-busca única](understanding-prefetching.md#avail-matching-criteria-retr).

     *Abordagem baseada em TPS*: configure usuários **simultâneos de **pico de TPS** e pico para limitar as solicitações com base nas transações por segundo e nos usuários simultâneos**. Para obter mais informações, consulte [Modelagem de tráfego baseada em TPS](tps-traffic-shaping.md).
   + Na seção [**Variáveis dinâmicas**](variables.md), insira até 100 variáveis de sessão dinâmica. MediaTailor usa essas variáveis para substituição em solicitações de pré-busca enviadas ao ADS. Se você não inserir nenhuma variável dinâmica de sessão, MediaTailor faça o possível para interpolar os valores das variáveis dinâmicas contidas em seu URL do [ADS](configurations-create.md#configurations-create-main).
     + Selecione **Adicionar variável dinâmica**. 
     + Em **Chave**, insira uma chave variável de sessão dinâmica, como`scte.event_id`. Você pode usar qualquer variável dinâmica que MediaTailor ofereça suporte. Para obter informações sobre variáveis dinâmicas de sessão, consulte[MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md).
     + Em **Valor**, insira um valor de variável dinâmica, como*my-event*.
     + Para adicionar outra variável dinâmica, escolha Selecionar **Adicionar variável dinâmica**. 

1. No painel **Consumo**, especifique as configurações que você deseja usar para a janela de consumo. Essas configurações determinam quando MediaTailor os anúncios são colocados no intervalo publicitário. Eles também determinam qualquer critério de correspondência disponível que você queira usar.
   + Em **Hora de início**, insira a hora em que você MediaTailor deseja começar a colocar anúncios pré-buscados no intervalo publicitário. O valor padrão é a hora atual. Se você não especificar um horário, o serviço iniciará o consumo da pré-busca assim que possível.
   + Em **Horário de término**, insira um horário em que você MediaTailor deseja parar de colocar os anúncios pré-buscados no intervalo publicitário. MediaTailor tentará pré-buscar anúncios para as solicitações manifestas de seu cliente que ocorram nesse momento ou antes dele. A hora de término deve ser posterior à hora de início e em menos de um dia a partir de agora. A janela de consumo pode se sobrepor à janela de recuperação.
   + Na seção [**Critérios de correspondência de disponibilidade**](variables.md), selecione **Adicionar critérios de disponibilidade** e adicione quantos e cinco critérios de correspondência de disponibilidade à sua agenda. Em seguida, em **Chave de variável dinâmica**, adicione uma chave de variável dinâmica, como`scte.event_id`. MediaTailor colocará os anúncios pré-buscados no intervalo publicitário *somente* se atenderem aos critérios definidos pelos valores das variáveis dinâmicas para MediaTailor as quais seu cliente passa ou que MediaTailor deduzem de informações como dados da sessão. Se um intervalo publicitário não atender aos critérios de correspondência especificados, MediaTailor ignora a busca prévia desse intervalo. Para obter informações, consulte a explicação do [consumo do cronograma de pré-busca única](understanding-prefetching.md#avail-matching-criteria).

1. Selecione **Adicionar critérios de disponibilidade.**

Os agendamentos de pré-busca expiram automaticamente após o término da janela de consumo. Para fins de diagnóstico, eles permanecem visíveis por pelo menos 7 dias, após os quais os excluem MediaTailor automaticamente. Como alternativa, você pode excluir manualmente uma agenda de pré-busca a qualquer momento. Para obter informações sobre como excluir manualmente uma agenda de pré-busca, consulte a seção a seguir[Excluindo agendas de pré-busca](deleting-prefetch-schedules.md).

### Determinar com que frequência seu cliente deve chamar a CreatePrefetchSchedule API
<a name="how-often"></a>

Seu cliente pode chamar programaticamente a [CreatePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreatePrefetchSchedule.html)API uma vez por dia para configurar a recuperação e o consumo se você souber exatamente quando ocorrerão os intervalos publicitários. Ou seu cliente pode chamar a API várias vezes ao longo do dia para definir a recuperação e o consumo. Ao escolher a frequência de chamadas da API, leve em consideração o [número máximo de agendas de pré-busca ativas](quotas.md#prefetch-schedules-limit) e a probabilidade de sua agenda de intervalos publicitários mudar depois de criar suas agendas de pré-busca. Se for provável que o cronograma de intervalos publicitários mude depois que você criar seus agendamentos de pré-busca, convém chamar a API com mais frequência.

## Cronograma de pré-busca recorrente
<a name="recurring-prefetch"></a>

Para criar uma programação que pré-busque anúncios antes de cada anúncio ser disponibilizado em um evento.

1. No painel **Recuperação recorrente**, especifique as configurações de recuperação que você deseja usar. Essas configurações determinam quando MediaTailor pré-busca anúncios do ADS. Eles também determinam quais variáveis dinâmicas de sessão devem ser incluídas na solicitação ao ADS, se houver.
   + Em **Janela de pré-busca recorrente**, insira a hora em que MediaTailor você pode iniciar as recuperações de pré-busca para esse intervalo publicitário. MediaTailor tentará pré-buscar anúncios para solicitações manifestas feitas por seu cliente em ou após esse período. O valor padrão é o horário atual. Se você não especificar um valor, o serviço iniciará a recuperação da pré-busca assim que possível.
   + Em **Atraso após o término** da disponibilidade, insira o número de segundos que MediaTailor devem esperar após o término de uma disponibilidade antes de pré-buscar anúncios para a próxima disponibilidade. Se você não especificar um valor, o MediaTailor padrão é sem atraso. 
   + Opcionalmente, configure a modelagem de tráfego para limitar o número de solicitações ao ADS ao mesmo tempo. Escolha uma das seguintes abordagens:

     *Abordagem de janela de tempo*: para a **duração da janela de modelagem de tráfego**, insira o número de segundos que MediaTailor devem distribuir as solicitações ao ADS. Para obter mais informações, consulte Explicação da recuperação do cronograma de [pré-busca recorrente](understanding-prefetching.md#avail-matching-criteria-recurring-retr)

     *Abordagem baseada em TPS*: configure usuários **simultâneos de **pico de TPS** e pico para limitar as solicitações com base nas transações por segundo e nos usuários simultâneos**. Para obter mais informações, consulte [Modelagem de tráfego baseada em TPS](tps-traffic-shaping.md).
   + Na seção [**Variáveis dinâmicas**](variables.md), insira até 100 variáveis de sessão dinâmica. MediaTailor usa essas variáveis para substituição em solicitações de pré-busca enviadas ao ADS. Se você não inserir nenhuma variável dinâmica de sessão, MediaTailor faça o possível para interpolar os valores das variáveis dinâmicas contidas em seu URL do [ADS](configurations-create.md#configurations-create-main).
     + Selecione **Adicionar variável dinâmica**. 
     + Em **Chave**, insira uma chave variável de sessão dinâmica, como`scte.event_id`. Você pode usar qualquer variável dinâmica que MediaTailor ofereça suporte. Para obter informações sobre variáveis dinâmicas de sessão, consulte[MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md).
     + Em **Valor**, insira um valor de variável dinâmica, como*my-event*.
     + Para adicionar outra variável dinâmica, escolha Selecionar **Adicionar variável dinâmica**. 

1. No painel **Consumo**, especifique as configurações que você deseja usar para a janela de consumo. Essas configurações determinam quando MediaTailor os anúncios são colocados no intervalo publicitário. Eles também determinam qualquer critério de correspondência disponível que você queira usar.
   + Em **Expiração do anúncio recuperado**, indique quanto tempo após a recuperação os anúncios estarão disponíveis para inserção.
   + Na seção [**Critérios de correspondência de disponibilidade**](variables.md), selecione **Adicionar critérios de disponibilidade** e adicione quantos e cinco critérios de correspondência de disponibilidade à sua agenda. Em seguida, em **Chave de variável dinâmica**, adicione uma chave de variável dinâmica, como`scte.event_id`. MediaTailor colocará os anúncios pré-buscados no intervalo publicitário *somente* se atenderem aos critérios definidos pelos valores das variáveis dinâmicas para MediaTailor as quais seu cliente passa ou que MediaTailor deduzem de informações como dados da sessão. Se um intervalo publicitário não atender aos critérios de correspondência especificados, MediaTailor ignora a busca prévia desse intervalo. Para obter informações, consulte a explicação do [consumo do cronograma de pré-busca recorrente](understanding-prefetching.md#avail-matching-criteria-recur).

1. Selecione **Adicionar critérios de disponibilidade.**

Os agendamentos de pré-busca expiram automaticamente após o término da janela de consumo. Para fins de diagnóstico, eles permanecem visíveis por pelo menos 7 dias, após os quais os excluem MediaTailor automaticamente. Como alternativa, você pode excluir manualmente uma agenda de pré-busca a qualquer momento. Para obter informações sobre como excluir manualmente uma agenda de pré-busca, consulte a seção a seguir[Excluindo agendas de pré-busca](deleting-prefetch-schedules.md).

# Modelagem de tráfego baseada em TPS
<a name="tps-traffic-shaping"></a>

AWS Elemental MediaTailor fornece duas abordagens opcionais de modelagem de tráfego para limitar o número de solicitações ao ADS ao mesmo tempo. A modelagem de tráfego baseada em TPS oferece uma alternativa à modelagem de tráfego baseada em janela de tempo para agendas de pré-busca. Essa abordagem fornece uma configuração mais intuitiva, permitindo que você especifique a capacidade do servidor de decisão de anúncios (ADS) em termos de transações por segundo (TPS) e de usuários simultâneos esperados, em vez de cálculos de tempo.

## Como funciona a modelagem de tráfego baseada em TPS
<a name="tps-how-it-works"></a>

Em vez de especificar as durações da janela de recuperação, você fornece os seguintes parâmetros:

Pico de TPS  
O número máximo de solicitações por segundo que seu ADS pode processar. Esse parâmetro não tem valor padrão.

Pico de usuários simultâneos  
O número máximo esperado de espectadores simultâneos para seu conteúdo. Esse parâmetro não tem valor padrão.

MediaTailor distribui automaticamente as solicitações de pré-busca ao longo do tempo para permanecer dentro do limite de TPS especificado, independentemente do número de sessões simultâneas.

**Example Exemplo de configuração baseada em TPS**  
Seu ADS pode lidar com 500 TPS e você espera 100.000 espectadores simultâneos durante os horários de pico. Você configura:  
+ Pico de TPS: 500
+ Pico de usuários simultâneos: 100.000
MediaTailor distribui automaticamente as solicitações de pré-busca ao longo do tempo para permanecer dentro do limite de TPS especificado, independentemente do número de sessões simultâneas.

# Excluindo agendas de pré-busca
<a name="deleting-prefetch-schedules"></a>

O procedimento a seguir explica como excluir uma agenda de pré-busca usando o MediaTailor console. *Para obter informações sobre como excluir agendamentos de pré-busca programaticamente usando a MediaTailor API, consulte [DeletePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_DeletePrefetchSchedule.html)a Referência da API.AWS Elemental MediaTailor *

**nota**  
A exclusão não ocorre em tempo real. Você pode enfrentar um atraso ao MediaTailor excluir os agendamentos de pré-busca, período durante o qual a recuperação e o consumo da pré-busca continuarão sendo executados em segundo plano.

**Para excluir uma agenda de pré-busca usando o console**

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

1. No painel de navegação, escolha **Configurações**. Selecione a configuração de reprodução que contém os agendamentos de pré-busca que você deseja excluir.

1. Na guia Agendas de **pré-busca, selecione a agenda** de pré-busca que você deseja excluir. Em seguida, selecione **Excluir**.

# Usando anúncios pré-condicionados com AWS Elemental MediaTailor
<a name="precondition-ads"></a>

Em um [fluxo de trabalho típico de inserção de anúncios](what-is-flow.md), transcodifica MediaTailor dinamicamente os anúncios para que correspondam ao fluxo de conteúdo, os salva e une os anúncios à transmissão ao vivo. Como esse processo ocorre somente depois de MediaTailor receber o anúncio em uma resposta VAST do servidor de decisão de anúncio (ADS), há um atraso no momento em que o anúncio está disponível para edição. Se uma latência adicional for introduzida no fluxo de trabalho de criação de anúncios (seja devido ao tempo limite do ADS ou a outros problemas de conteúdo ou rede), MediaTailor poderá preencher parcialmente a disponibilidade ou perder completamente o intervalo do anúncio. 

Para reduzir o tempo necessário para incluir anúncios em seu conteúdo, você pode usar anúncios pré-condicionados. Um anúncio pré-condicionado é aquele que você transcodifica antes de usá-lo na inserção de MediaTailor anúncios. Em vez de fornecer URLs os anúncios não condicionados para o seu ADS, você fornece URLs os anúncios pré-condicionados. Em sua resposta VAST à MediaTailor solicitação, o ADS inclui links diretos para os anúncios pré-condicionados. Ao remover a parte de transcodificação da costura do anúncio, MediaTailor basta salvar o anúncio e juntá-lo ao fluxo de conteúdo. O processo de criação de anúncios com anúncios pré-condicionados reduz o tempo entre o momento em que o anúncio MediaTailor é informado por meio da resposta VAST e o momento em que o anúncio é incorporado ao conteúdo. 

Como alternativa, você também pode usar a pré-busca de anúncios, que é quando você configura MediaTailor para realizar o processo de criação de anúncios em um horário agendado antes que o intervalo seja necessário. Para obter mais informações sobre a pré-busca de anúncios, consulte. [Pré-busca de anúncios](prefetching-ads.md)

## Requisitos de anúncios pré-condicionados
<a name="precondition-ads-req"></a>

A seguir estão os requisitos a serem considerados ao configurar um fluxo de trabalho de criação de anúncios com anúncios pré-condicionados.

### Requisitos do `MediaFiles`
<a name="precondition-ads-req-vast"></a>

A resposta VAST para a qual o servidor de anúncios envia MediaTailor deve incluir `MediaFiles` que atendam aos seguintes requisitos:

O anúncio (`Creative`) deve ter variantes que estejam em conformidade com as variantes de taxa de bits do fluxo de conteúdo. *É sua responsabilidade garantir que a resposta do VAST use as variantes de anúncio certas para corresponder aos manifestos do modelo.*

Embora o uso de anúncios pré-condicionados possa ajudar a tornar a inserção de anúncios mais eficiente, MediaTailor não tem a capacidade de gerenciar o processo de transcodificação para garantir que os arquivos de mídia dos anúncios sejam compatíveis com as especificações do manifesto de conteúdo. Se o anúncio não corresponder ao fluxo de conteúdo, a inserção MediaTailor pode ser perdida ou a incompatibilidade pode causar erros no dispositivo de reprodução. 

Além disso, para ser incorporado ao fluxo de conteúdo sem MediaTailor transcodificação, é `MediaFile` necessário atender aos seguintes requisitos:
+ Ele deve estar acessível na Internet pública para que MediaTailor você possa baixá-lo. 
+ Ele deve usar a entrega de streaming, indicada como `delivery="streaming"` na resposta VAST.
+ Ele deve ser um arquivo `.m3u8` (para HLS) ou `.mpd` (para DASH).

**Example Resposta VAST**  
No exemplo de resposta VAST a seguir, MediaTailor insira o `MediaFile` com o seguinte: URLs  
+ Para um fluxo HLS, MediaTailor usa`https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8`. Este é o primeiro `MediaFile` com entrega de streaming e uma extensão de arquivo compatível (. `m3u8`).
+ Para um stream do DASH, MediaTailor usa`https://example-ad-origin.amazonaws.com/ad1/index.mpd`. Este é o primeiro `MediaFile` com entrega de streaming e uma extensão de arquivo compatível (. `mpd`).

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0">
    <Ad id="ad1">
        <InLine>
            <AdSystem>ExampleAdSystem</AdSystem>
            <AdTitle>ad1</AdTitle>
            <Impression><![CDATA[https://example-impression.amazonaws.com]]></Impression>
            <AdServingId>de8e0d33-9c72-4d77-bb3a-f7e566ffc605</AdServingId>
            <Creatives>
                <Creative id="creativeId1" sequence="1">
                    <Linear skipoffset="00:00:05">
                        <Duration>00:00:30</Duration>
                        <MediaFiles>
                            <MediaFile delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/ad1.mp4]]></MediaFile>
                            <MediaFile delivery="streaming" width="1280" height="720" type="application/dash+xml" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index.mpd]]></MediaFile>
                            <MediaFile delivery="streaming" width="640" height="360" type="application/x-mpegURL" bitrate="262" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8]]></MediaFile>
                            <MediaFile delivery="streaming" width="2560" height="1440" type="application/x-mpegURL" bitrate="1066" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_high.m3u8]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
        </InLine>
    </Ad>
</VAST>
```

### Requisitos do manifesto de anúncios
<a name="precondition-ads-req-ads"></a>

Para usar anúncios pré-condicionados, seus manifestos de anúncios para pais e filhos devem atender aos seguintes requisitos:
+ O manifesto vinculado na `Creative` seção da resposta VAST deve ser o manifesto do anúncio principal.
+  URLs Para a criança, os manifestos de anúncios devem ser caminhos relativos.
+ Os manifestos publicitários secundários devem estar no mesmo diretório da playlist multivariante principal, no mesmo nível. Os manifestos infantis não podem estar em um subdiretório ou em outro local.

**Example playlist multivariante parental suportada**  
A playlist multivariante de anúncios principais a seguir contém playlists de mídia publicitária relativas URLs para crianças. As playlists secundárias também estão no mesmo diretório da playlist multivariante principal.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
index_3.m3u8
```

**Example playlist multivariante principal não suportada: subdiretórios**  
A seguinte playlist multivariante de anúncios principais contém playlists secundárias que estão em subdiretórios em relação à playlist multivariante principal. Não é uma playlist compatível com anúncios pré-condicionados.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
child/index_3.m3u8
```

**Example playlist multivariante principal não suportada: absoluta URLs**  
A seguinte playlist multivariante de anúncios principais contém playlists secundárias com valores absolutos. URLs Não é uma playlist compatível com anúncios pré-condicionados.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_3.m3u8
```

## Fluxo de trabalho de anúncios pré-condicionados
<a name="precondition-ads-setup"></a>

A seguir está uma descrição básica de como os anúncios pré-condicionados funcionam em um fluxo de trabalho de costura de anúncios com. MediaTailor A primeira parte do fluxo de trabalho são as ações que você deve realizar para se preparar para usar anúncios pré-condicionados. A segunda parte descreve como MediaTailor processa os anúncios.

**Parte 1: configuração de anúncios pré-condicionados**  
Conclua as etapas a seguir para configurar um fluxo de trabalho que usa anúncios pré-condicionados em MediaTailor.

1. Use um serviço de transcodificação, como AWS Elemental MediaConvert, para condicionar seus criativos em variantes que suportem as diferentes taxas de bits, resoluções e codecs de seus manifestos de modelo. 

1. Forneça URLs os arquivos de mídia pré-transcodificados para seu ADS, para uso em respostas VAST.

1. [Crie sua configuração de reprodução](configurations-create.md) em MediaTailor. Para usar anúncios pré-condicionados, selecione **Nenhum** para a configuração de **condicionamento do arquivo de mídia de streaming** na configuração.

1. Continue com a entrega de conteúdo configurada normalmente.

**Parte 2: processamento de MediaTailor anúncios**  
MediaTailor e a costura é concluída conforme descrito em. [Como funciona a inserção de MediaTailor anúncios](what-is-flow.md) Quando MediaTailor recebe uma resposta VAST do ADS, ele usa a lógica a seguir para determinar quais ações tomar para os anúncios. Essa lógica é ditada pela configuração de **condicionamento do arquivo de mídia de streaming** na configuração de reprodução. 
+ Quando o **condicionamento do arquivo de mídia de streaming** está definido como **Transcodificar**, MediaTailor transcodifica os arquivos de mídia com a `progressive` entrega e os une ao manifesto. Se não houver anúncios suficientes com arquivos de mídia `progressive` de entrega para preencher a disponibilidade, MediaTailor transcodifica e usa esses anúncios com `streaming` entrega.
+ Quando o **condicionamento de arquivos de mídia de streaming** está definido como **Nenhum** MediaTailor , agrupa anúncios com arquivos `streaming` de mídia de entrega no manifesto sem transcodificá-los. Se não houver anúncios suficientes com arquivos de mídia `streaming` de entrega para preencher a disponibilidade, MediaTailor transcodifica e usa esses anúncios com `progressive` entrega. 

# 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

# MediaTailor parâmetros de consulta do manifesto
<a name="manifest-query-parameters"></a>

AWS Elemental MediaTailor manipula parâmetros de consulta para diferentes propósitos: parâmetros de consulta manifestos para roteamento e autorização de CDN e outros parâmetros de consulta que podem ser usados para funcionalidades específicas da origem.

AWS Elemental MediaTailor preserva os parâmetros de consulta da inicialização da sessão e os anexa ao manifesto personalizado URLs e a outros ativos. Use essa funcionalidade quando você tiver uma Rede de Distribuição de Conteúdo (CDN) entre MediaTailor e o player cliente.

Use parâmetros de consulta de manifesto quando sua CDN precisar dos parâmetros de consulta para o seguinte:
+ Roteamento dinâmico para diferentes endpoints MediaTailor 
+ Autorização de token

**Comportamento do lado do cliente versus CDN**  
MediaTailor acrescenta parâmetros de consulta para endpoints de relatórios do lado do cliente, mas não os acrescenta para segmentos de CDN. A funcionalidade atualizada fornece suporte mais abrangente para parâmetros de consulta em vários MediaTailor ativos, aumentando a flexibilidade para casos de uso de roteamento e autorização de CDN.

MediaTailor acrescenta parâmetros de consulta para endpoints de relatórios do lado do cliente, mas não anexa os parâmetros de consulta para os segmentos CloudFront (ou outros CDN).

Para usar a preservação de parâmetros, entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/) para solicitar que a passagem do parâmetro de consulta de manifesto seja ativada. 

O comportamento varia entre HLS e DASH e entre a inicialização explícita e implícita da sessão. Os tópicos a seguir descrevem como configurar solicitações de inicialização de sessão para que MediaTailor passem pelos parâmetros para o manifesto:

# MediaTailor tratamento de parâmetros de consulta para origens
<a name="origin-query-parameters"></a>

AWS Elemental MediaTailor trata os parâmetros de consulta de forma diferente, dependendo de sua finalidade. Os parâmetros de consulta do manifesto (prefixados com`manifest.`) são usados para roteamento e autorização de CDN, enquanto outros parâmetros de consulta podem ser usados para funcionalidades específicas da origem.

**Visualização com mudança de horário com MediaPackage**  
Para a funcionalidade de visualização com mudança de horário MediaPackage, você pode incluir `start` `end` parâmetros em suas solicitações. Esses parâmetros definem janelas de conteúdo específicas para visualização inicial e atualização.

**Example solicitação de visualização com mudança de horário**  
Inclua parâmetros inicial e final em sua solicitação de manifesto para visualização com mudança de horário:  

```
GET /v1/master/111122223333/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportamento dos parâmetros durante as sessões**  
Os parâmetros de consulta são processados na inicialização da sessão. Para visualização com mudança de horário ou outros recursos específicos da origem:
+ **Inicialização da sessão:** inclua os parâmetros necessários na solicitação inicial do manifesto
+ **Persistência de parâmetros:** os parâmetros são associados à sessão e mantidos durante a reprodução
+ **Alteração de parâmetros:** Para modificar janelas de mudança de horário ou outros parâmetros, crie uma nova sessão com valores atualizados

**Importante**  
O tratamento específico dos parâmetros de consulta depende da configuração de origem e dos parâmetros compatíveis com a origem do conteúdo. Para MediaPackage integração, certifique-se de que sua CDN esteja configurada para encaminhar os parâmetros de consulta necessários, conforme descrito em[Configurar parâmetros de consulta essenciais](mediapackage-integration.md#mediapackage-query-strings).

# MediaTailor restrições de caracteres de parâmetros e codificação de URL
<a name="manifest-query-parameters-character-restrictions"></a>

AWS Elemental MediaTailor suporta caracteres específicos nos parâmetros de consulta do manifesto. Você pode usar a codificação de URL para caracteres especiais.

**Caracteres compatíveis com codificação de URL**  
Os seguintes caracteres especiais são compatíveis com a codificação de 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.

**Importante**  
MediaTailor não suporta caracteres duplos, como%%% ou ==.

**Considerações sobre segurança**  
MediaTailor implementa as seguintes medidas de segurança para tratamento de parâmetros:

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

**Topics**
+ [Parâmetros de consulta de origem](origin-query-parameters.md)
+ [MediaTailorrestrições de caracteres](manifest-query-parameters-character-restrictions.md)
+ [MediaTailorSessões implícitas do HLS](manifest-query-parameters-hls-implicit-session-initialization.md)
+ [MediaTailor Sessões implícitas do DASH](manifest-query-parameters-dash-implicit-session-initialization.md)
+ [MediaTailor inicialização explícita da sessão](manifest-query-parameters-hls-and-dash-explicit-session-initialization.md)
+ [MediaTailorcomportamento específico do protocolo](manifest-query-parameters-protocol-differences.md)
+ [MediaTailor Integração CDN](manifest-query-parameters-cdn-integration.md)

# MediaTailor Inicialização de sessão implícita do HLS
<a name="manifest-query-parameters-hls-implicit-session-initialization"></a>

AWS Elemental MediaTailor inclui parâmetros de consulta em links para MediaTailor recursos quando sua solicitação inclui parâmetros de consulta com a chave`manifest.*`. O exemplo a seguir mostra esse formato de solicitação:

```
GET /v1/master/111122223333/originId/index.m3u8?manifest.test=123&other=456
```

Os links não incluem o `manifest.` prefixo.

**Aplicação de parâmetros no HLS**  
Para sessões implícitas do HLS, MediaTailor aplica parâmetros aos seguintes locais na hierarquia do manifesto:
+ Playlist multivariante URLs
+ Playlist de mídia URLs
+ Segmento de conteúdo URLs
+ Segmento de anúncio URLs
+ Inicialização do HLS URLs

**Example playlist multivariante**  
O exemplo a seguir mostra como MediaTailor inclui os parâmetros de consulta na URL da playlist multivariante:  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/111122223333/originId/session/1.m3u8?test=123",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
#EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2525657,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665212
../../../manifest/111122223333/originId/session/0.m3u8?test=123
```

**Example playlist de mídia**  
O exemplo a seguir mostra como MediaTailor incluir os parâmetros de consulta nos URLs segmentos de conteúdo:  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:28716269
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:6.006,
https://origin.com/contentSegment_1.ts?originQueryParam=foo&test=123
#EXT-X-DISCONTINUITY
#EXTINF:6.006,
../../../../segment/111122223333/originId/session/0/2?test=123
```

# MediaTailor Inicialização de sessão implícita do DASH
<a name="manifest-query-parameters-dash-implicit-session-initialization"></a>

AWS Elemental MediaTailor cria uma sessão para o cliente e a redireciona com parâmetros de consulta quando o cliente faz uma solicitação de manifesto sem uma sessão. O exemplo a seguir mostra esse formato de solicitação:

```
GET /v1/dash/111122223333/originId/index.mpd?manifest.test=123&other=456
```

MediaTailor cria uma sessão para o cliente e a redireciona com os parâmetros de consulta:

```
/v1/dash/111122223333/originId/index.mpd?sessionId=session&test=123
```

**Aplicação de parâmetros no DASH**  
A resposta do manifesto do DASH inclui os parâmetros de consulta em vários locais, incluindo segmentos de conteúdo, segmentos de anúncios e inicialização URLs. MediaTailor aplica parâmetros ao seguinte:
+ Elementos de localização do manifesto DASH
+ SegmentTemplate atributos de inicialização
+ SegmentTemplate atributos de mídia
+ Segmento de conteúdo URLs
+ Segmento de anúncio URLs

Quando o cliente faz a solicitação, MediaTailor responde com um manifesto DASH semelhante ao exemplo a seguir. O primeiro período é um período de conteúdo, portanto, MediaTailor não insere o parâmetro de consulta do manifesto nele. No segundo período, que é um período de anúncio, MediaTailor insere o parâmetro de consulta do manifesto no `initialization` atributo e `media` no atributo do `SegmentTemplate` elemento. O `Location` elemento também tem os parâmetros de consulta do manifesto.

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2018-07-27T09:48:23.634000+00:00" id="201" minBufferTime="PT30S" minimumUpdatePeriod="PT15S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-14T23:37:43" suggestedPresentationDelay="PT25.000S" timeShiftBufferDepth="PT56.997S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://origin.com/contentSegments/</BaseURL>
    <Location>https://mediatailor.com/v1/dash/111122223333/originId/index.mpd?test=123&aws.sessionId=session</Location>
    <Period duration="PT29.963S" id="28737823" start="PT143732873.178S">
        <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <Representation bandwidth="2200000" codecs="avc1.640029" frameRate="30000/1001" height="540" id="1" width="960">
                <SegmentTemplate initialization="index_video_7_0_init.mp4?m=1611174111" media="index_video_7_0_$Number$.mp4?m=1611174111" presentationTimeOffset="4311986195351" startNumber="28737828" timescale="30000">
                    <SegmentTimeline>
                        <S d="180180" t="4311986911066"/>
                        <S d="3003" t="4311987091246"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="28737829_1" start="PT39925H48M23.141S">
        <BaseURL>https://mediatailor.com/v1/dashsegment/111122223333/originId/session/28737829/28737829_1/</BaseURL>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="2200000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_2_0init.mp4?test=123" media="asset_540_2_0_$Number%09d$.mp4?test=123" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="87087" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Inicialização de sessão explícita HLS e DASH
<a name="manifest-query-parameters-hls-and-dash-explicit-session-initialization"></a>

AWS Elemental MediaTailor inclui os parâmetros de consulta `manifestParams` as na playlist multivariante e o rastreamento URLs na resposta quando o cliente faz uma solicitação explícita de inicialização da sessão.

**Métodos de inicialização da sessão**  
Para inicialização explícita da sessão, você pode usar POST com corpo da solicitação ou GET com parâmetros de consulta:

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

   ```
   POST /v1/session/111122223333/originId/index.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2", "param3": "value3"},
       "manifestParams": {"test": "123"}
   }
   ```

1. **GET com parâmetros de consulta:**

   ```
   GET /v1/session/111122223333/originId/index.m3u8?ads.param1=value1&ads.param2=value2&manifestParams.test=123
   ```

**Example solicitação de inicialização de sessão**  

```
POST /v1/session/111122223333/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3"
    },
    "manifestParams": { 
        "test": "123"
    },
    "reportingMode": "client"
}
```

**Example resposta manifesta e de rastreamento**  

```
{
    "manifestUrl": "/v1/master/111122223333/originId/index.m3u8?aws.sessionId=session&test=123",
    "trackingUrl": "/v1/tracking/111122223333/originId/session?test=123"
}
```

As respostas manifestas para a sessão têm um valor específico `manifestParams` MediaTailor URLs semelhante aos fluxos de trabalho implícitos de inicialização de sessão descritos anteriormente. A principal diferença é que os parâmetros do manifesto para inicialização explícita da sessão não começam com. `manifest.`

Os parâmetros de consulta do manifesto são imutáveis e você só pode defini-los na inicialização da sessão. Se um cliente fizer várias solicitações de playlist multivariantes para uma única sessão, MediaTailor não atualizará os parâmetros de consulta do manifesto após a primeira solicitação.

**Fluxo de processamento de parâmetros**  
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. Por exemplo: `player_params.ad_type=customized` resolve com `ad_type=abc12345` base na ConfigurationAliases configuração.

# MediaTailor comportamento de parâmetros específicos do protocolo
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor trata os parâmetros de consulta do manifesto de forma diferente para os protocolos HLS e DASH. Cada tipo de protocolo tem locais de aplicação e métodos de processamento específicos.

**Comparação de tratamento de parâmetros HLS vs DASH**  
A tabela a seguir compara como MediaTailor manipula os parâmetros de consulta do manifesto nos protocolos HLS e DASH:


| Aspecto | Comportamento do HLS | Comportamento do DASH | 
| --- | --- | --- | 
| Aplicação de parâmetros | Aplicado diretamente ao manifesto URLs e ao segmento URLs | Aplicado a elementos, SegmentTemplate atributos e segmentos de localização URLs | 
| Hierarquia de manifestos | Playlist multivariante → Playlists de mídia→ Segmentos | MPD → Períodos → AdaptationSets → Representações | 
| Inicialização URLs | Aplicado ao HLS init quando presente URLs  | Aplicado aos SegmentTemplate atributos de inicialização | 
| Manuseio de sessões | Parâmetros preservados nas atualizações da playlist | Parâmetros incluídos no elemento MPD Location para continuidade da sessão | 
| Tratamento de segmentos de anúncios | Aplicado ao segmento de anúncios URLs em playlists de mídia | Aplicado aos atributos de SegmentTemplate mídia do período do anúncio | 

**Localizações de aplicação de parâmetros**  
MediaTailor aplica parâmetros de consulta de manifesto aos seguintes locais:

## Aplicação de parâmetros HLS
<a name="hls-parameter-application"></a>

Para fluxos HLS, MediaTailor aplica parâmetros de consulta de manifesto a:
+ Lista de **reprodução multivariante URLs:** os parâmetros são anexados às referências da lista de reprodução de mídia
+ **Lista de reprodução de mídia URLs:** os parâmetros são incluídos no segmento URLs nas listas de reprodução de mídia
+ **Segmento de conteúdo URLs:** todos os segmentos de conteúdo incluem os parâmetros de consulta do manifesto
+ **Segmento de anúncios URLs:** segmentos de anúncios recebem parâmetros para roteamento e autorização de CDN
+ **Inicialização HLS URLs:** os segmentos iniciais incluem parâmetros quando presentes no fluxo
+ **Segmento de ardósia URLs:** o conteúdo de ardósia inclui parâmetros para um comportamento consistente da CDN

**Example Exemplo de aplicação de parâmetros HLS**  
Dada a inicialização da sessão:  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
A playlist multivariante inclui parâmetros nas referências da playlist de mídia:  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2665212,RESOLUTION=960x540
../../../manifest/123456789/originId/session/0.m3u8?auth_token=abc123&region=us-west
```
A playlist de mídia inclui parâmetros no segmento URLs:  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXTINF:6.006,
https://origin.com/segment1.ts?auth_token=abc123&region=us-west
#EXTINF:6.006,
../../../../segment/123456789/originId/session/0/2?auth_token=abc123&region=us-west
```

## Aplicação de parâmetros DASH
<a name="dash-parameter-application"></a>

Para fluxos do DASH, MediaTailor aplica parâmetros de consulta de manifesto a:
+ **Elementos de localização do MPD:** o elemento Localização inclui parâmetros para solicitações de atualização do manifesto
+ **SegmentTemplate atributos de inicialização:** o segmento URLs inicial inclui parâmetros
+ **SegmentTemplate atributos de mídia: os** modelos de URL do segmento de mídia incluem parâmetros
+ **Segmento de conteúdo URLs:** todos os segmentos de conteúdo gerados a partir de modelos incluem parâmetros
+ **Segmento do anúncio URLs:** os segmentos do período do anúncio incluem parâmetros para integração com a CDN
+ Redirecionamentos **de relatórios do lado do servidor: 302 redirecionamentos para segmentos** de anúncios preservam parâmetros

**Example Exemplo de aplicação de parâmetros DASH**  
Dada a inicialização da sessão:  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
O manifesto DASH inclui parâmetros em vários locais:  

```
<MPD>
    <Location>https://mediatailor.com/v1/dash/123456789/originId/index.mpd?auth_token=abc123&region=us-west&aws.sessionId=session</Location>
    <Period>
        <AdaptationSet>
            <Representation>
                <SegmentTemplate 
                    initialization="init.mp4?auth_token=abc123&region=us-west" 
                    media="segment_$Number$.mp4?auth_token=abc123&region=us-west"/>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Integração CDN e roteamento de parâmetros
<a name="manifest-query-parameters-cdn-integration"></a>

AWS Elemental MediaTailor os parâmetros de consulta de manifesto permitem cenários sofisticados de integração de CDN. Você pode usá-los para roteamento dinâmico, autorização e balanceamento de carga.

**Casos de uso de roteamento CDN**  
Os cenários comuns de integração de CDN que se beneficiam dos parâmetros de consulta do manifesto incluem o seguinte:
+ **Roteamento geográfico: encaminhe** solicitações para MediaTailor endpoints específicos da região com base na localização do visualizador
+ **Autorização baseada em token:** passe tokens de autorização pela CDN MediaTailor para acesso seguro ao conteúdo
+ **Balanceamento de carga:** distribua o tráfego em vários MediaTailor endpoints usando a lógica de roteamento CDN
+ **Teste A/B: direcione** diferentes segmentos de usuários para diferentes MediaTailor configurações de teste
+ **Otimização específica do dispositivo:** roteie solicitações com base no tipo ou nos recursos do dispositivo

**Preservação de parâmetros em camadas de CDN**  
MediaTailor garante que os parâmetros de consulta do manifesto sejam preservados em várias camadas de CDN e tipos de solicitação:

1. **Solicitação inicial:** os parâmetros são extraídos da solicitação de inicialização da sessão

1. **Geração de manifesto:** os parâmetros são aplicados a todos os relevantes URLs no manifesto

1. **Solicitações de segmento:** os parâmetros são incluídos em todos os segmentos URLs para um comportamento consistente da CDN

1. **Inserção de anúncios:** os parâmetros são preservados durante a inserção do anúncio e a substituição do segmento

**Example Fluxo de autorização CDN**  
O exemplo a seguir demonstra um fluxo completo de autorização de CDN usando parâmetros de consulta de manifesto:  

1. O cliente solicita manifesto com token de autorização:

   ```
   GET https://cdn.example.com/mediatailor/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. O CDN encaminha a solicitação para MediaTailor com parâmetros:

   ```
   GET https://mediatailor.amazonaws.com/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. MediaTailor gera um manifesto com parâmetros aplicados a todos URLs:

   ```
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=2665212
   ../../../manifest/123456789/originId/session/0.m3u8?auth_token=jwt_token_here&user_id=12345
   ```

1. As solicitações de segmentos subsequentes incluem parâmetros para autorização de CDN:

   ```
   GET https://cdn.example.com/mediatailor/segment/123456789/originId/session/0/1?auth_token=jwt_token_here&user_id=12345
   ```

# Dados de relatórios e rastreamento
<a name="ad-reporting"></a>

MediaTailor fornece duas opções para rastrear e gerar relatórios sobre a quantidade de um anúncio que um espectador assistiu. Na abordagem de relatórios de anúncios do lado do servidor, MediaTailor rastreia o anúncio e envia beacons (sinais de rastreamento) diretamente para o servidor de anúncios. Como alternativa, na abordagem de rastreamento do lado do cliente, o player do cliente (o dispositivo do usuário) rastreia o anúncio e envia os beacons para o servidor de anúncios. O tipo de relatório de anúncio usado em uma sessão de reprodução depende da solicitação específica que o player faz para iniciar a sessão. MediaTailor

Para obter informações sobre como transmitir dados da sessão e do jogador para o servidor de anúncios usando variáveis dinâmicas, consulte[MediaTailor variáveis dinâmicas de anúncios para solicitações de ADS](variables.md). Para obter detalhes sobre os parâmetros de inicialização da sessão, consulte[MediaTailor parâmetros de consulta do manifesto](manifest-query-parameters.md).

**Topics**
+ [MediaTailor Rastreamento e relatórios de anúncios do lado do servidor](ad-reporting-server-side.md)
+ [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md)

# MediaTailor Rastreamento e relatórios de anúncios do lado do servidor
<a name="ad-reporting-server-side"></a>

AWS Elemental MediaTailor usa como padrão os relatórios do lado do servidor para rastreamento e medição abrangentes de anúncios. Com os relatórios no lado do servidor, quando o player solicita um URL de anúncio no manifesto, o serviço reporta o consumo de anúncios diretamente para o URL de rastreamento de anúncios. Depois que o player inicializa uma sessão de reprodução com MediaTailor, nenhuma outra entrada é necessária de você ou do player para realizar relatórios do lado do servidor. À medida que cada anúncio é reproduzido, MediaTailor envia beacons ao servidor de anúncios para informar quanto do anúncio foi visualizado. MediaTailor envia beacons para o início do anúncio e para a progressão do anúncio em quartis: primeiro quartil, ponto médio, terceiro quartil e conclusão do anúncio.

**Para realizar a geração de relatórios de anúncios no lado do servidor**
+ No player, inicialize uma nova sessão de MediaTailor reprodução usando uma solicitação em um dos seguintes formatos, de acordo com seu protocolo:
  + Exemplo: formato HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```
  + Exemplo: formato DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```

  Os pares de chave/valor são os parâmetros dinâmicos de direcionamento para rastreamento de anúncios. Para obter informações sobre como adicionar parâmetros à solicitação, consulte [MediaTailor variáveis dinâmicas de anúncios para solicitações de ADS](variables.md).

AWS Elemental MediaTailor responde à solicitação com o URL do manifesto. O manifesto contém URLs para os manifestos de mídia. Os manifestos de mídia contêm links para solicitações de segmento de anúncios.

**nota**  
Quando MediaTailor encontra uma barra dupla (//) em um URL de rastreamento, ela reduz as barras para uma (/).

Quando o player solicita a reprodução de um URL (`/v1/segment`caminho) do segmento de anúncio, AWS Elemental MediaTailor envia o beacon apropriado para o servidor de anúncios por meio do rastreamento de anúncios. URLs Ao mesmo tempo, o serviço emite um redirecionamento para o segmento de anúncio `*.ts` real. O segmento de anúncios está na CloudFront distribuição da Amazon, onde MediaTailor armazena anúncios transcodificados, ou na rede de entrega de conteúdo (CDN), onde você armazenou o anúncio em cache. 

As seções a seguir fornecem mais informações sobre como trabalhar com o rastreamento de anúncios do lado do servidor a partir de. MediaTailor

**Topics**
+ [Rastreamento do lado do servidor SGAI](ad-reporting-server-side-sgai.md)
+ [Glossário do Beacon](ad-reporting-server-side-beacon-glossary.md)
+ [Comportamento de temporização e armazenamento em cache](ad-reporting-server-side-timing-behavior.md)
+ [Recursos de rastreamento](ad-reporting-server-side-features.md)

# Rastreamento do lado do servidor com inserção de anúncios guiada pelo servidor (SGAI)
<a name="ad-reporting-server-side-sgai"></a>

Quando você usa a inserção de anúncios guiada pelo servidor (SGAI), o rastreamento do lado do servidor usa um mecanismo de sinalização *sem sessão que difere da abordagem de modo combinado descrita* acima. Em vez de MediaTailor unir segmentos de anúncios ao manifesto de conteúdo (onde rastreia `/v1/segment` solicitações), o SGAI retorna referências de anúncios como playlists separadas em uma resposta da lista de ativos com metadados de beacon incorporados ao anúncio. URIs

## Como funciona o beaconing do lado do servidor sem sessão
<a name="ad-reporting-server-side-sgai-how-it-works"></a>

As etapas a seguir descrevem como o beaconing do lado do servidor funciona nas sessões do SGAI:

1. **Inicialização da sessão**: o player solicita a playlist multivariante HLS com. `aws.insertionMode=GUIDED` Os relatórios do lado do servidor são o padrão (nenhum `aws.reportingMode` parâmetro é necessário). Ao contrário do modo costurado, a resposta de inicialização da sessão *não* inclui um. `trackingUrl`

1. Manifesto **armazenável em cache: MediaTailor retorna um manifesto** armazenável em cache contendo `EXT-X-DATERANGE` tags `CLASS="com.apple.hls.interstitial"` e `X-ASSET-LIST` atributos apontando para o endpoint da lista de ativos MediaTailor intersticiais.

1. **Lista de ativos com metadados de beacon**: quando o jogador encontra uma pausa no anúncio, ele busca a lista de ativos. MediaTailorretorna uma resposta JSON em que cada URI do anúncio inclui metadados de beacon criptografados:

   ```
   {
     "ASSETS": [
       {
         "DURATION": 30.0,
         "URI": "https://cdn.example.com/ad/master.m3u8?awsBeaconData=<encrypted>&awsBeaconDomain=<MediaTailor-endpoint>&awsConfigurationName=<config-name>"
       }
     ]
   }
   ```

   Quando os relatórios do lado do servidor estão ativos, a resposta *não* inclui uma seção. `TRACKING` O anúncio URIs carrega todos os dados do beacon.

1. **Substituição da variável HLS**: o player busca a playlist multivariante do anúncio. O manifesto publicitário usa `#EXT-X-DEFINE:QUERYPARAM` diretivas para transmitir os parâmetros do beacon da string de consulta do URI para o segmento URLs por meio da substituição da variável HLS:

   ```
   #EXTM3U
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconData"
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconDomain"
   #EXT-X-DEFINE:QUERYPARAM="awsConfigurationName"
   #EXTINF:5.0,
   {$awsBeaconDomain}/segment/hash/{$awsConfigurationName}/{$awsBeaconData}/0/0?aws.segmentRelativePath=asset_00001.ts
   ```

   O player resolve as `{$awsConfigurationName}` variáveis`{$awsBeaconData}`,`{$awsBeaconDomain}`, e usando os valores da string de consulta do URI do manifesto do anúncio e, em seguida, solicita cada segmento do anúncio por meio MediaTailor de.

1. **Sinalizador acionado por solicitação de segmento**: à medida que o player solicita cada segmento de anúncio, a solicitação é encaminhada. MediaTailor O serviço decifra os dados do beacon, determina a posição do segmento no anúncio (impressão, primeiro quartil, ponto médio, terceiro quartil ou completo) e dispara o farol de rastreamento VAST apropriado para o servidor de anúncios. MediaTailor em seguida, redireciona o player para o segmento real do conteúdo do anúncio.

## Requisitos do jogador para beaconing do lado do servidor SGAI
<a name="ad-reporting-server-side-sgai-requirements"></a>

Para usar o beaconing do lado do servidor com o SGAI, seu player deve atender aos seguintes requisitos:
+ HLS versão 11 ou posterior
+ Support for `EXT-X-DATERANGE` with `CLASS` attribute for HLS Interstitials
+ Support para substituição de `#EXT-X-DEFINE:QUERYPARAM` variáveis (RFC 8216bis). O jogador deve decodificar por cento os valores dos parâmetros de consulta antes de substituí-los em um segmento. URLs

**nota**  
Atualmente, o beaconing do lado do servidor SGAI é compatível somente com HLS. O DASH ainda não é compatível com o beaconing do lado do servidor SGAI.

## Comparação com o rastreamento do lado do servidor em modo combinado
<a name="ad-reporting-server-side-sgai-comparison"></a>

A tabela a seguir resume como o rastreamento do lado do servidor difere entre a inserção de anúncios agrupados e a inserção guiada pelo servidor:


| Aspecto | Costurado (SSAI) | Guiado pelo servidor (SGAI) | 
| --- | --- | --- | 
| Capacidade de armazenamento em cache do manifesto | Por sessão, não armazenável em cache | Armazenável em cache, compartilhado entre os espectadores | 
| Roteamento de segmentos de anúncios | Por meio do /v1/segment/ uso do ID da sessão | /v1/segment/Usando um blob de dados de beacon criptografado | 
| Estado da sessão para beacons | Armazenado por sessão em MediaTailor | Sem sessão — todo o estado é transmitido no parâmetro criptografado awsBeaconData | 
| URL de rastreamento no início da sessão | Retornado na resposta de inicialização da sessão | Não fornecido — os dados do beacon são incorporados ao anúncio URIs em cada resposta da lista de ativos | 
| Suporte para DASH | Compatível | Sem suporte no momento | 

**nota**  
Para sessões ao vivo do SGAI, você pode ativar a pré-busca de anúncios baseada em manifestos usando. `aws.guidedPrefetchMode=MANIFEST` Isso é separado da API de pré-busca baseada em agendamento usada com sessões agrupadas (SSAI). Para obter detalhes, consulte [Pré-busca guiada com batimento cardíaco manifesto](sgai-guided-prefetch.md).

# Glossário de beacons de rastreamento do lado do servidor
<a name="ad-reporting-server-side-beacon-glossary"></a>

MediaTailor o rastreamento do lado do servidor usa um conjunto padronizado de beacons para relatar o progresso da visualização de anúncios aos servidores de anúncios e serviços de verificação. Esses beacons se alinham aos padrões do Interactive Advertising Bureau (IAB) para medição de anúncios em vídeo e fornecem relatórios precisos sobre impressões de anúncios e taxas de conclusão.


**Tipos de beacons de rastreamento do lado do servidor**  

| Tipo de farol | Quando demitido | Finalidade | Detalhes de cronometragem | 
| --- | --- | --- | --- | 
| Impressão | Quando o player solicita o primeiro segmento de anúncio | Indica que o conteúdo do anúncio começou a ser carregado e está prestes a ser exibido para o espectador | Acionado na primeira /v1/segment solicitação de um anúncio. Está alinhado às diretrizes do IAB que exigem que o conteúdo do anúncio comece a ser carregado antes de contar uma impressão. Veja [Fluxo de trabalho de rastreamento do lado do servidor](ad-reporting-server-side-timing-behavior.md#ad-reporting-server-side-timing-behavior-workflow) a sequência completa. | 
| Início | Quando o player começa a renderizar o conteúdo do anúncio | Confirma que a reprodução do anúncio foi realmente iniciada | Normalmente é acionado simultaneamente com o farol de impressão na primeira solicitação de segmento, mas representa o início real da renderização do anúncio. Essa distinção é importante para serviços de verificação que rastreiam os eventos de impressão e de início separadamente. | 
| Primeiro quartil | Quando o jogador atinge 25% da duração do anúncio | Mede a visualização contínua do anúncio durante o primeiro trimestre do anúncio | Acionado quando o jogador solicita o segmento que contém o ponto de 25% da duração do anúncio. Por exemplo, em um anúncio de 20 segundos com segmentos de 2 segundos, isso normalmente seria acionado na solicitação do terceiro segmento (aproximadamente 4 a 6 segundos após o início do anúncio). | 
| Ponto médio | Quando o jogador atinge 50% da duração do anúncio | Mede a visualização contínua do anúncio em metade do anúncio | Acionado quando o jogador solicita o segmento que contém o ponto de 50% da duração do anúncio. Por exemplo, em um anúncio de 20 segundos com segmentos de 2 segundos, isso normalmente seria acionado na solicitação do 5º segmento (aproximadamente 8 a 10 segundos após o início do anúncio). | 
| Terceiro quartil | Quando o jogador atinge 75% da duração do anúncio | Mede a visualização contínua de anúncios em três quartos do anúncio | Acionado quando o jogador solicita o segmento que contém o ponto de 75% da duração do anúncio. Por exemplo, em um anúncio de 20 segundos com segmentos de 2 segundos, isso normalmente seria acionado na solicitação do 8º segmento (aproximadamente 14 a 16 segundos após o início do anúncio). | 
| Concluído | Quando o jogador chega ao final do anúncio | Confirma que todo o anúncio foi entregue ao espectador | Acionado quando o jogador solicita o segmento final do anúncio. Isso indica que o espectador potencialmente viu todo o conteúdo do anúncio. Por exemplo, em um anúncio de 20 segundos com segmentos de 2 segundos, isso normalmente seria acionado na solicitação do 10º segmento (aproximadamente 18 a 20 segundos após o início do anúncio). | 

**nota**  
O momento exato do disparo do farol depende da duração do segmento e da duração do anúncio. MediaTailor calcula a solicitação de segmento apropriada que corresponde a cada posição do quartil com base na duração específica do anúncio e na estrutura do segmento.

# Tempo de rastreamento do lado do servidor e comportamento de armazenamento em cache
<a name="ad-reporting-server-side-timing-behavior"></a>

Nos relatórios do lado do servidor, MediaTailor aciona eventos de rastreamento com base nas solicitações reais do segmento do player, não na análise do manifesto ou nas atividades de pré-carregamento. Essa abordagem garante uma contagem precisa de impressões que se alinha aos padrões do setor para medição de anúncios em vídeo.

## Princípios-chave de temporização
<a name="ad-reporting-server-side-timing-behavior-principles"></a>

MediaTailor o rastreamento do lado do servidor segue esses princípios fundamentais de temporização:
+ **Os eventos de rastreamento são acionados em solicitações reais de segmentos** - os beacons são enviados somente quando o player faz solicitações HTTP `/v1/segment` URLs, não durante a análise ou o armazenamento em cache do manifesto.
+ O armazenamento em **cache e o pré-carregamento de manifestos pelo jogador NÃO acionam eventos** - Os jogadores podem analisar, armazenar em cache ou pré-carregar informações do manifesto sem gerar nenhum evento de rastreamento.
+ A **pré-busca de segmentos *acionará* eventos**. Se os jogadores pré-buscarem segmentos de anúncios reais antes da reprodução, isso segue o comportamento padrão do setor, em que as solicitações de segmentos constituem impressões válidas.
+ **Cada solicitação /v1/segment aciona o beacon apropriado**. O evento de rastreamento específico (impressão, quartil, conclusão) é determinado pela posição do anúncio e pelo segmento que está sendo solicitado.
+ **O tempo está alinhado aos padrões do IAB** — a abordagem segue as diretrizes do Interactive Advertising Bureau para medição de anúncios em vídeo e contagem de impressões.

## Fluxo de trabalho de rastreamento do lado do servidor
<a name="ad-reporting-server-side-timing-behavior-workflow"></a>

Os diagramas a seguir ilustram o fluxo de trabalho completo de rastreamento do lado do servidor, mostrando quando os eventos de rastreamento são acionados em relação às solicitações dos jogadores:

**Fase 1: Inicialização da sessão**  
O player solicita um manifesto de MediaTailor, que retorna um manifesto personalizado contendo um segmento de anúncio URLs:  

![\[Fase de inicialização da sessão mostrando o jogador solicitando um manifesto MediaTailor e recebendo um manifesto personalizado com um segmento de anúncio. URLs\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ss-track-phase1.png)


**Fase 2: Rastreamento de solicitações de anúncios e impressões**  
Quando o player solicita o primeiro segmento do anúncio, MediaTailor dispara os beacons de impressão e de início para o Ad Decision Server e para os Ad Verification Services:  

![\[Fase de rastreamento de impressões de anúncios que mostra o MediaTailor envio de beacons de impressão e de início para o Ad Decision Server e os Ad Verification Services quando o jogador solicita o primeiro segmento do anúncio.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ss-track-phase2.png)


**Fase 3: Rastreamento de quartis**  
MediaTailor dispara faróis de quartil (primeiro quartil, ponto médio, terceiro quartil, conclusão) com base nas solicitações subsequentes do segmento:  

![\[Fase de rastreamento de quartis mostrando o MediaTailor disparo de beacons de quartil para o Ad Decision Server e os Ad Verification Services à medida que o jogador solicita segmentos de anúncios subsequentes.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ss-track-phase3.png)


**Fase 4: Entrega por segmento**  
Depois de disparar os beacons de rastreamento, MediaTailor redireciona para o segmento de anúncio real da Amazon ou do seu CDN: CloudFront   

![\[Fase de entrega do segmento mostrando o MediaTailor redirecionamento do player para o segmento de anúncio real de CloudFront ou CDN após disparar beacons de rastreamento.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ss-track-phase4.png)


O fluxo de trabalho de rastreamento do lado do servidor inclui os seguintes principais comportamentos de temporização:

1. **Inicialização da sessão** - O jogador solicita um manifesto de MediaTailor. MediaTailor retorna um manifesto personalizado contendo um segmento de anúncio URLs com o `/v1/segment` caminho.

1. Análise **e armazenamento em cache do manifesto** - O player analisa o manifesto e pode pré-carregar ou armazenar em cache as informações do segmento. **Nenhum evento de rastreamento é acionado durante essa fase**, independentemente do comportamento de cache do jogador.

1. **Solicitação de segmento de anúncio e rastreamento de impressões**: quando o player realmente solicita o primeiro segmento de anúncio (normalmente para reprodução), MediaTailor dispara o sinal de impressão e inicia o rastreamento do evento no Ad Decision Server e nos Serviços de Verificação de Anúncios. Isso ocorre na solicitação HTTP real para o `/v1/segment` URL, não quando o manifesto é analisado.

1. **Rastreamento de quartil com base nas solicitações do segmento**: MediaTailor dispara beacons de quartil (primeiro quartil, ponto médio, terceiro quartil, conclusão) para o Ad Decision Server e para os Ad Verification Services com base nas solicitações subsequentes do segmento que correspondem às posições calculadas do quartil dentro da duração do anúncio.

1. **Entrega por segmento** - Depois de acionar o sinalizador de rastreamento apropriado, MediaTailor emite um redirecionamento HTTP para o segmento real do anúncio (da Amazon CloudFront ou da sua CDN).

## Considerações sobre armazenamento em cache e pré-carregamento do player
<a name="ad-reporting-server-side-timing-behavior-caching-considerations"></a>

MediaTailor o rastreamento do lado do servidor foi projetado para ser compatível com várias estratégias de armazenamento em cache e pré-carregamento do player, mantendo a medição precisa das impressões:
+ **Pré-carregamento do manifesto** - Jogadores que pré-carregam ou armazenam em cache as informações do manifesto não acionam eventos de rastreamento. Os eventos de rastreamento só são acionados quando solicitações reais de segmento são feitas.
+ **Pré-busca de segmentos** - Se um player pré-buscar segmentos de anúncios antes da reprodução, os eventos de rastreamento serão acionados quando esses segmentos forem solicitados, potencialmente antes do tempo real de reprodução. Esse comportamento está alinhado aos padrões do setor que consideram as solicitações de segmentos como impressões válidas.
+ **Armazenamento em buffer** do player - O comportamento padrão do buffer do player (solicitando segmentos um pouco antes da reprodução) acionará eventos de rastreamento nos momentos apropriados, com base no padrão de solicitação do segmento.

## Solução de problemas de discrepâncias de rastreamento
<a name="ad-reporting-server-side-timing-behavior-troubleshooting"></a>

Se você observar discrepâncias entre o rastreamento do MediaTailor lado do servidor e as métricas de terceiros, considere os seguintes fatores:
+ **Diferenças de comportamento do jogador** - jogadores diferentes podem ter estratégias variadas de pré-busca e armazenamento em buffer que afetam o momento em que as solicitações de segmentos são feitas.
+ **Condições de rede** - Condições de rede ruins podem fazer com que os jogadores solicitem segmentos várias vezes ou em intervalos diferentes do esperado.
+ **Configuração de CDN** - O armazenamento incorreto de `/v1/segment` solicitações na CDN pode levar a eventos de rastreamento perdidos ou duplicados.
+ **Gerenciamento de sessão** - Certifique-se de que cada sessão de reprodução use um identificador de sessão exclusivo para evitar conflitos de eventos de rastreamento.

Para obter orientações detalhadas sobre solução de problemas, consulte[Solução de problemas comuns do](monitoring-and-troubleshooting.md#troubleshooting-common-issues).

# MediaTailor recursos e capacidades de rastreamento do lado do servidor
<a name="ad-reporting-server-side-features"></a>

AWS Elemental MediaTailor aplica automaticamente esses recursos integrados de rastreamento do lado do servidor para otimizar a precisão e a confiabilidade da medição de anúncios. O sistema evita a duplicação de beacons, gerencia o tráfego durante períodos de alto volume, mantém o sequenciamento adequado de eventos e fornece monitoramento abrangente do desempenho sem exigir nenhuma configuração de sua parte. Você só precisa garantir que seu servidor de decisão de anúncio (ADS) forneça os beacons de rastreamento na resposta do VAST.

**nota**  
Esses recursos estão disponíveis para novos clientes a partir de 30 de setembro de 2025. Os clientes existentes terão acesso ao longo de 2025 como parte das melhorias contínuas do serviço. Se você quiser acesso imediato a esses recursos, entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/).

**nota**  
Esses recursos se aplicam aos métodos de inserção de anúncios costurados (SSAI) e guiados pelo servidor (SGAI). Os tipos de farol e o tempo são os mesmos nos dois modos. Eles diferem na forma como MediaTailor acionam os beacons — consulte [Rastreamento do lado do servidor com inserção de anúncios guiada pelo servidor (SGAI)](ad-reporting-server-side-sgai.md) para obter detalhes sobre os beacons do lado do servidor SGAI.

## Desduplicação de beacons
<a name="ad-reporting-server-side-beacon-deduplication"></a>

MediaTailor impede o disparo de faróis duplicados para eventos publicitários idênticos. O sistema de rastreamento do lado do servidor envia cada sinal de impressão, quartil e conclusão somente uma vez por sessão de visualização do anúncio. Quando os players de vídeo solicitam o mesmo segmento de anúncio várias vezes devido às condições da rede, alterações na taxa de bits ou estratégias de buffer, MediaTailor rastreiam os beacons disparados e bloqueiam transmissões redundantes.

A desduplicação resolve automaticamente cenários comuns que causam um aumento no número de beacons:
+ **Streaming de taxa de bits adaptável**: quando os jogadores baixam diferentes variantes de qualidade do mesmo segmento de anúncio
+ **Cenários de repetição de rede** - Quando os jogadores solicitam segmentos novamente devido a problemas de rede ou tempos limite
+ **Estratégias de buffer de jogadores** - Quando os jogadores pré-buscam ou rebuscam segmentos para fins de buffer

O sistema foi projetado para disparar faróis de impressão apenas uma vez, mesmo quando os jogadores alternam entre diferentes níveis de qualidade.

## Limitação adaptativa e novas tentativas de beacon
<a name="ad-reporting-server-side-adaptive-throttling"></a>

MediaTailor gerencia automaticamente as taxas de tráfego do beacon com base nos indicadores de resposta do servidor. O sistema monitora os padrões de resposta HTTP, os tempos limite de conexão e os códigos de erro para detectar o congestionamento e, em seguida, ajusta as taxas de tráfego adequadamente. Quando o sistema identifica indicadores de estresse do servidor, ele reduz as taxas de tráfego para o domínio afetado e aumenta automaticamente as taxas quando os servidores demonstram capacidade aprimorada.

O sistema monitora a integridade do servidor usando estes indicadores:
+ Tempos **limite de conexão HTTP** - Quando as plataformas de medição não respondem dentro dos prazos esperados
+ **Códigos de resposta de erro** - respostas 503, 504 e 507 que indicam sobrecarga do servidor. Seu servidor de anúncios também deve oferecer suporte a esses códigos de erro para obter compatibilidade total.
+ **Padrões de resposta** - mudanças no desempenho da plataforma de medição que indicam problemas de capacidade

O comportamento de repetição tenta automaticamente a entrega por até 1 hora, com atrasos mínimos de 30 segundos entre as tentativas. Esse comportamento de nova tentativa não pode ser configurado. 

## Gerenciamento de tráfego de beacon por segundo
<a name="ad-reporting-server-side-tps-management"></a>

Você pode definir limites de TPS para controlar as taxas de entrega de beacons. Essa é a única configuração configurável para recursos de rastreamento do lado do servidor. Os limites no nível da conta limitam o número total de solicitações de rastreamento de anúncios enviadas por todos os parceiros de medição. MediaTailor impõe um limite mínimo de TPS de 10.000 para fornecer capacidade suficiente para operações em escala empresarial.

Envie um ticket de AWS suporte para estabelecer limites de TPS com as seguintes informações:
+ **ID da conta da AWS** — Seu identificador de conta específico
+ **Região de destino** - A região da AWS em que você deseja aplicar o limite de TPS
+ Limite de **TPS desejado - Seu limite** necessário de transações por segundo (mínimo de 10.000)

Por padrão, não há limite de TPS. Você pode solicitar um limite de TPS se seu servidor de decisão de anúncios (ADS) exigir, mas o limite deve ser maior que 10.000 TPS. MediaTailor não excederá o limite especificado, mas não garantirá uma taxa de transferência consistente até esse limite. Seu servidor de decisão de anúncios informará quais limites de TPS ele pode suportar.

## Sinalização em ordem
<a name="ad-reporting-server-side-in-order-beaconing"></a>

MediaTailor mantém automaticamente a entrega sequencial de eventos de rastreamento de anúncios. O sistema preserva a ordem dos beacons mesmo quando ocorrem problemas de rede, novas tentativas ou gerenciamento de tráfego. Isso garante que os parceiros de medição recebam os eventos na ordem correta para análises precisas.

O sistema segue a sequência de faróis padrão da indústria:

1. **Iniciar eventos - Acione** quando a reprodução do anúncio começar

1. **Eventos do primeiro quartil** - Disparem com 25% da conclusão

1. **Eventos de ponto médio - Atire** a 50% da conclusão

1. **Eventos do terceiro quartil - Atire** com 75% da conclusão

1. **Eventos de conclusão - Acione** quando os anúncios terminarem

Esses recursos funcionam juntos automaticamente:
+ Os faróis são mantidos durante a aceleração para manter a ordem correta
+ Cada domínio do parceiro de medição tem filas de eventos separadas para evitar interrupções durante os ajustes de taxa
+ A desduplicação rastreia o tipo de evento e a posição do cronograma, mantendo a ordem cronológica

# Rastreamento de anúncios do lado do cliente
<a name="ad-reporting-client-side"></a>

Usando a API de rastreamento AWS Elemental MediaTailor do lado do cliente, você pode incorporar controles de player durante intervalos publicitários em fluxos de trabalho de streaming. No rastreamento do lado do cliente, o player ou cliente emite eventos de rastreamento, como impressão e quartil de anúncios, para o Ad Decision Server (ADS) e outras entidades de verificação de anúncios. Esses eventos monitoram o status geral do intervalo publicitário e a disponibilidade individual do anúncio em cada intervalo. Para obter mais informações sobre impressão e quartil (ADS) e outras entidades de verificação de anúncios. Para obter mais informações sobre impressão e quartil e balizamento de anúncios, consulte. [Sinalização do lado do cliente](ad-reporting-client-side-beaconing.md) Para obter mais informações sobre o ADS e outras entidades de verificação de anúncios, consulte. [Integrações de rastreamento de anúncios do lado do cliente](ad-reporting-client-side-ad-tracking-integrations.md)

Para obter informações sobre como passar os parâmetros do jogador e os dados da sessão para o ADS para rastreamento do lado do cliente, consulte e. [MediaTailor variáveis de jogador para solicitações de ADS](variables-player.md) [MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md)

O rastreamento do lado do cliente permite funcionalidades como as seguintes: 
+ Temporizadores de contagem regressiva do Ad-break - Para obter mais informações, consulte. [Adicionar cronômetro de contagem regressiva](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ Clique no anúncio: para obter mais informações, consulte. [Clique no anúncio](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ Exibição de anúncios complementares - Para obter mais informações, consulte[Anúncios complementares](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads).
+ Anúncios ignoráveis - Para obter mais informações, consulte. [Anúncios ignoráveis](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ Exibição de ícones VAST para conformidade com a privacidade - Para obter mais informações, consulte[Ícones para o Google Por que esse anúncio (WTA)](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta).
+ Controle da depuração do jogador durante anúncios - Para obter mais informações, consulte. [Esfregando](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)

Usando a API de rastreamento MediaTailor do lado do cliente, você pode enviar metadados para o dispositivo de reprodução que habilita a funcionalidade além do rastreamento do lado do cliente:

## Fluxo de trabalho de relatórios do lado do cliente
<a name="ad-reporting-client-side-workflow"></a>

O diagrama a seguir mostra o fluxo de trabalho completo de relatórios do lado do cliente, desde a inicialização da sessão até a reprodução de anúncios e o beaconing:

![\[MediaTailor diagrama de sequência de relatórios do lado do cliente mostrando a interação entre o player de vídeo, o Ad Decision Server MediaTailor, a origem do conteúdo e os serviços de verificação de anúncios durante todo o fluxo de trabalho, desde a inicialização da sessão até a reprodução do anúncio e o beaconing.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/tracking_flow.png)


O fluxo de trabalho de relatórios do lado do cliente inclui as seguintes etapas:

1. **Inicialização da sessão** - O player de vídeo envia uma solicitação POST ao endpoint da MediaTailor sessão com metadados JSON`adsParams`, incluindo tokens de origem e recursos da sessão. MediaTailor responde com `manifestUrl` e `trackingUrl` para a sessão.

1. **Solicitação de manifesto e decisão de anúncio** - O jogador solicita o manifesto personalizado de MediaTailor. MediaTailor solicita o manifesto do conteúdo original da origem, faz uma solicitação de anúncio ao Ad Decision Server (ADS) usando parâmetros do player, recebe uma resposta VAST com metadados do anúncio e entrega um manifesto personalizado com marcadores de anúncios para o player.

1. **Recuperação de dados de rastreamento** - O jogador pesquisa o URL de rastreamento em intervalos regulares (duração desejada correspondente para HLS ou período mínimo de atualização para DASH). MediaTailor retorna metadados de rastreamento JSON contendo disponibilidades, anúncios, eventos de rastreamento, beacon URLs e dados de verificação de anúncios.

1. **Reprodução e sinalização de anúncios: durante os intervalos publicitários, o player analisa os metadados de rastreamento, dispara beacons** de impressão quando os anúncios começam a ser renderizados, dispara beacons de quartil (início, primeiro quartil, ponto médio, terceiro quartil, completo) no momento apropriado, carrega e executa a verificação de anúncios, se necessário, e envia eventos para serviços de verificação de terceiros. JavaScript viewability/verification 

1. **Pesquisa contínua** - O player continua pesquisando o URL de rastreamento durante toda a sessão para receber metadados atualizados para os próximos anúncios e conteúdo dinâmico.

Esse fluxo de trabalho permite recursos avançados, como cronômetros de contagem regressiva de anúncios, funcionalidade de clique, anúncios complementares, anúncios ignoráveis e exibição de ícones VAST para conformidade com a privacidade.

**Topics**
+ [Fluxo de trabalho de relatórios do lado do cliente](#ad-reporting-client-side-workflow)
+ [Habilitando o rastreamento do lado do cliente](#ad-reporting-client-side-enabling)
+ [Parâmetros do servidor de anúncios](#ad-reporting-client-side-ad-server-parameters)
+ [Parâmetros de consulta de interação de origem](#ad-reporting-client-side-origin-interaction-query-parameters)
+ [Recursos configurados por sessão](#ad-reporting-client-side-session-configured-features)
+ [Melhores práticas para rastreamento do lado do cliente](#ad-reporting-client-side-best-practices)
+ [Esquema e propriedades de acompanhamento de anúncios do lado do cliente](ad-reporting-client-side-ad-tracking-schema.md)
+ [Cronometragem da atividade de rastreamento de anúncios](ad-reporting-client-side-ad-tracking-schema-activity-timing.md)
+ [Controles e funcionalidades do player para rastreamento de anúncios do lado do cliente](ad-reporting-client-side-ad-tracking-schema-player-controls.md)
+ [Sinalização do lado do cliente](ad-reporting-client-side-beaconing.md)
+ [Modo híbrido com beacons de anúncios do lado do servidor](ad-reporting-hybrid-mode.md)
+ [Integrações de rastreamento de anúncios do lado do cliente](ad-reporting-client-side-ad-tracking-integrations.md)
+ [Paginando beacons de anúncios com GetTracking](#gettracking)

## Habilitando o rastreamento do lado do cliente
<a name="ad-reporting-client-side-enabling"></a>

Você ativa o rastreamento do lado do cliente para cada sessão. O player cria um HTTP `POST` para o endpoint do MediaTailor prefixo de inicialização da sessão da configuração. Opcionalmente, o player pode enviar metadados adicionais para usar MediaTailor ao fazer chamadas publicitárias, chamar a origem de um manifesto e invocar ou desativar MediaTailor recursos no nível da sessão.

O exemplo a seguir mostra a estrutura dos metadados JSON:

```
{
  "adsParams": {                  # 'adsParams' is case sensitive
    "param1": "value1",           # key is not case sensitive
    "param2": "value2",           # Values can contain spaces. For example, 'value 2' is an allowed value. 
    },
  "origin_access_token":"abc123", # this is an example of a query parameter designated for the origin
  "overlayAvails":"on"            # 'overlayAvails' is case sensitive. This is an example of a feature that is enabled at the session level.
}
```

Use o MediaTailor console ou a API para configurar o URL do modelo de solicitação do ADS para referenciar esses parâmetros. No exemplo a seguir, `player_params.param1` são os parâmetros do player para`param1`, e `player_params.param2` são os parâmetros do player para`param2`.

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

## Parâmetros do servidor de anúncios
<a name="ad-reporting-client-side-ad-server-parameters"></a>

No nível mais alto da estrutura JSON está um objeto `adsParams` JSON. Dentro desse objeto, há key/value pares que MediaTailor podem ser lidos e enviados ao servidor de anúncios em todas as solicitações de sessão. MediaTailor suporta os seguintes servidores de anúncios:
+ Gerenciador de anúncios do Google 
+ SpringServe 
+ FreeWheel 
+ Publica 

## Parâmetros de consulta de interação de origem
<a name="ad-reporting-client-side-origin-interaction-query-parameters"></a>

Quaisquer key/value pares reservados no nível mais alto da estrutura JSON, como, e `adsParams` `availSuppression``overlayAvails`, não são adicionados ao URL da solicitação de origem na forma de parâmetros de consulta. Cada solicitação de manifesto de MediaTailor sessão feita à origem contém esses parâmetros de consulta. A origem ignora parâmetros de consulta estranhos. Por exemplo, MediaTailor pode usar os key/value pares para enviar tokens de acesso à origem.

## Recursos configurados por sessão
<a name="ad-reporting-client-side-session-configured-features"></a>

Use a estrutura JSON de inicialização de sessão para ativar, desativar ou substituir MediaTailor recursos como, e. `overlayAvails` `availSuppression` `adSignaling` Todas as configurações de recursos passadas durante a inicialização da sessão substituem a configuração no nível da MediaTailor configuração.

**nota**  
Os metadados enviados MediaTailor na inicialização da sessão são imutáveis, e metadados adicionais não podem ser adicionados durante a sessão. Use marcadores SCTE-35 para transportar dados que mudam durante a sessão. Para obter mais informações, consulte [MediaTailor variáveis de sessão para solicitações de ADS](variables-session.md).

**Example : Realizando o rastreamento de anúncios do lado do cliente para HLS**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad"   # This value does not change during the session.
               "uid": "abdgfdyei-2283004-ueu"                     
           }
        }
```

**Example : Executando o rastreamento de anúncios do lado do cliente para o DASH**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           }
        }
```

### Parâmetro do modo de relatório
<a name="session-initialization-reporting-mode"></a>

Você pode especificar o modo de relatório ao inicializar uma sessão incluindo o `reportingMode` parâmetro no corpo da solicitação. Esse parâmetro controla se MediaTailor executa o rastreamento de anúncios do lado do cliente ou do lado do servidor para a sessão.
+ `client`- O player realiza o rastreamento de anúncios e envia beacons para o servidor de anúncios. Esse é o modo padrão se não `reportingMode` for especificado.
+ `server`- MediaTailor realiza o rastreamento de anúncios do lado do servidor e envia beacons diretamente para o servidor de anúncios.

**Example Inicialização da sessão com modo de relatório do lado do servidor**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad",
               "uid": "abdgfdyei-2283004-ueu"                     
           },
           "reportingMode": "server"
        }
```

**Example Inicialização da sessão com modo de relatório do lado do cliente (explícito)**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           },
           "reportingMode": "client"
        }
```

**nota**  
O `reportingMode` parâmetro é definido na inicialização da sessão e não pode ser alterado durante a sessão. Se não `reportingMode` for especificado, o MediaTailor padrão é o relatório do lado do cliente para manter a compatibilidade com versões anteriores.

Uma resposta bem-sucedida é um HTTP `200` com um corpo de resposta. O corpo contém um objeto JSON com uma `manifestUrl` e uma `trackingUrl` chave. Os valores são relativos URLs que o player pode usar para fins de reprodução e rastreamento de eventos publicitários.

```
{
  "manifestUrl": "/v1/dashmaster/hashed-account-id/origin-id/asset-id.m3u8?aws.sessionId=session-id",
  "trackingUrl": "/v1/tracking/hashed-account-id/origin-id/session-id"
}
```

Para obter mais informações sobre o esquema de rastreamento do lado do cliente, consulte. [Esquema e propriedades de acompanhamento de anúncios do lado do cliente](ad-reporting-client-side-ad-tracking-schema.md)

## Melhores práticas para rastreamento do lado do cliente
<a name="ad-reporting-client-side-best-practices"></a>

Esta seção descreve as melhores práticas para rastreamento do lado do cliente em MediaTailor fluxos de trabalho ao vivo e VOD.

### Fluxos de trabalho ao vivo
<a name="ad-reporting-client-side-best-practices-live"></a>

Pesquise o endpoint de rastreamento em um intervalo que corresponda a cada duração-alvo para o HLS ou o período mínimo de atualização para o DASH, para ter sempre os metadados de rastreamento de anúncios mais atuais. Combinar esse intervalo é especialmente importante em fluxos de trabalho em que os criativos podem ter um componente interativo ou de sobreposição. 

**nota**  
Alguns jogadores apoiam os ouvintes do evento, o que pode ser usado como uma alternativa à votação. Por exemplo, o recurso de decoração do ID de MediaTailor anúncio precisaria ser ativado para cada sessão. Para obter mais informações, consulte [Decoração de ID do anúncio](ad-id-decoration.md). O uso desse recurso coloca um identificador de intervalo de datas (HLS) ou elemento de evento (DASH) sobre cada anúncio disponível. Os jogadores podem usar essas tags de manifesto como uma solicitação para chamar o endpoint de MediaTailor rastreamento da sessão.

### Fluxos de trabalho de VOD
<a name="ad-reporting-client-side-best-practices-vod"></a>

Após a inicialização bem-sucedida da sessão e depois de MediaTailor receber o primeiro manifesto contendo mídia, você só precisa chamar o endpoint de rastreamento uma vez.

![\[Fluxo de chamadas para fluxos de trabalho de VOD. Chame o endpoint de rastreamento do lado do cliente depois que a sessão for inicializada e MediaTailor receber o primeiro manifesto que contém mídia.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/vod-workflow-best-practice.png)


### Inserção de anúncios guiada pelo servidor
<a name="ad-reporting-client-side-best-practices-sgai"></a>

As sessões de inserção de anúncios guiada pelo servidor (SGAI) não usam a API. `GetTracking` Em vez disso, quando você usa`aws.reportingMode=CLIENT`, MediaTailor fornece informações de rastreamento na `TRACKING` seção de cada resposta da lista de ativos quando os jogadores solicitam conteúdo publicitário. A resposta de inicialização da sessão não inclui um`trackingUrl`.

A resposta da lista de ativos para sessões SGAI rastreadas pelo lado do cliente tem a seguinte estrutura:

```
{
  "ASSETS": [
    { "DURATION": 20.0, "URI": "https://cdn.example.com/ad1/master.m3u8" },
    { "DURATION": 10.0, "URI": "https://cdn.example.com/ad2/master.m3u8" }
  ],
  "TRACKING": {
    ...VAST tracking events and beacon URLs for each ad...
  }
}
```

Ao implementar o rastreamento do lado do cliente para métodos SGAI:
+ Analise a `TRACKING` seção a partir das respostas da lista de ativos em vez de chamar `GetTracking`
+ Use o rastreamento URLs fornecido na lista de ativos para relatórios de eventos publicitários
+ Sinalizadores de rastreamento de disparo com base em eventos reais de reprodução de anúncios no player
+ Gerencie o rastreamento de cada intervalo publicitário de forma independente à medida que as listas de ativos são buscadas

**Importante**  
A `TRACKING` seção só é incluída na lista de ativos quando `aws.reportingMode=CLIENT` está definida. Quando os relatórios do lado do servidor são usados (o padrão para SGAI), MediaTailor omite a `TRACKING` seção e, em vez disso, incorpora os dados do beacon no anúncio. URIs Para obter detalhes, consulte [Rastreamento do lado do servidor com inserção de anúncios guiada pelo servidor (SGAI)](ad-reporting-server-side-sgai.md).

# Esquema e propriedades de acompanhamento de anúncios do lado do cliente
<a name="ad-reporting-client-side-ad-tracking-schema"></a>

Com o recurso de rastreamento de anúncios MediaTailor do lado do cliente, você pode integrar dados detalhados de rastreamento de anúncios do lado do cliente ao seu ambiente de player. As seções a seguir abordam o esquema geral de acompanhamento de anúncios, bem como as propriedades e valores específicos que compõem o esquema.

## Schema
<a name="ad-reporting-client-side-ad-tracking-schema-table"></a>

A estrutura JSON a seguir mostra o esquema de acompanhamento de anúncios do MediaTailor lado do cliente. Essa representação ilustra a estrutura de aninhamento do esquema para ajudá-lo a entender as relações entre as diferentes partes.

Para obter informações detalhadas sobre cada propriedade, consulte[Propriedades](#ad-reporting-client-side-ad-tracking-schema-properties).

```
{
  "avails": [
    {
      "ads": [
        {
          "adID": "string",
          "adParameters": "string",
          "adSystem": "string",
          "adTitle": "string",
          "adVerifications": [
            {
              "executableResource": [
                {
                  "apiFramework": "string",
                  "type": "string",
                  "uri": "string",
                  "language": "string"
                }
              ],
              "javaScriptResource": [
                {
                  "apiFramework": "string",
                  "browserOptional": "string",
                  "uri": "string"
                }
              ],
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ],
              "vendor": "string",
              "verificationParameters": "string"
            }
          ],
          "companionAds": [
            {
              "adParameters": "string",
              "altText": "string",
              "attributes": {
                "adSlotId": "string",
                "apiFramework": "string",
                "assetHeight": "string",
                "assetWidth": "string",
                "expandedHeight": "string",
                "expandedWidth": "string",
                "height": "string",
                "id": "string",
                "pxratio": "string",
                "renderingMode": "string",
                "width": "string"
              },
              "companionClickThrough": "string",
              "companionClickTracking": "string",
              "htmlResource": "string",
              "iFrameResource": "string",
              "sequence": "string",
              "staticResource": "string",
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ]
            }
          ],
          "creativeId": "string",
          "creativeSequence": "string",
          "duration": "string",
          "durationInSeconds": number,
          "extensions": [
            {
              "type": "string",
              "content": "string"
            }
          ],
          "icons": [
            {
              "attributes": {
                "apiFramework": "string",
                "duration": "string",
                "height": "string",
                "offset": "string",
                "program": "string",
                "pxratio": "string",
                "width": "string",
                "xPosition": "string",
                "yPosition": "string"
              },
              "htmlResource": "string",
              "iconClicks": {
                "iconClickThrough": "string",
                "iconClickTracking": {
                  "id": "string"
                },
                "iconClickFallbackImages": [
                  {
                    "altText": "string",
                    "height": "string",
                    "width": "string",
                    "staticResource": {
                      "creativeType": "string",
                      "uri": "string"
                    }
                  }
                ]
              },
              "iconViewTracking": "string",
              "iFrameResource": "string",
              "staticResource": {
                "creativeType": "string",
                "uri": "string"
              }
            }
          ],
          "mediaFiles": {
            "adParameters": "string",
            "duration": "string",
            "durationInSeconds": number,
            "mediaFilesList": [
              {
                "apiFramework": "string",
                "delivery": "string",
                "height": "string",
                "maintainAspectRatio": "string",
                "mediaFileUri": "string",
                "mediaType": "string",
                "scalable": "string",
                "width": "string",
                "bitrate": "string"
              }
            ],
            "mezzanine": "string",
            "startTime": "string",
            "startTimeInSeconds": number,
            "trackingEvents": [
              {
                "beaconUrls": ["string"],
                "duration": "string",
                "durationInSeconds": number,
                "dateTime": "string",
                "eventId": "string",
                "eventType": "string",
                "startTime": "string",
                "startTimeInSeconds": number
              }
            ]
          },
          "startTime": "string",
          "startTimeInSeconds": number,
          "dateTime": "string",
          "adBreakTrackingEvents": [...],
          "vastAdId": "string"
        }
      ],
      "adType": "string",
      "availID": "string",
      "duration": "string",
      "durationInSeconds": number,
      "startTime": "string",
      "startTimeInSeconds": number,
      "dateTime": "string",
      "adMarkerDuration": "string",
      "adProgramDateTime": "string",
      "dashAvailabilityStartTime": "string",
      "hlsAnchorMediaSequenceNumber": "string"
    }
  ],
  "nonLinearAvails": [
    {
      "nonLinearAds": [...],
      "nonLinearAdsList": [...]
    }
  ],
  "nextToken": "string",
  "meta": {}
}
```

## Propriedades
<a name="ad-reporting-client-side-ad-tracking-schema-properties"></a>

A tabela a seguir lista as propriedades da API de rastreamento do lado do cliente, suas definições, tipos de valor e exemplos.


****  

| Propriedade | Definição | Tipo de valor | Exemplo | 
| --- | --- | --- | --- | 
|   adID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Caminho: `/avails/ads/adId` Mapeamento VAST: Nenhum  | String | 10 | 
|   adBreakTrackingEvents  |  Uma matriz que transporta eventos de rastreamento do VMAP da resposta VAST. Para obter mais informações, consulte a seção 2.3.3 da especificação [VMAP 1.0](https://www.iab.com/guidelines/vmap/). Caminho: `/avails/ads/adBreakTrackingEvents`  | Array |  []  | 
|   adMarkerDuration  |  A duração do aproveitamento observada no marcador do anúncio no manifesto.  | String |  30  | 
|   adParameters  |  Uma sequência de parâmetros de anúncio, do VAST VPAID, que MediaTailor passa para o player. Caminho: `/avails/ads/adParameters` Mapeamento VAST: `VAST/Ad/InLine/Creatives/Creative/Linear/AdParameters`  | String |  | 
|   adProgramDateTime  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   ads  |  Uma matriz contendo os objetos do anúncio que compõem o item. Os anúncios são listados na ordem em que aparecem no manifesto. Caminho: `/avails/ads`  | Array |  []  | 
|   adSystem  |  O nome do sistema que veicula o anúncio.  Certifique-se de fornecer um valor. Se você não fornecer um valor, podem surgir problemas.   | String |  myADS  | 
|   adTitle  |  O título do anúncio.  | String |  ad1  | 
|   adVerifications  |  Contém os recursos e os metadados necessários para executar o código de medição de terceiros a fim de verificar a reprodução criativa. Para obter mais informações sobre essa propriedade, consulte a seção 3.16 da [especificação VAST 4.2](https://iabtechlab.com/standards/vast/). MediaTailor suporta `adVerifications` como VAST 3 nós de extensão. Caminho: `/avails/ads/adVerifications` Mapeamento VAST: `VAST/Ad/InLine/AdVerifications`  | Array |  []  | 
|   altText  |  O texto alternativo para a imagem de um anúncio complementar. Este texto permite que jogadores com suporte de áudio descritivo para deficientes visuais leiam uma descrição da imagem. Caminho: `/avails/ads/companionAds/altText`  | String |  video sequence advertising sneakers  | 
|   apiFramework  |  Defina como `VPAID` para informar ao jogador que esse anúncio é um anúncio VPAID. Pode aparecer em vários locais no esquema.  | String |  VPAID  | 
|   availID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Caminho: `/avails/availID`  | String |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | 
|   avails  |  Uma matriz contendo objetos ad-break, ou *avails*, que são apresentados na janela ativa do manifesto. Os itens são listados na ordem em que aparecem no manifesto. Caminho: `/avails`  | Array |  []  | 
|   adType  |  O tipo do anúncio. Caminho: `/avails/adType` e `/avails/ads/adType`  | String |  | 
|   dateTime  |  Programe a data e hora, no formato ISO 8601 segundos, para o início da disponibilidade do anúncio ou anúncio. Caminho: `/avails/dateTime` e `/avails/ads/dateTime`  | String |  | 
|   duration  |  Duração, no formato ISO 8601 segundos. A resposta inclui durações para toda a disponibilidade do anúncio e para cada anúncio e beacon, embora as durações dos beacons sejam sempre zero. Caminho: `/avails/duration` e `/avails/ads/duration`  | String | 15.015 | 
|   durationInSeconds  |  Duração, em formato de segundos. Caminho: `/avails/durationInSeconds` e `/avails/ads/durationInSeconds`  | Número |  | 
|   extensions  |  Extensões personalizadas do VAST que os servidores de anúncios usam. Para obter mais informações sobre extensões, consulte a seção 3.18 da [especificação VAST 4.2](https://iabtechlab.com/standards/vast/). Caminho: `/avails/ads/extensions` Mapeamento VAST: `VAST/Ad/InLine/Extensions`  | Array | [] | 
|   icons  |  Elementos de ícone para o anúncio. Caminho: `/avails/ads/icons` Mapeamento VAST: `VAST/Ad/InLine/Creatives/Creative/Linear/Icons`  | Array |  | 
|   mediaFiles  |  Vídeo e outros recursos de que o player precisa para que o anúncio seja disponibilizado. Caminho: `/avails/ads/mediaFiles`  | Objeto |  | 
|   nonLinearAvails  |  Matriz de objetos não lineares e disponíveis. Caminho: `/nonLinearAvails`  | Array |  | 
|   executableResource  |  Recursos executáveis para verificação. Caminho: `/avails/ads/adVerifications/executableResource` Mapeamento VAST: `VAST/Ad/InLine/AdVerifications/Verification/ExecutableResource`  | Array |  | 
|   javaScriptResource  |  JavaScript recursos para verificação. Caminho: `/avails/ads/adVerifications/javaScriptResource` Mapeamento VAST: `VAST/Ad/InLine/AdVerifications/Verification/JavaScriptResource`  | Array |  | 
|   trackingEvents  |  Rastreamento de eventos para verificação ou anúncios complementares. Caminho: `/avails/ads/adVerifications/trackingEvents` ou `/avails/ads/companionAds/trackingEvents`  | Array |  | 
|   vendor  |  Fornecedor de verificação. Caminho: `/avails/ads/adVerifications/vendor` Mapeamento VAST: `VAST/Ad/InLine/AdVerifications/Verification/@vendor`  | String |  | 
|   uri  |  URI que aponta para um ativo executável, um ativo de vídeo ou um endpoint de rastreamento. Caminho: vários locais no esquema Mapeamento VAST: vários elementos CDATA no VAST  | String | https://tracking.example.com/impression | 
|   verificationParameters  |  Parâmetros de verificação. Caminho: `/avails/ads/adVerifications/verificationParameters` Mapeamento VAST: `VAST/Ad/InLine/AdVerifications/Verification/VerificationParameters`  | String |  | 
|   attributes  |  Atributos de anúncios complementares, como dimensões e modo de renderização. Caminho: `/avails/ads/companionAds/attributes`  | Objeto |  | 
|   companionClickThrough  |  Um URL para a página do anunciante que o media player abre quando o espectador clica no anúncio complementar. Caminho: `/avails/ads/companionAds/companionClickThrough` Mapeamento VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickThrough`  | String | https://aws.amazon.com/ | 
|   companionClickTracking  |  O URL de rastreamento da `companionClickThrough` propriedade. Caminho: `/avails/ads/companionAds/companionClickTracking` Mapeamento VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickTracking`  | String | https://myads.com/beaconing/event=clicktracking | 
|   htmlResource  |  O HTML codificado em CDATA que é inserido diretamente na página HTML do provedor de streaming. Caminho: `/avails/ads/companionAds/htmlResource` Mapeamento VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/HTMLResource`  | String | <\$1[CDATA[<\$1doctype html><html><head><meta name=\$1"viewport\$1" content=\$1"width=1, initial-scale=1.0, minimum-scale=1.0,...]]> | 
|   iFrameResource  |  O URL de um arquivo de recurso HTML que o provedor de streaming carrega em um iframe. Caminho: `/avails/ads/companionAds/iFrameResource` Mapeamento VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/iFrameResource`  | String |  | 
|   sequence  |  O valor da sequência especificado para o criativo na resposta VAST. Caminho: `/avails/ads/companionAds/sequence`  | String | 1 | 
|   startTime  |  A posição da hora, no formato ISO 8601 segundos. Para o HLS, isso é relativo ao início da sessão de reprodução. Para o DASH, isso é relativo ao AST (Hora de Início da Disponibilidade) do manifesto. A resposta inclui horários de início de toda a disponibilidade de anúncios e de cada anúncio e beacon. Caminho: `/avails/startTime` e `/avails/ads/startTime`  | String | PT18.581355S | 
|   startTimeInSeconds  |  A posição da hora, em formato de segundos. Para o HLS, isso é relativo ao início da sessão de reprodução. Para o DASH, isso é relativo ao AST (Hora de Início da Disponibilidade) do manifesto. A resposta inclui horários de início de toda a disponibilidade de anúncios e de cada anúncio e beacon. Caminho: `/avails/startTimeInSeconds` e `/avails/ads/startTimeInSeconds`  | Número | 18.581 | 
|   eventId  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   event  |  O nome do evento de rastreamento. Caminho: `/avails/ads/adVerifications/trackingEvents/event` ou `/avails/ads/companionAds/trackingEvents/event`  | String | impression, start, firstQuartile, midpoint, thirdQuartile, complete | 
|   beaconUrls  |  O URL para o qual MediaTailor envia o sinalizador de anúncios. Caminho: `/avails/ads/mediaFiles/trackingEvents/beaconUrls`  | Array |  | 
|   bitrate  |  A taxa de bits do ativo de vídeo. Essa propriedade normalmente não é incluída em um ativo executável.  | String | 2048 | 
|   companionAds  |  Uma ou mais especificações complementares de conteúdo publicitário, cada uma das quais especifica um arquivo de recurso a ser usado. Os anúncios complementares acompanham a disponibilidade do anúncio e fornecem conteúdo, como uma moldura ao redor do anúncio ou um banner, para exibição próximo ao vídeo. Caminho: `/avails/ads/companionAds`  | Array | [] | 
|   creativeId  |  O valor do `Id` atributo da `Creative` tag do anúncio.  | String | creative-1 | 
|   creativeSequence  |  A sequência na qual um anúncio deve ser reproduzido, de acordo com o `Ad@id` valor na resposta VAST.  | String | 1 | 
|   dashAvailabilityStartTime  |  Para live/dynamic DASH, o manifesto `MPD@availabilityStartTime` da origem.  | String | 2022-10-05T19:38:39.263Z | 
|   delivery  |  Indica se um `streaming` protocolo `progressive` ou está sendo usado.  | String | progressive | 
|   eventType  |  O tipo de farol. Caminho: `/avails/ads/mediaFiles/trackingEvents/eventType`  | String | impression | 
|   height  |  A altura, em pixels, do ativo de vídeo.  | String | 360 | 
|   hlsAnchorMediaSequenceNumber  |  O número da sequência de mídia da sequência de first/oldest mídia vista no manifesto de origem do HLS.  | String | 77 | 
|   maintainAspectRatio  |  Indica se a proporção do vídeo deve ser mantida durante o dimensionamento.  | Booleano | true | 
|   mediaFilesList  |  Especifica o vídeo e outros recursos de que o player precisa para que o anúncio seja disponibilizado. Caminho: `/avails/ads/mediaFiles/mediaFilesList`  | Array | [] | 
|   mediaFileUri  |  URI que aponta para um ativo executável ou um ativo de vídeo.  | String | https://myad.com/ad/ad134/vpaid.js | 
|   mediaType  |  O tipo MIME do ativo criativo ou complementar.  | String | video/mp4 | 
|   meta  |  Metadados adicionais para o anúncio.  | Objeto |  | 
|   mezzanine  |  O URL do MP4 ativo mezanino, especificado se o anúncio VPAID incluir um. Caminho: `/avails/ads/mediaFiles/mezzanine`  | String | https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4 | 
|   nextToken  |  O valor do token que aponta para a próxima página de resultados, quando esse valor existe.  | String | UFQzOS44NzNTXzIwMjMtMDctMzFUMTY6NTA6MDYuMzUwNjI2ODQ1Wl8x | 
|   nonLinearAds  |  Anúncios não lineares que aparecem ao lado do conteúdo do vídeo.  | Array | [] | 
|   nonLinearAdsList  |  Lista de anúncios não lineares.  | Array | [] | 
|   scalable  |  Indica se o vídeo deve ser dimensionado para outras dimensões.  | Booleano | true | 
|   skipOffset  |  O valor do tempo que identifica quando o jogador disponibiliza os controles de salto para o usuário.  | String | 00:00:05 | 
|   staticResource  |  O URL de um arquivo criativo estático usado para o componente de anúncio. Caminho: `/avails/ads/companionAds/staticResource`  | String | https://very-interactive-ads.com/campaign1/file.json?c=1019113602 | 
|   vastAdId  |  O valor do `Id` atributo da `Ad` tag.  | String | ad1 | 
|   width  |  A largura, em pixels, do ativo de vídeo.  | String | 640 | 
|   xPosition  |  A posição horizontal de um ícone dentro do player de vídeo. Pode ser um valor de pixel específico ou uma posição como “esquerda” ou “direita”. Caminho: `/avails/ads/icons/attributes/xPosition`  | String | left ou 10 | 
|   yPosition  |  A posição vertical de um ícone no player de vídeo. Pode ser um valor de pixel específico ou uma posição como “superior” ou “inferior”. Caminho: `/avails/ads/icons/attributes/yPosition`  | String | top ou 10 | 
|   iconClicks  |  Contém informações de clique e rastreamento de um ícone. Caminho: `/avails/ads/icons/iconClicks`  | Objeto |  | 
|   iconClickThrough  |  Um URL para a página do anunciante que o media player abre quando o espectador clica no ícone. Caminho: `/avails/ads/icons/iconClicks/iconClickThrough`  | String | https://advertiser.com/landing-page | 
|   iconClickTracking  |  O URL de rastreamento da `iconClickThrough` propriedade. Caminho: `/avails/ads/icons/iconClicks/iconClickTracking`  | Objeto |  | 
|   iconClickFallbackImages  |  Uma matriz de imagens alternativas a serem exibidas se o ícone não puder ser exibido. Caminho: `/avails/ads/icons/iconClicks/iconClickFallbackImages`  | Array |  | 
|   iconViewTracking  |  O URL para rastrear quando um ícone é visualizado. Caminho: `/avails/ads/icons/iconViewTracking`  | String | https://tracking.example.com/icon-view | 
|   offset  |  O intervalo de tempo em que um ícone deve aparecer durante a reprodução do anúncio. Caminho: `/avails/ads/icons/attributes/offset`  | String | 00:00:05 | 
|   program  |  O programa ou iniciativa associado ao ícone, como "AdChoices”. Caminho: `/avails/ads/icons/attributes/program`  | String | AdChoices | 
|   pxratio  |  A proporção de pixels do ícone ou anúncio complementar, usada para exibições de alto DPI. Caminho: `/avails/ads/icons/attributes/pxratio` ou `/avails/ads/companionAds/attributes/pxratio`  | String | 1 ou 2 | 
|   type  |  O tipo de recurso ou extensão. Caminho: `/avails/ads/extensions/type` ou `/avails/ads/adVerifications/executableResource/type`  | String | text/javascript | 
|   content  |  O conteúdo de uma extensão. Caminho: `/avails/ads/extensions/content`  | String |  | 
|   language  |  A linguagem de programação de um recurso executável. Caminho: `/avails/ads/adVerifications/executableResource/language`  | String | javascript | 
|   browserOptional  |  Indica se o suporte do navegador é necessário para o JavaScript recurso. Caminho: `/avails/ads/adVerifications/javaScriptResource/browserOptional`  | String | true ou false | 
|   id  |  Um identificador para vários elementos no esquema. Caminho: `/avails/ads/companionAds/attributes/id` ou `/avails/ads/icons/iconClicks/iconClickTracking/id`  | String | companion-1 | 
|   assetHeight  |  A altura do ativo publicitário complementar. Caminho: `/avails/ads/companionAds/attributes/assetHeight`  | String | 250 | 
|   assetWidth  |  A largura do ativo do anúncio complementar. Caminho: `/avails/ads/companionAds/attributes/assetWidth`  | String | 300 | 
|   expandedHeight  |  A altura do anúncio complementar quando expandido. Caminho: `/avails/ads/companionAds/attributes/expandedHeight`  | String | 600 | 
|   expandedWidth  |  A largura do anúncio complementar quando expandido. Caminho: `/avails/ads/companionAds/attributes/expandedWidth`  | String | 600 | 
|   renderingMode  |  O modo de renderização do anúncio complementar. Caminho: `/avails/ads/companionAds/attributes/renderingMode`  | String | default ou transparent | 
|   adSlotId  |  O ID do espaço publicitário em que o anúncio complementar deve ser exibido. Caminho: `/avails/ads/companionAds/attributes/adSlotId`  | String | banner-1 | 
|   creativeType  |  O tipo MIME do ativo criativo. Caminho: `/avails/ads/icons/staticResource/creativeType`  | String | image/png | 

# Cronometragem da atividade de rastreamento de anúncios
<a name="ad-reporting-client-side-ad-tracking-schema-activity-timing"></a>

Com os relatórios do lado do cliente, o jogador deve emitir eventos de rastreamento (beacons) com um nível de precisão. Usando o esquema de rastreamento MediaTailor do lado do cliente, você pode garantir que, para cada disponibilidade, anúncio, complemento, sobreposição e eventos de rastreamento, as informações de tempo e duração estejam presentes e em formas diferentes.

Use os seguintes pares de MediaTailor chave/valor para que o player concilie com precisão as atividades de eventos publicitários, como eventos de rastreamento, com a posição de reprodução:
+ [startTime](ad-reporting-client-side-ad-tracking-schema.md#property-starttime) 
+  [startTimeInSeconds](ad-reporting-client-side-ad-tracking-schema.md#property-starttimeinseconds) 
+  [adProgramDateTime](ad-reporting-client-side-ad-tracking-schema.md#property-adprogramdatetime) 
+  [adID](ad-reporting-client-side-ad-tracking-schema.md#property-adid)/[eventId](ad-reporting-client-side-ad-tracking-schema.md#property-eventid) 

O HLS e o DASH implementam o valor de `startTime` e `startTimeInSeconds` de forma diferente:
+ HLS - Os `startTime` valores são relativos ao início da sessão de reprodução. O início da sessão de reprodução é definido como hora zero. O anúncio `startTime` é a soma dos valores cumulativos de todas as durações do `EXT-INF` segmento até a disponibilidade. O número de sequência de mídia do segmento em que o anúncio ou o evento de rastreamento se enquadra também corresponde à `adId` ou `eventId` na resposta de rastreamento do lado do cliente.
+ DASH:
  + Manifestos dinâmicos/dinâmicos - Os `startTime` valores são relativos aos `MPD@availabilityStartTime` do manifesto DASH. `MPD@avaibilityStartTime`É uma âncora de temporização para todas as MediaTailor sessões que consomem o stream.
  + Manifestos VOD/estáticos - Os `startTime` valores são relativos ao início da sessão de reprodução. O início da sessão de reprodução é definido como hora zero. Cada anúncio dentro do avail está contido em seu próprio `Period` elemento. O `Period` elemento tem um `@start` atributo com um valor igual aos `startTime` valores na carga de rastreamento do lado do cliente. `PeriodId`Também corresponde à `adId` ou `eventId` na resposta de rastreamento do lado do cliente.

**Example HLS:**  
No exemplo a seguir, a MediaTailor sessão foi iniciada e o manifesto a seguir é o primeiro exibido ao cliente:  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:4603263
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:23.295678Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_34.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:27.306345Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_35.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:31.317012Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_36.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:35.327679Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_37.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:39.338346Z
#EXTINF:2.538667,
https://123.cloudfront.net/out/v1/index_1_38.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:41.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:43.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00002.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:45.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00003.ts
```
Na carga útil JSON de rastreamento do lado do cliente, os seguintes valores se aplicam:  
+  `startTime`: `"PT18.581355S"` 
+  `startTimeInSeconds`: `18.581` 
+  `availProgramDateTime`: `"2023-05-03T21:24:41.453Z"` 
+  `adId`: `4603269` 

**Example DASH:**  
No exemplo a seguir, a MediaTailor sessão recebe uma lista intermediária no manifesto. Observe que o valor do `@start` atributo do segundo período, que é o período do anúncio, tem um valor relativo ao `MPD@availabilityStartTime` valor. Esse valor é o que é MediaTailor gravado nos `startTime` campos de resposta de rastreamento do lado do cliente para todas as sessões.  

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2022-10-05T19:38:39.263Z" minBufferTime="PT10S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-05-03T22:06:48.411Z" suggestedPresentationDelay="PT10S" timeShiftBufferDepth="PT1M30S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://123.channel-assembly.mediatailor.us-west-2.amazonaws.com/v1/channel/my-channel/</BaseURL>
    <Location>https://123.cloudfront.net/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/MediaTailor-Live-HLS-DASH/channel/channel1/dash.mpd?aws.sessionId=794a15e0-2a7f-4941-a537-9d71627984e5</Location>
    <Period id="1683151479166_1" start="PT5042H25M59.903S" xmlns="urn:mpeg:dash:schema:mpd:2011">
        <BaseURL>https://123.cloudfront.net/out/v1/f1a946be8efa45b0931ea35c9055fb74/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
    <Period id="1683151599194_1_1" start="PT5042H27M59.931S">
        <BaseURL>https://123.cloudfront.net/tm/94063eadf7d8c56e9e2edd84fdf897826a70d0df/fpc5omz5wzd2rdepgieibp23ybyqyrme/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
</MPD>
```
Na carga útil JSON de rastreamento do lado do cliente, os seguintes valores se aplicam:  
+  `startTime`: `"PT5042H27M59.931S"` 
+  `startTimeInSeconds`: `18152879.931` 
+  `availProgramDateTime`: *null* 
+  `adId`: `1683151599194_1_1` 

# Controles e funcionalidades do player para rastreamento de anúncios do lado do cliente
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls"></a>

MediaTailor os metadados de rastreamento do lado do cliente oferecem suporte a vários controles e funcionalidades do player. A lista a seguir descreve os controles populares do jogador.

**Topics**
+ [Esfregando](#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)
+ [Adicionar cronômetro de contagem regressiva](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ [Anúncios ignoráveis](#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ [Clique no anúncio](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ [Anúncios complementares](#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)
+ [Anúncios interativos (SIMID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads)
+ [Anúncios interativos (VPAID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads)
+ [Ícones para o Google Por que esse anúncio (WTA)](#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)

## Esfregando
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing"></a>

Para aprimorar a experiência de reprodução, o player pode exibir as posições do anúncio na linha do tempo de reprodução. MediaTailor disponibiliza essas posições do anúncio na forma de `startTimeInSeconds` valores na resposta de rastreamento do lado do cliente.

**nota**  
Alguns provedores de streaming evitam ultrapassar a posição de um anúncio.

![\[Captura de tela mostrando as posições de MediaTailor marcação na linha do tempo do vídeo em que os anúncios são exibidos.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/scrubbing.png)


A seguinte resposta JSON da carga útil de rastreamento do lado do cliente mostra a hora de início do avail (ad break) dentro do objeto JSON raiz da matriz avails. O player usa esses dados para mostrar a localização do intervalo publicitário na linha do tempo do jogador, em 28 segundos.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [...],
      "availId": "7",
      "availProgramDateTime": null,
      "duration": "PT30S",
      "durationInSeconds": 30,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT28S",
      "startTimeInSeconds": 28
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x",
  "nonLinearAvails": []
}
```

## Adicionar cronômetro de contagem regressiva
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer"></a>

Com MediaTailor você pode usar um cronômetro de contagem regressiva de anúncios para ajudar a manter seu público envolvido durante a visualização do intervalo de anúncios. O público pode usar o cronômetro para entender quando o intervalo publicitário termina e o programa é retomado.

![\[Captura de tela mostrando a MediaTailor exibição de um cronômetro de contagem regressiva de anúncios, que informa ao público o tempo restante até que o programa seja retomado.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad-countdown-timer.png)


Os elementos nos metadados de rastreamento do lado do cliente que desempenham um papel no cronômetro de contagem regressiva do anúncio são`startTime`,, e. `startTimeInSeconds` `duration` `durationInSeconds` O player usa esses metadados, junto com o tempo decorrido da sessão que ele rastreia separadamente, para determinar quando exibir o cronômetro e o valor a partir do qual ele deve ser contado.

A seguinte resposta JSON da carga útil de rastreamento do lado do cliente mostra as informações necessárias para exibir um cronômetro de contagem regressiva de anúncios.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [...],
      "availId": "7",
      "availProgramDateTime": null,
      "duration": "PT30S",
      "durationInSeconds": 30,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT28S",
      "startTimeInSeconds": 28
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x",
  "nonLinearAvails": []
}
```

Quando o tempo decorrido da sessão atinge o horário de início do avail, o jogador exibe uma contagem regressiva com um valor que corresponde à duração do avail. O valor do cronômetro de contagem regressiva diminui à medida que o tempo decorrido avança além do horário de início do item.

**Example fórmula: cronômetro de contagem regressiva para HLS (ao vivo e VOD) e DASH (VOD)**  
+ `session_start_time`= a soma de todos os valores de `EXT-INF` duração - o valor da duração das três sequências de `EXT-INF` mídia mais recentes
+ valor do cronômetro = `duration` - (`session_elapsed_time`-`startTime`)

![\[Diagrama mostrando o cálculo do cronômetro de contagem regressiva do anúncio, com base no horário de início da sessão e no horário de início do Avail, para manifestos HLS (ao vivo e VOD) e DASH (VOD).\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad-countdown-timer-hls-dash-vod.png)


**Example fórmula: cronômetro de contagem regressiva para DASH (ao vivo)**  
+ `session_start_time`= (segmento mais recente `startTime` \$1`duration`)/`timescale`- `MPD@suggestedPresentationDelay`
+ valor do cronômetro = `duration` - (`session_elapsed_time`-`startTime`)

![\[Diagrama mostrando o cálculo do cronômetro de contagem regressiva do anúncio, com base no horário de início da sessão e no horário de início do Avail, para manifestos ao vivo do DASH.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad-countdown-timer-dash-live.png)


## Anúncios ignoráveis
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads"></a>

*Anúncios ignoráveis* são espaços publicitários que permitem ao espectador pular parte do anúncio para retomar a visualização do programa. No VAST, o `Linear@skipOffset` atributo identifica um anúncio que pode ser ignorado. 

A resposta VAST a seguir mostra como usar um anúncio que pode ser ignorado:

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear skipoffset="00:00:05">
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

A seguinte resposta JSON da carga útil de rastreamento do lado do cliente mostra os metadados do anúncio dentro da matriz. `ads` A matriz contém o `skipOffset` valor MediaTailor obtido da resposta VAST.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:11:40.693Z",
          "adSystem": "2.0",
          "adTitle": "AD-skiing-15",
          "adVerifications": [],
          "companionAds": [...],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT15.015S",
          "durationInSeconds": 15.015,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": "00:00:05",
          "startTime": "PT9.943S",
          "startTimeInSeconds": 9.943,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserverbeaconing.com/v1/impression"
              ],
              "duration": "PT15.015S",
              "durationInSeconds": 15.015,
              "eventId": "2697726",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT9.943S",
              "startTimeInSeconds": 9.943
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2697726",
      "availProgramDateTime": "2023-07-31T16:11:40.693Z",
      "duration": "PT15.015S",
      "durationInSeconds": 15.015,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT9.943S",
      "startTimeInSeconds": 9.943
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "",
  "nonLinearAvails": []
}
```

## Clique no anúncio
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough"></a>

Os cliques URIs permitem que os anunciantes avaliem o sucesso de um anúncio em atrair a atenção dos espectadores. Depois que um espectador clica no quadro de vídeo ativo de um anúncio em andamento, um navegador da Web abre o URI da página inicial ou da página de destino da campanha do anunciante. O desenvolvedor do player determina o comportamento do clique, como sobrepor um botão ou rótulo no vídeo do anúncio, com uma mensagem para clicar para saber mais. Os desenvolvedores do player geralmente pausam o vídeo do anúncio depois que os espectadores clicam no quadro ativo do vídeo.

![\[Captura de tela de um anúncio clicado em um player de vídeo. Os espectadores clicam no quadro do vídeo. O player pausa o vídeo e, em seguida, abre um navegador da Web para levar o espectador à página inicial do anunciante ou à página de destino da campanha.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/ad-clickthrough.png)


MediaTailor pode analisar e disponibilizar qualquer evento de clique de vídeo linear URLs retornado na resposta VAST. A resposta VAST a seguir mostra um exemplo de clique em um anúncio.

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
            <VideoClicks>
              <ClickThrough id="EMT"><![CDATA[https://aws.amazon.com]]></ClickThrough>
              <ClickTracking id="EMT"><![CDATA[https://myads.com/beaconing/event=clicktracking]]></ClickTracking>
            </VideoClicks>
          </Linear>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

A seguinte resposta JSON da carga útil de rastreamento do lado do cliente mostra como MediaTailor exibe o clique e o rastreamento de cliques dentro da matriz. URLs `trackingEvents` O tipo de `clickThrough` evento representa o anúncio clicável e o tipo de `clickTracking` evento representa o URL de rastreamento de cliques.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "1",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}
```

## Anúncios complementares
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads"></a>

Um *anúncio complementar* aparece ao lado de um criativo linear. Use anúncios complementares para aumentar a eficácia de um anúncio exibindo informações sobre produtos, logotipos e marcas. O anúncio gráfico pode apresentar códigos de Resposta Rápida (QR) e áreas clicáveis para promover o engajamento do público.

MediaTailor suporta anúncios complementares na resposta VAST. Ele pode passar por metadados de`StaticResource`,`iFrameResource`, e `HTMLResource` nós, respectivamente.

A resposta VAST a seguir mostra um exemplo de localização e formato do anúncio linear e do anúncio complementar.

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:10</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
        <Creative id="2" sequence="1">
          <CompanionAds>
            <Companion id="2" width="300" height="250">
              <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/9973499273]]></StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView"><![CDATA[https://beacon.com/1]]></Tracking>
              </TrackingEvents>
              <CompanionClickThrough><![CDATA[https://beacon.com/2]]></CompanionClickThrough>
            </Companion>
            <Companion id="3" width="728" height="90">
              <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/1238901823]]></StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView"><![CDATA[https://beacon.com/3]]></Tracking>
              </TrackingEvents>
              <CompanionClickThrough><![CDATA[https://beacon.com/4]]></CompanionClickThrough>
            </Companion>
          </CompanionAds>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

Os dados aparecem na resposta de rastreamento do lado do cliente na `/avail/x/ads/y/companionAds` lista. Cada criação linear pode conter até 6 anúncios complementares. Conforme mostrado no exemplo abaixo, os anúncios complementares aparecem em uma lista

**nota**  
Como prática recomendada, os desenvolvedores de aplicativos devem implementar a lógica para remover ou descarregar explicitamente o anúncio complementar no final do criativo.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "0",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "EMT",
          "adTitle": "sample",
          "adVerifications": [],
          "companionAds": [
            {
              "adParameters": null,
              "altText": null,
              "attributes": {
                "adSlotId": null,
                "apiFramework": null,
                "assetHeight": null,
                "assetWidth": null,
                "expandedHeight": null,
                "expandedWidth": null,
                "height": "250",
                "id": "2",
                "pxratio": null,
                "renderingMode": null,
                "width": "300"
              },
              "companionClickThrough": "https://beacon.com/2",  
              "companionClickTracking": null,
              "htmlResource": null,
              "iFrameResource": null,
              "sequence": "1",
              "staticResource": "https://emt.com/companion/9973499273",
              "trackingEvents": [
                {
                  "beaconUrls": [
                    "https://beacon.com/1"
                  ],
                  "eventType": "creativeView"
                }
              ]
            },
            {
              "adParameters": null,
              "altText": null,
              "attributes": {
                "adSlotId": null,
                "apiFramework": null,
                "assetHeight": null,
                "assetWidth": null,
                "expandedHeight": null,
                "expandedWidth": null,
                "height": "90",
                "id": "3",
                "pxratio": null,
                "renderingMode": null,
                "width": "728"
              },
              "companionClickThrough": "https://beacon.com/4",
              "companionClickTracking": null,
              "htmlResource": null,
              "iFrameResource": null,
              "sequence": "1",
              "staticResource": "https://emt.com/companion/1238901823",
              "trackingEvents": [
                {
                  "beaconUrls": [
                    "https://beacon.com/3"
                  ],
                  "eventType": "creativeView"
                }
              ]
            }
          ],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT10S",
          "durationInSeconds": 10,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT0S",
          "startTimeInSeconds": 0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://beacon.com/impression/1"
              ],
              "duration": "PT10S",
              "durationInSeconds": 10,
              "eventId": "0",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT0S",
              "startTimeInSeconds": 0
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "0",
      "availProgramDateTime": null,
      "duration": "PT10S",
      "durationInSeconds": 10,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT0S",
      "startTimeInSeconds": 0
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMToxMDowOC42NzQ4NDA1NjJaXzE%3D",
  "nonLinearAvails": []
}
```

## Anúncios interativos (SIMID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads"></a>

SecureInteractive O *Media Interface Definition* (SIMID) é um padrão para publicidade interativa que foi introduzido no padrão VAST 4.x do Interactive Advertising Bureau (IAB). O SIMID separa o carregamento de elementos interativos do criativo linear primário no player, referenciando ambos na resposta VAST. MediaTailor insere o criativo principal para manter a experiência de reprodução e coloca os metadados dos componentes interativos na resposta de rastreamento do lado do cliente.

No exemplo de resposta VAST 4 a seguir, a carga útil do SIMID está dentro do `InteractiveCreativeFile` nó.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>SampleAdSystem</AdSystem>
      <AdTitle>Linear SIMID Example</AdTitle>
      <Description>SIMID example</Description>
      <Error>https://www.beacons.com/error</Error>
      <Impression>https://www.beacons.com/impression</Impression>
      <Creatives>
        <Creative sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
                ...
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="123">https://aws.amazon.com</ClickThrough>
              <ClickTracking id="123">https://www.beacons.com/click</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4">
                                https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4
                            </MediaFile>
              <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
                                https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html
                            </InteractiveCreativeFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
```

Na resposta VAST 3 a seguir, a carga útil do SIMID está dentro do `Extensions` nó.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>SampleAdSystem</AdSystem>
      <AdTitle>Linear SIMID Example</AdTitle>
      <Description>SIMID example</Description>
      <Impression>https://www.beacons.com/impression</Impression>
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
                ...
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="123">https://aws.amazon.com</ClickThrough>
              <ClickTracking id="123">https://myads.com/beaconing/event=clicktracking</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4">
                                https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4
                            </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
      <Extensions>
        <Extension type="InteractiveCreativeFile">
          <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
            https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html
          </InteractiveCreativeFile>
        </Extension>
      </Extensions>
    </InLine>
  </Ad>
</VAST>
```

Na seguinte resposta de rastreamento do lado do cliente, os dados do SIMID aparecem na lista. `/avails/x/ads/y/extensions`

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "Linear SIMID Example",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<InteractiveCreativeFile type=\"text/html\" apiFramework=\"SIMID\" variableDuration=\"true\">\nhttps://interactive-ads.com/interactive-media-ad-sample/sample_simid.html</InteractiveCreativeFile>",
              "type": "InteractiveCreativeFile"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}
```

## Anúncios interativos (VPAID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads"></a>

A *definição de interface de anúncio do player de vídeo* (VPAID) especifica o protocolo entre o anúncio e o player de vídeo que permite a interatividade do anúncio e outras funcionalidades. Para transmissões ao vivo, MediaTailor suporta o formato VPAID agrupando segmentos de ardósia durante a disponibilidade e colocando metadados para os criativos do VPAID na resposta de rastreamento do lado do cliente que o player de vídeo consome. O player baixa os arquivos VPAID, reproduz o criativo linear e executa os scripts do cliente. O jogador nunca *deve* jogar os segmentos de ardósia.

**nota**  
O VPAID está obsoleto a partir do VAST 4.1.

![\[Diagrama da reprodução de anúncios VPAID. MediaTailor costura segmentos de ardósia durante a duração disponível na linha do tempo do conteúdo. O jogador muda para o ativo VPAID durante o período de disponibilidade.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/interactive-ads-vpaid.png)


O exemplo a seguir mostra o conteúdo VPAID na resposta VAST.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>GDFP</AdSystem>
      <AdTitle>VPAID</AdTitle>
      <Description>Vpaid Linear Video Ad</Description>
      <Error>http://www.example.com/error</Error>
      <Impression>http://www.example.com/impression</Impression>
      <Creatives>
        <Creative sequence="1">
          <Linear>
            <Duration>00:00:00</Duration>
            <TrackingEvents>
              <Tracking event="start">http://www.example.com/start</Tracking>
              <Tracking event="firstQuartile">http://www.example.com/firstQuartile</Tracking>
              <Tracking event="midpoint">http://www.example.com/midpoint</Tracking>
              <Tracking event="thirdQuartile">http://www.example.com/thirdQuartile</Tracking>
              <Tracking event="complete">http://www.example.com/complete</Tracking>
              <Tracking event="mute">http://www.example.com/mute</Tracking>
              <Tracking event="unmute">http://www.example.com/unmute</Tracking>
              <Tracking event="rewind">http://www.example.com/rewind</Tracking>
              <Tracking event="pause">http://www.example.com/pause</Tracking>
              <Tracking event="resume">http://www.example.com/resume</Tracking>
              <Tracking event="fullscreen">http://www.example.com/fullscreen</Tracking>
              <Tracking event="creativeView">http://www.example.com/creativeView</Tracking>
              <Tracking event="acceptInvitation">http://www.example.com/acceptInvitation</Tracking>
            </TrackingEvents>
            <AdParameters><![CDATA[ {"videos":[ {"url":"https://my-ads.com/interactive-media-ads/media/media_linear_VPAID.mp4","mimetype":"video/mp4"}]} ]]></AdParameters>
            <VideoClicks>
              <ClickThrough id="123">http://google.com</ClickThrough>
              <ClickTracking id="123">http://www.example.com/click</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" apiFramework="VPAID" type="application/javascript" width="640" height="480"> https://googleads.github.io/googleads-ima-html5/vpaid/linear/VpaidVideoAd.js </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
```

O exemplo a seguir mostra as informações de rastreamento.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "1",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "2922274",
          "adParameters": "",
          "adProgramDateTime": "2023-08-14T19:49:53.998Z",
          "adSystem": "Innovid Ads",
          "adTitle": "VPAID",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT16.016S",
          "durationInSeconds": 16.016,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [
              {
                "apiFramework": "VPAID",
                "bitrate": 0,
                "codec": null,
                "delivery": "progressive",
                "height": 9,
                "id": "",
                "maintainAspectRatio": false,
                "maxBitrate": 0,
                "mediaFileUri": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc=",
                "mediaType": "application/javascript",
                "minBitrate": 0,
                "scalable": false,
                "width": 16
              }
            ],
            "mezzanine": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc="
          },
          "skipOffset": null,
          "startTime": "PT8M42.289S",
          "startTimeInSeconds": 522.289,
          "trackingEvents": [
            {
              "beaconUrls": [
                "about:blank"
              ],
              "duration": "PT16.016S",
              "durationInSeconds": 16.016,
              "eventId": "2922274",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT8M42.289S",
              "startTimeInSeconds": 522.289
            }
          ],
          "vastAdId": "1h41kg"
        }
      ],
      "availId": "2922274",
      "availProgramDateTime": "2023-08-14T19:49:53.998Z",
      "duration": "PT16.016S",
      "durationInSeconds": 16.016,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT8M42.289S",
      "startTimeInSeconds": 522.289
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQ4TTQyLjI4OVNfMjAyMy0wOC0xNFQxOTo1MDo0MS4zOTc5MjAzODVaXzE%3D",
  "nonLinearAvails": []
}
```

## Ícones para o Google Por que esse anúncio (WTA)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta"></a>

*AdChoices*é um padrão do setor que fornece aos espectadores informações sobre os anúncios que eles veem, incluindo como esses anúncios foram segmentados para eles.

![\[Logotipo do Google Why This Ad (WTA). A WTA informa os espectadores sobre os anúncios que eles veem, incluindo como esses anúncios foram segmentados para eles.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/google-wta.png)


A API de rastreamento MediaTailor do lado do cliente suporta metadados de ícones transportados no nó de extensões VAST da resposta VAST. Para obter mais informações sobre o WTA na resposta VAST, consulte [este exemplo de resposta VAST XML](https://storage.googleapis.com/interactive-media-ads/ad-tags/ima_wta_sample_vast_3.xml).

**nota**  
MediaTailor atualmente suporta apenas a versão 3 do VAST.

```
<VAST>
    <Ad>  
    <InLine>  
       ...
      <Extensions>
        <Extension type="IconClickFallbackImages">
          <IconClickFallbackImages program="GoogleWhyThisAd">
            <IconClickFallbackImage width="400" height="150">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]></StaticResource>
            </IconClickFallbackImage>
          </IconClickFallbackImages>
          <IconClickFallbackImages program="AdChoices">
            <IconClickFallbackImage width="400" height="150">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]></StaticResource>
            </IconClickFallbackImage>
            <IconClickFallbackImage width="800" height="300">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]></StaticResource>
            </IconClickFallbackImage>
          </IconClickFallbackImages>
        </Extension>
      </Extensions>
    </InLine>
  </Ad>
</VAST>
```

O exemplo a seguir mostra a resposta de rastreamento do lado do cliente na `/avails/x/ads/y/extensions` lista.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "0",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "GDFP",
          "adTitle": "Google Why This Ad VAST 3 Sample",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "7891011",
          "creativeSequence": "1",
          "duration": "PT10S",
          "durationInSeconds": 10,
          "extensions": [
            {
              "content": "<IconClickFallbackImages program=\"GoogleWhyThisAd\">      
                          <IconClickFallbackImage height=\"150\" width=\"400\">      
                          <AltText>Alt icon fallback</AltText>      
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]>
                          </StaticResource>     
                          </IconClickFallbackImage>    
                          </IconClickFallbackImages>     
                          <IconClickFallbackImages program=\"AdChoices\">     
                          <IconClickFallbackImage height=\"150\" width=\"400\">     
                          <AltText>Alt icon fallback</AltText>       
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]>
                          </StaticResource>      
                          </IconClickFallbackImage>      
                          <IconClickFallbackImage height=\"300\" width=\"800\">       
                          <AltText>Alt icon fallback</AltText>       
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]>
                          </StaticResource>      
                          </IconClickFallbackImage>     
                          </IconClickFallbackImages>",
              "type": "IconClickFallbackImages"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": "00:00:03",
          "startTime": "PT0S",
          "startTimeInSeconds": 0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://example.com/view"
              ],
              "duration": "PT10S",
              "durationInSeconds": 10,
              "eventId": "0",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT0S",
              "startTimeInSeconds": 0
            }
          ],
          "vastAdId": "123456"
        }
      ],
      "availId": "0",
      "availProgramDateTime": null,
      "duration": "PT10S",
      "durationInSeconds": 10,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT0S",
      "startTimeInSeconds": 0
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMDo0MToxNy45NDE4MDM0NDhaXzE%3D",
  "nonLinearAvails": []
}
```

# Sinalização do lado do cliente
<a name="ad-reporting-client-side-beaconing"></a>

Com o `startTimeInSeconds` elemento de rastreamento do lado do cliente, você pode usá-lo MediaTailor para apoiar a temporização dos beacons.

A resposta JSON a seguir mostra os principais tipos de beacon: impressões, início, quartis e conclusão.

**nota**  
As diretrizes de medição de impressão em vídeo do Interactive Advertising Bureau (IAB) afirmam que uma impressão exige que o conteúdo do anúncio seja carregado no lado do cliente e, no mínimo, comece a ser renderizado no player. Para obter mais informações, consulte [Modelo de veiculação de anúncios em vídeo digital (VAST)](https://www.iab.com/guidelines/vast/) no site do IAB.

```
{
  "avails": [
    {
      "ads": [
        {
          "adId": "8104385",
          "duration": "PT15.100000078S",
          "durationInSeconds": 15.1,
          "startTime": "PT17.817798612S",
          "startTimeInSeconds": 17.817,
          "trackingEvents": [
          {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=impression"
              ],
              "duration": "PT15.100000078S",
              "durationInSeconds": 15.1,
              "eventId": "8104385",
              "eventType": "impression",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=start"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104385",
              "eventType": "start",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104386",
              "eventType": "firstQuartile",
              "startTime": "PT21.592798631S",
              "startTimeInSeconds": 21.592
            },
             {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=midpoint"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104387",
              "eventType": "midpoint",
              "startTime": "PT25.367798651S",
              "startTimeInSeconds": 25.367
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104388",
              "eventType": "thirdQuartile",
              "startTime": "PT29.14279867S",
              "startTimeInSeconds": 29.142
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104390",
              "eventType": "complete",
              "startTime": "PT32.91779869S",
              "startTimeInSeconds": 32.917
            }
          ]
        }
      ],
      "availId": "8104385",
      "duration": "PT15.100000078S",
      "durationInSeconds": 15.1,
      "startTime": "PT17.817798612S",
      "startTimeInSeconds": 17.817
    }
  ]
}
```

# Modo híbrido com beacons de anúncios do lado do servidor
<a name="ad-reporting-hybrid-mode"></a>

MediaTailor suporta um modo híbrido para rastreamento de sessões. Nesse modo, o serviço emite eventos de rastreamento de anúncios relacionados à reprodução, mas disponibiliza a carga útil completa de rastreamento do lado do cliente para a sessão

Para ativar o rastreamento híbrido usando prefixos de reprodução, a partir do player, inicialize uma nova sessão de MediaTailor reprodução usando uma solicitação em um dos seguintes formatos, de acordo com seu protocolo:

**Example : formato HLS**  

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

**Example : formato DASH**  

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

MediaTailor mantém os seguintes eventos de rastreamento no modo híbrido:
+ Impressão
+ Início
+ Primeiro quartil
+ Midpoint
+ Terceiro quartil
+ Concluído
+ `breakStart`(vmap)
+ `breakEnd`(vmap)

# Integrações de rastreamento de anúncios do lado do cliente
<a name="ad-reporting-client-side-ad-tracking-integrations"></a>

Esta seção descreve as integrações entre MediaTailor e vários servidores de rastreamento de anúncios do lado do cliente.

**Topics**
+ [SDK de medição aberto](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)
+ [Reprodutor gratuito Datazoom SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz)
+ [Estrutura de publicidade Roku (RAF)](#ad-reporting-client-side-ad-tracking-integrations-raf)
+ [TheoPlayer](#ad-reporting-client-side-ad-tracking-integrations-theoplayer)
+ [MediaTailor SDK](#ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk)

## SDK de medição aberto
<a name="ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk"></a>

O SDK de Medição Aberta (OM SDK) do Interactive Advertising Bureau (IAB) facilita a medição de visibilidade e verificação de anúncios veiculados em ambientes de vídeo na web e aplicativos nativos.

Para documentos mais antigos da versão 3 do VAST, o código de verificação deve ser carregado com o nó de extensão, com o tipo de extensão`AdVerifications`. A raiz do nó de extensão é um `AdVerifications` nó com o mesmo esquema do elemento VAST 4.1.

Para facilitar a adoção do SDK do OM, MediaTailor fez uma parceria com a Datazoom para fornecer reprodutores gratuitos SDKs que são configurados e verificados para o Open Measurement. Para obter mais informações, consulte [Reprodutor gratuito Datazoom SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz).

**nota**  
MediaTailor atualmente suporta apenas a versão 3 do VAST.

**Example : nó de verificação no VAST 3, antes da versão 4.1**  

```
...
<Extensions>
    <Extension type="AdVerifications">
        <AdVerifications>
            <Verification vendor="company.com-omid">
                <JavaScriptResource apiFramework="omid" browserOptional="true">
                    <![CDATA[https://verification.com/omid_verification.js]]>
                </JavaScriptResource>
                <TrackingEvents>
                    <Tracking event="verificationNotExecuted">
                        <![CDATA[https://verification.com/trackingurl]]>
                    </Tracking>
                </TrackingEvents>
                <VerificationParameters>
                    <![CDATA[verification params key/value pairs]]>
                </VerificationParameters>
            </Verification>
        </AdVerifications>
    </Extension>
</Extensions>
```

MediaTailor extrai os `AdVerifications` dados do `<Extensions>` nó e os coloca na `adVerifications` matriz na resposta de rastreamento do lado do cliente.

**Example : matriz AdVerifications na resposta de rastreamento do lado do cliente**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "3062770",
          "adParameters": "",
          "adProgramDateTime": "2023-08-23T16:25:40.914Z",
          "adSystem": "2.0",
          "adTitle": "AD-polarbear-15",
          "adVerifications": [
            {
              "executableResource": [],
              "javaScriptResource": [
                {
                  "apiFramework": "omid",
                  "browserOptional": "true",
                  "uri": "https://verification.com/omid_verification.js"
                }
              ],
              "trackingEvents": [
                {
                  "event": "verificationNotExecuted",
                  "uri": "https://verification.com/trackingurl"
                }
              ],
              "vendor": "company.com-omid",
              "verificationParameters": "verification params key value pairs"
            }
          ],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<AdVerifications>\n\t\t\t\t\t\t<Verification vendor=\"company.com-omid\">\n\t\t\t\t\t\t\t<JavaScriptResource apiFramework=\"omid\" browserOptional=\"true\"><![CDATA[https://verification.com/omid_verification.js;]]></JavaScriptResource>\n\t\t\t\t\t\t\t<TrackingEvents>\n\t\t\t\t\t\t\t\t<Tracking event=\"verificationNotExecuted\"><![CDATA[;https://verification.com/trackingurl;]]></Tracking>\n\t\t\t\t\t\t\t</TrackingEvents>\n\t\t\t\t\t\t\t<VerificationParameters><![CDATA[verification params key/value pairs;]]></VerificationParameters>\n\t\t\t\t\t\t</Verification>\n\t\t\t\t\t</AdVerifications>",
              "type": "AdVerifications"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT10.11S",
          "startTimeInSeconds": 10.11,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://n8ljfs0h09.execute-api.us-west-2.amazonaws.com/v1/impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "3062770",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT10.11S",
              "startTimeInSeconds": 10.11
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "3062770",
      "availProgramDateTime": "2023-08-23T16:25:40.914Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT10.11S",
      "startTimeInSeconds": 10.11
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMC4xMVNfMjAyMy0wOC0yM1QxNjoyNjoyNC4yNDYxMDIxOTBaXzE%3D",
  "nonLinearAvails": []
}
```

**nota**  
Entre em contato com o IAB Tech Lab para garantir que os aplicativos sejam certificados anualmente para garantir a conformidade.

Para obter mais informações sobre o OM SDK, consulte [Open Measurement SDK no site](https://iabtechlab.com/standards/open-measurement-sdk/) do IAB Tech Lab.

## Reprodutor gratuito Datazoom SDKs
<a name="ad-reporting-client-side-ad-tracking-integrations-dz"></a>

Para facilitar a adoção do player SDKs, MediaTailor fez uma parceria com a Datazoom para fornecer reprodutores gratuitos SDKs que são configurados e testados com o [AWS Elemental MediaTailor Integração do lado do cliente com o Google Ad Manager](gam-integration-pal.md) e o IAB Tech. [SDK de medição aberto](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)

O SDK do Datazoom player oferece suporte aos seguintes recursos:
+ Playlists ao vivo e VOD
+ Especificações DASH e HLS
+ Suporte do fornecedor do player para Bitmovin, exoplayer, reprodutor de mídia Android, Apple AVPlayer, Brightcove, Chromecast Receiver, Dash.js, hls.js, Shaka player, THEO player, Video.js JWPlayer, Roku e muito mais
+ Certificação de medição aberta do IAB Tech Lab, quando disponível em dispositivos selecionados
+ Manipulação de eventos por clique
+ Distribuidores de eventos publicitários, como cronômetros de contagem regressiva de anúncios, eventos não lineares e de sobreposição de anúncios, início e fim de intervalo de anúncios
+ Balizamento de anúncios do lado do cliente
+ SDK da Biblioteca de Acesso Programático (PAL) do Google, como uma configuração opcional

O Datazoom também oferece um serviço pago de análise e telemetria que o jogador oferece suporte. SDKs Os clientes podem optar e controlar a telemetria do SDK do player a partir do console de gerenciamento do Datazoom. [Para acessar o reprodutor Datazoom SDKs e saber mais sobre o serviço de telemetria e análise de valor agregado, use as informações de contato no site do Datazoom.](https://www.datazoom.io/partner-aws) 

## Estrutura de publicidade Roku (RAF)
<a name="ad-reporting-client-side-ad-tracking-integrations-raf"></a>

O Roku Ad Framework (RAF) mantém uma experiência publicitária consistente em toda a plataforma Roku. Todos os canais, incluindo anúncios em vídeo, devem atender aos requisitos de certificação da Roku para a RAF. Notavelmente, o aplicativo deve sempre usar o disparo de eventos do lado do cliente por meio do RAF. MediaTailor, como provedor de inserção de anúncios do lado do servidor (SSAI), oferece suporte ao disparo de eventos do lado do cliente. Os adaptadores RAFX SSAI fornecem interfaces tanto para servidores de manifestos SSAI, ou stitchers, quanto para RAF. Essas interfaces incluem:
+ Análise e extração da `masterURL` resposta e `playURL` metadados `AdURL` do anúncio.
+ Transformando metadados de anúncios MediaTailor SSAI em metadados de anúncios utilizáveis em RAF e configurando RAF para reprodução.
+ Observando eventos de stream e metadados cronometrados.
+ Combinando os eventos de transmissão, os metadados do anúncio e os pixels do evento de disparo em tempo hábil.
+ Executando ping/pesquisando o`AdURL`, conforme exigido pelo servidor de manifesto MediaTailor SSAI, e depois analisando e reconfigurando o RAF.

Para obter mais informações sobre adaptadores SSAI para RAF, consulte [Implementando a inserção de anúncios no lado do servidor usando adaptadores](https://developer.roku.com/docs/developer-program/advertising/ssai-adapters.md) Roku no site da Roku.

## TheoPlayer
<a name="ad-reporting-client-side-ad-tracking-integrations-theoplayer"></a>

TheoPlayer a integração com MediaTailor faz o seguinte:
+ Fornece funcionalidade para oferecer suporte ao rastreamento de eventos MediaTailor do lado do cliente para HLS e DASH para VOD e fluxos de trabalho ao vivo.
+ Suporta o envio de beacons de rastreamento somente para anúncios lineares.
+ Desativa a busca durante um anúncio. No entanto, não há lógica para reproduzir um anúncio quando o usuário busca além do intervalo publicitário.

Para obter mais informações sobre a SSAI e para analisar a web, o Android, o iOS e o SDKs tvOS MediaTailor, consulte [MediaTailor](https://docs.theoplayer.com/how-to-guides/01-ads/12-mediatailor.md)no TheoPlayer site. TheoPlayer

## MediaTailor SDK
<a name="ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk"></a>

AWS A Elemental mantém um kit de desenvolvimento de software (SDK) JavaScript baseado. AWS A Elemental fornece o SDK no estado em que se encontra, sem garantia implícita. Use o SDK como uma demonstração de referência para agilizar sua integração e uso. MediaTailor O SDK mostra como interagir com a API de rastreamento do MediaTailor lado do cliente. O SDK implementa rastreamento e relatórios de anúncios do lado do cliente para jogadores baseados. HTML5 O SDK inicializa uma sessão de relatórios do MediaTailor lado do cliente e, em seguida, solicita periodicamente informações de rastreamento de anúncios. Durante a reprodução, o SDK emite eventos de rastreamento de anúncios quando novos eventos publicitários são detectados.

O MediaTailor SDK oferece suporte aos seguintes recursos:
+ Playlists ao vivo e VOD
+ Especificações DASH e HLS
+ Manipulação de eventos por clique
+ Despachantes de eventos publicitários
+ Ganchos de eventos personalizados
+ Balizamento de anúncios do lado do cliente. Para obter mais informações sobre o envio de beacons de anúncios, consulte. [Sinalização do lado do cliente](ad-reporting-client-side-beaconing.md)

**nota**  
Envie um ticket de AWS Support para receber uma amostra de JavaScript SDK para MediaTailor. Você receberá um link para download do pacote e seus arquivos.

## Paginando beacons de anúncios com GetTracking
<a name="gettracking"></a>

Use o `GetTracking` endpoint para reduzir o número de anúncios retornados a um player. Por exemplo, se uma janela de manifesto for ampla, abrangendo muito tempo, o número de beacons de anúncios retornados pode afetar o desempenho do jogador. 

`GetTracking`retorna um `NextToken` valor que você pode usar para restringir o número de beacons retornados paginando a lista de beacons retornados. Você pode percorrer os `NextToken` valores para encontrar o valor desejado do campo de um anúncio `StartTimeInSeconds` beacon. 
+ Na primeira chamada para`GetTracking`, todos os anúncios possíveis que aparecem na janela do manifesto são retornados, incluindo a `NextToken` e o valor de cada um. 
+ Se uma `GetTracking` solicitação *não* incluir um`NextToken`, todos os anúncios na janela do manifesto serão retornados.
+ Se uma `GetTracking` solicitação contiver um`NextToken`, mas não houver novos beacons a serem retornados, MediaTailor retornará o mesmo valor `NextToken` que você enviou na solicitação original.
+ Quando não há mais beacons correspondentes a um anúncio, `GetTracking` remove o anúncio de sua resposta.
+ Os tokens `GetTracking` expiram após 24 horas. Se um `NextToken` valor tiver mais de 24 horas, a próxima chamada `GetTracking` retornará um valor nulo`NextToken`.

### Sequência de chamada generalizada GetTracking do jogador
<a name="gettracking.generalsequence"></a>

Do player cliente, uma `GetTracking` solicitação é um POST com um corpo de solicitação que contém anúncios `NextToken` e beacons relacionados ao token.

```
https://YouMediaTailorUrl/v1/tracking
{

     "NextToken": "value"
     .
     .
     .
}
```

A sequência geral para usar `GetTracking` com `NextToken` é a seguinte:

1. Faça a primeira ligação para`GetTracking`.

   Todos os anúncios e beacons e os primeiros `NextToken` para chamadas subsequentes são retornados. 

1. Se o valor de `NextToken` for nulo, MediaTailor retornará todos os beacons de anúncios.

1. Se o `NextToken` estiver expirado, MediaTailor retornará uma mensagem de erro do código de retorno HTTP 400.

   Faça uma nova chamada `GetTracking` para recuperar `NextToken` s válidos.

1. Examine toda a resposta para encontrar um sinalizador `StartTimeInSeconds` de anúncios que esteja na faixa desejada.

1. Faça uma nova chamada para `GetTracking` com o valor de `NextToken` associado ao desejado`StartTimeInSeconds`. 

1. Se necessário, percorra novamente os anúncios retornados até encontrar os anúncios exatos que você deseja reproduzir.

#### Exemplo estendido
<a name="gettracking.extendedexample"></a>

Este exemplo mostra como usar `GetTracking`'s `NextToken` para restringir o número de beacons de anúncios retornados a um jogador.

MediaTailor recebe uma `GetTracking` solicitação. A resposta contém um anúncio com ID 9935407 e dois beacons com `StartTimeInSeconds` valores 52.286 e 48.332 segundos. 

MediaTailor envia a resposta JSON da `NextToken` seguinte forma:

```
  {
  "NextToken": JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb
  "avails": [
    {
      "ads": [
        {
          "adId": "9935407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT30S",
          "StartTimeInSeconds": 45,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=Impression "
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935414",
              "eventType": "secondQuartile",
              "startTime": "PT52.286S",
              "StartTimeInSeconds": 52.286
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935412",
              "eventType": "firstQuartile",
              "startTime": "PT48.332S",
              "StartTimeInSeconds": 48.332
            }
          ],
          "vastAdId": ""
        }
      ],
      "startTime": "PT46.47S",
      "StartTimeInSeconds": 46.47
    }
  ]
}
```

Na próxima `GetTracking` solicitação, MediaTailor responde com o `NextToken` valor: JF57 ITe48t1441mv7 Tm LKu ZLrox DzfIslp SNL1 IJmz PVMDN0lqr BYycg 6Bi Mb. KEb

MediaTailor responde com anúncios e beacons que correspondem aos `StartTimeInSeconds` definidos na chamada `NextToken` anterior.

Suponha que agora a resposta inclua outro anúncio com ID 9235407, além do anúncio anterior com ID 9935407. Os beacons do anúncio ID 9235407 têm s 132.41 e 70.339. `StartTimeInSeconds`

MediaTailor itera sobre todos os beacons na sessão para selecionar aqueles com `StartTimeInSeconds` mais de 52.286 segundos, que são o beacon 3 e o beacon 4 do anúncio com ID 9235407:

```
{
  "NextToken": ZkfknvbfsdgfbsDFRdffg12EdffecFRvhjyjfhdfhnjtsg5SDGN
  "avails": [
    {
      "ads": [
        {
          "adId": "9235407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15.816S",
          "durationInSeconds": 19.716,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT2M0S",
          "StartTimeInSeconds": 120.0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935414",
              "eventType": "firstQuartile",
              "startTime": "PT1M10.330S",
              "StartTimeInSeconds": 70.339
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935412",
              "eventType": "secondQuartile",
              "startTime": "PT2M12.41S",
              "StartTimeInSeconds": 132.41
            }
          ],
          "vastAdId": ""
        },   
      ],
      "startTime": "PT36.47S",
      "StartTimeInSeconds": 36.47
    }
  ]
}
```

# Anúncios de sobreposição
<a name="overlay-ads"></a>

Para fluxos de trabalho de transmissão ao vivo nos quais você deseja aumentar a monetização sem interromper a experiência de visualização com anúncios intermediários, você pode aproveitar sua AWS Elemental MediaTailor integração atual para orientar um formato de publicidade renderizado no lado do cliente. Esse tipo de publicidade é conhecido como *anúncios sobrepostos*. Anúncios de sobreposição são anúncios em vídeo não lineares que aparecem na forma de “anúncios de banda L”, “anúncios em vídeo não lineares”, “anúncios”, “sobreposições de movimento”, “publicidade em conteúdo” ou “picture-in-picture anúncios em quadro”.

MediaTailor detecta um marcador SCTE-35 com tipo de segmentação `id=0x38` como um sinal em banda para uma oportunidade de inserção de anúncios sobrepostos. O marcador SCTE-35 faz com MediaTailor que uma solicitação seja enviada ao Ad Decision Server (ADS), que então responde com uma carga de anúncio não linear na resposta VAST. MediaTailor analisa a resposta VAST para oferecer suporte à inserção de anúncios sobrepostos. MediaTailor não realiza nenhuma combinação de anúncios lineares, mas sinaliza para o player que há um anúncio de sobreposição não linear disponível para reprodução. Essa sinalização permite que o player busque e correlacione os anúncios não lineares a serem reproduzidos no endpoint de rastreamento do lado do cliente. O player então gerencia a exibição, os relatórios e outras tarefas relacionadas a esses anúncios. Por exemplo, o desenvolvedor do player pode usar um SDK de dispositivo de um fornecedor compatível com formatos de anúncios sobrepostos. Para obter mais informações sobre integrações de rastreamento do lado do cliente, consulte. [Integrações de rastreamento de anúncios do lado do cliente](ad-reporting-client-side-ad-tracking-integrations.md)

![\[A imagem mostra uma linha do tempo de vários tipos de anúncios exibidos ao lado de um vídeo de conteúdo. Anúncios lineares são exibidos antes e depois do vídeo de conteúdo. O anúncio antes do vídeo de conteúdo é chamado de anúncio pré-lançado. O anúncio após o vídeo de conteúdo é chamado de anúncio pós-lançamento. Um anúncio não linear se sobrepõe a uma parte do próprio vídeo de conteúdo. O anúncio não linear é chamado de anúncio de sobreposição.\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/images/client-side-overlays.png)


**Topics**
+ [Pré-requisitos para usar anúncios sobrepostos com MediaTailor](overlay-ads-prerequisites.md)
+ [Começando a usar anúncios de sobreposição com MediaTailor](overlay-ads-getting-started.md)
+ [Registro e métricas para anúncios sobrepostos em MediaTailor](overlay-ads-logging-and-metrics.md)
+ [Cobrança por anúncios sobrepostos em MediaTailor](overlay-ads-billing.md)

# Pré-requisitos para usar anúncios sobrepostos com MediaTailor
<a name="overlay-ads-prerequisites"></a>

Os pré-requisitos a seguir se aplicam ao usar anúncios de sobreposição com: MediaTailor
+ O fluxo de trabalho deve ser ao vivo, não vídeo sob demanda (VOD).
+ A resposta do Ad Decision Server (ADS) deve ser configurada para retornar somente anúncios não lineares na resposta VAST. MediaTailor ignora qualquer anúncio linear para fins de costura de anúncios.
+ O manifesto deve usar uma mensagem de sinal de horário SCTE-35 com tipo de segmentação `id=0x38` para invocar o recurso overlay-ad.
+ O provedor de streaming deve ter controle do aplicativo cliente-dispositivo e estar integrado à API de rastreamento do lado do MediaTailor cliente.

# Começando a usar anúncios de sobreposição com MediaTailor
<a name="overlay-ads-getting-started"></a>

Esta seção explica como começar a usar o recurso de anúncios sobrepostos do. MediaTailor Você configurará a sinalização SCTE-35, configurará as respostas do Ad Decision Server (ADS) e configurará o controle em nível de sessão.

**Topics**
+ [Ativando anúncios de sobreposição](overlay-ads-getting-started-enabling.md)
+ [Rastreamento de anúncios sobrepostos com metadados do lado do cliente](overlay-ads-client-side-tracking-metadata.md)

# Ativando anúncios de sobreposição
<a name="overlay-ads-getting-started-enabling"></a>

MediaTailor o suporte para anúncios de sobreposição está ativado por padrão. Um tipo específico de marcador de anúncio SCTE-35 no manifesto aciona a inserção de um anúncio de sobreposição. Como alguns players podem não oferecer suporte à renderização de anúncios sobrepostos no lado do cliente, você pode desativar o recurso no nível da sessão.

**Para desativar o suporte a anúncios sobrepostos usando prefixos de reprodução HLS ou DASH:**
+ No player, inicialize uma nova sessão de MediaTailor reprodução usando uma solicitação em um dos seguintes formatos, de acordo com seu protocolo:
  + Exemplo: formato HLS

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```
  + Exemplo: formato DASH

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```

**Para desativar o suporte a anúncios sobrepostos usando o prefixo de inicialização da sessão:**
+ No player, construa um corpo de mensagem JSON para a solicitação de inicialização da sessão para: MediaTailor
  + Para desativar o suporte à sobreposição de anúncios, adicione um `overlays` objeto como chave de nível superior com um valor de. `off` O `overlays` valor padrão é`on`.
  + (Opcional) Forneça quaisquer parâmetros que MediaTailor , em seguida, sejam passados para o ADS dentro de um `adsParams` objeto. Esses parâmetros correspondem às configurações `[player_params.param]` no URL de modelo ADS da configuração do MediaTailor.

**Example HLS:**  

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

**Example DASH:**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "androidmobile"
       },
       "overlayAvails": "off"
    }
```

# Sinalização manifesta
<a name="overlay-ads-manifest-signaling"></a>

MediaTailor aciona o suporte a anúncios de sobreposição quando vê um marcador SCTE-35 específico no manifesto. O sinal necessário é um comando de emenda tipo 6, ou sinal de tempo, que é um sinal Provider Overlay Advertisement Start. Este sinal tem um ID do tipo de segmentação de `0x38`

O exemplo a seguir mostra o marcador `0x38` SCTE-35 em um objeto JSON.

```
{
  "tableId": 252,
  "selectionSyntaxIndicator": false,
  "privateIndicator": false,
  "sectionLength": 53,
  "protocolVersion": 0,
  "encryptedPacket": false,
  "encryptedAlgorithm": 0,
  "ptsAdjustment": 0,
  "cwIndex": 0,
  "tier": 4095,
  "spliceCommandLength": 5,
  "spliceCommandType": 6,
  "spliceCommand": {
    "specified": true,
    "pts": 1800392
  },
  "descriptorLoopLength": 31,
  "descriptors": [
    {
      "spliceDescriptorTag": 2,
      "descriptorLength": 29,
      "indentifier": "CUEI",
      "segmentationEventId": 158389361,
      "segmentationEventCancelIndicator": false,
      "programSegmentationFlag": true,
      "segmentationDurationFlag": true,
      "deliveryNotRestrictedFlag": false,
      "webDeliveryAllowedFlag": true,
      "noRegionalBlackoutFlag": true,
      "archiveAllowedFlag": true,
      "deviceResctrictions": 3,
      "segmentationDuration": 1350000,
      "segmentationUpidType": 9,
      "segmentationUpidLength": 7,
      "segmentationUpid": {
        "0": 111,
        "1": 118,
        "2": 101,
        "3": 114,
        "4": 108,
        "5": 97,
        "6": 121
      },
      "segmentationTypeId": 56,
      "segmentNum": 1,
      "segmentsExpected": 0
    }
  ],
  "crc": 2510422713
}
```

O exemplo a seguir mostra o sinal SCTE-35 representado como um valor binário (base 32/hexadecimal):

```
0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
```

Os exemplos a seguir mostram o marcador SCTE-35 nos manifestos HLS e DASH.

**Example : Manifesto HLS**  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:419
#EXT-X-DISCONTINUITY-SEQUENCE:3
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:09.231Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:15.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:21.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00002.ts
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="1692073825251-30-1",START-DATE="2023-08-15T04:30:25.251Z",DURATION=10.0,PLANNED-DURATION=10.0,SCTE35-OUT=0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:25.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00003.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:27.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00004.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:33.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00005.ts
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:35.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00006.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:39.251Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
```

**Example : Manifesto DASH**  

```
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="2023-08-15T16:34:05.911Z" minBufferTime="PT30S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-08-15T16:34:17.950Z" suggestedPresentationDelay="PT20S" timeShiftBufferDepth="PT1M30S" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
  <Period xmlns="urn:mpeg:dash:schema:mpd:2011" id="1692117245944_1" start="PT0.033S">
    <BaseURL>https://aws.cloudfront.net/out/v1/abc/123/def/</BaseURL>
    <EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
      <Event duration="900000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
          <scte35:TimeSignal>
            <scte35:SpliceTime ptsTime="0"/>
          </scte35:TimeSignal>
          <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="900000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="56" segmentsExpected="0" subSegmentNum="0" subSegmentsExpected="0">
            <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">63736f7665726c6179</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation bandwidth="3000000" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="1" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2499968" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="2" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2200000" codecs="avc1.4D401F" frameRate="30/1" height="720" id="3" width="1280">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
      <Label>Alternate Audio</Label>
      <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="9">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="48000">
          <SegmentTimeline>
            <S d="98304" t="0"/>
            <S d="96256" t="98304"/>
            <S d="95232" t="194560"/>
            <S d="96256" r="2" t="289792"/>
            <S d="95232" t="578560"/>
            <S d="46080" t="673792"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
```

# Resposta do Ad Decision Server (ADS)
<a name="overlay-ads-ads-response"></a>

A resposta do ADS deve conter um evento de rastreamento válido. No mínimo, o evento de rastreamento pode ser um evento `Impression` de rastreamento. O evento de rastreamento deve conter pelo menos um `NonLinear` anúncio. Esse anúncio é o anúncio de sobreposição, assumindo a forma de um recurso estático, HTML ou iFrame.

```
<vmap AdBreak breaktype="linear" breakId="csoverlay"
```

Se a resposta VAST for um VMAP com `breakType` of`nonlinear`, os metadados disponíveis estarão dentro do `nonLinearAvails` objeto raiz. Se a resposta VAST for um VMAP com um `breakType` de `linear` ou for uma resposta VAST simples sem VMAP, os metadados disponíveis estarão dentro do objeto raiz. `avails`

A resposta VAST a seguir é uma resposta VMAP encapsulada com um `breakType` valor de`linear`.

Além da resposta VMAP encapsulada, MediaTailor também suporta uma resposta VMAP encapsulada com um `breakType` valor de`nonlinear`, e uma resposta VAST simples.

```
<?xml version="1.0" encoding="utf-8"?>
<vmap:VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0">
  <vmap:AdBreak breakType="linear" breakId="csoverlay">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
      <vmap:VASTAdData>
        <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:noNamespaceSchemaLocation="vast.xsd">
          <Ad sequence="1">
            <InLine>
              <AdSystem>2.0</AdSystem>
              <AdTitle>2</AdTitle>
              <Impression><![CDATA[https://adserver.com/beacon=impression]]></Impression>
              <Creatives>
                <Creative>
                  <NonLinearAds>
                    <NonLinear width="640" height="360" id="18">
                      <StaticResource creativeType="text/js_ref"><![CDATA[https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26]]></StaticResource>
                    </NonLinear>
                  </NonLinearAds>
                </Creative>
              </Creatives>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
    <vmap:TrackingEvents>
      <vmap:Tracking event="breakStart"><![CDATA[https://adserver.com/beacon=breakstartimpression]]></vmap:Tracking>
      <vmap:Tracking event="breakEnd"><![CDATA[https://adserver.com/beacon=breakendimpression]]></vmap:Tracking>
    </vmap:TrackingEvents>
  </vmap:AdBreak>
</vmap:VMAP>
```

**Example 1: Fonte do manifesto DASH para MediaTailor**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
    <Event duration="540000" id="144">
        <scte35:Signal>
            <scte35:Binary>SCTE35-binary</scte35:Binary>
        </scte35:Signal>
    </Event>
    </EventStream>
    ... 
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

**Example 2: manifesto DASH MediaTailor personalizado contendo uma decoração de ID de anúncio**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
  <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
    <Event presentationTime="13500000" duration="1351350">
    <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "adId","ad_position": "adId", "ad_type":"overlay","creative_id": "creativeId","tracking_uri": "trackingUri"}]}]]></Event>
  </EventStream>
  ...
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

# Rastreamento de anúncios sobrepostos com metadados do lado do cliente
<a name="overlay-ads-client-side-tracking-metadata"></a>

MediaTailor coloca os anúncios de sobreposição no local `nonLinearAdsList` da disponibilidade. A API de rastreamento MediaTailor do lado do cliente tem dois objetos raiz, chamados e. `avails` `nonLinearAvails` Se a resposta VAST for um VMAP com `breakType` of`nonlinear`, os metadados disponíveis estarão dentro do `nonLinearAvails` objeto raiz. Se a resposta VAST for um VMAP com um `breakType` de `linear` ou for uma resposta VAST simples sem VMAP, os metadados disponíveis estarão dentro do objeto raiz. `avails`

Para obter mais informações sobre o rastreamento do lado do cliente, consulte. [Rastreamento de anúncios do lado do cliente](ad-reporting-client-side.md)

O exemplo a seguir mostra uma resposta VAST simples ou uma resposta VMAP com um `breakType` valor de`linear`.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": []
}
```

O exemplo a seguir mostra uma resposta simples do VMAP com um `breakType` valor de`nonlinear`.

```
{
  "avails": [],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ]
}
```

# Registro e métricas para anúncios sobrepostos em MediaTailor
<a name="overlay-ads-logging-and-metrics"></a>

Esta seção explica o registro e as métricas para anúncios sobrepostos em MediaTailor. Para obter mais informações sobre como configurar o registro, consulte[Recursos de monitoramento e marcação AWS Elemental MediaTailor](monitoring.md).

**Topics**
+ [CloudWatch troncos](#overlay-ads-logging-and-metrics-cloudwatch)
+ [CloudWatch métricas](#overlay-ads-logging-and-metrics-cloudwatch-metrics)

## CloudWatch troncos
<a name="overlay-ads-logging-and-metrics-cloudwatch"></a>

CloudWatch coleta as seguintes informações de registro sobre anúncios de sobreposição:
+ `VAST_RESPONSE`- Mostra informações sobre a lista de anúncios não lineares.
+ `FILLED_PROVIDER_OVERLAY`- Mostra informações sobre os anúncios não lineares.

**nota**  
`RAW_ADS_RESPONSE`É um evento opcional que mostra a resposta original do ADS. Usar esse evento é especialmente útil em um ambiente de preparação e teste. Para ativar esse evento em uma configuração ou conta, envie um ticket para o AWS Support.

## CloudWatch métricas
<a name="overlay-ads-logging-and-metrics-cloudwatch-metrics"></a>

MediaTailor coleta métricas de anúncios de sobreposição separadamente de outras métricas do ADS. MediaTailorcoleta essas métricas depois de obter com sucesso os anúncios do ADS. Você não precisa pesquisar a `GetTracking` API para coletar as métricas.

A tabela a seguir descreve CloudWatch as métricas para anúncios sobrepostos:


| Métrica | Description | 
| --- | --- | 
| AdDecisionServer.OverlayAds |  A contagem de anúncios sobrepostos incluídos nas respostas do ADS dentro do CloudWatch período que você especificou.  | 
| AdDecisionServer.OverlayErrors |  O número de respostas de código de `200` status não HTTP, respostas vazias e respostas com tempo limite MediaTailor recebidas do ADS dentro do CloudWatch período especificado.  | 
| AdDecisionServer.OverlayFilled |  O número de disponibilidades que foram preenchidas com sucesso com pelo menos um anúncio de sobreposição: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/mediatailor/latest/ug/overlay-ads-logging-and-metrics.html) `SampleCount`rastreia o número de disponibilidades preenchidas. `Sum`rastreia o número de sobreposições preenchidas com sucesso.  | 
| AdDecisionServer.OverlayMinSuggestedDuration |  A soma das `minSuggestedDuration` durações, em milissegundos, de todos os anúncios MediaTailor recebidos do ADS dentro do CloudWatch período que você especificou. Se `minSuggestedDuration` não for especificada, a duração mostrada será a duração planejada.  | 
| AdDecisionServer.OverlayLatency |  O tempo de resposta, em milissegundos, para solicitações feitas MediaTailor ao ADS.  | 
| AdDecisionServer.OverlayTimeouts |  O número de solicitações expiradas para o ADS no CloudWatch período que você especificou.  | 
| AdsBilled |  Para obter mais informações sobre anúncios cobrados, consulte[Cobrança por anúncios sobrepostos em MediaTailor](overlay-ads-billing.md).  | 
| Avail.\$1 |  Porque MediaTailor não faz nenhum planejamento para anúncios sobrepostos, CloudWatch não mostra nenhuma `Avail.X` métrica.  | 
| SkippedReason.\$1 |  Porque MediaTailor não faz nenhum planejamento para anúncios sobrepostos, CloudWatch não mostra nenhuma `SkippedReason.X` métrica.  | 

# Cobrança por anúncios sobrepostos em MediaTailor
<a name="overlay-ads-billing"></a>

MediaTailor cobra dos clientes com base no número de anúncios não lineares na resposta do ADS. Esse número inclui anúncios não lineares que se estendem além da duração do intervalo. Depois de MediaTailor preencher o formulário, ele cobra pelos anúncios preenchidos.

Para fluxos de trabalho de pré-busca, MediaTailor não cobra pelos anúncios ao recuperar a pré-busca, mas sim quando vê um anúncio compatível disponível na janela de consumo dessa sessão.

Para obter informações adicionais sobre faturamento, consulte[https://aws.amazon.com/mediatailor/pricing/](https://aws.amazon.com/mediatailor/pricing/).

# Decoração de ID do anúncio
<a name="ad-id-decoration"></a>

AWS Elemental MediaTailor realiza a junção de anúncios do lado do servidor ao fazer a transição do conteúdo para os intervalos publicitários. MediaTailor pode condicionar o manifesto com metadados associados aos anúncios que foram criados. Fazer isso pode oferecer os seguintes benefícios:

**Importante**  
A decoração do Ad-ID não é compatível com os métodos de inserção de anúncios guiada pelo servidor (SGAI) porque os campos que preenchem os `X-AD-CREATIVE-SIGNALING ` cabeçalhos só são conhecidos quando a lista de ativos é buscada durante a reprodução do anúncio, não quando o manifesto que pode ser armazenado em cache é gravado inicialmente.
+ O *horário de início do vídeo* (VST) melhora
+ MediaTailor pode suportar um modelo híbrido de inserção de anúncios do lado do servidor e inserção de anúncios guiada pelo servidor
+ As sessões do lado do servidor podem criar cronogramas de reprodução com marcadores de posição do anúncio
+ Para sessões do lado do cliente que já criam cronogramas de reprodução com a MediaTailor API, o VST da sessão melhora, pois a sessão não depende da chamada da API de rastreamento para criar a linha do tempo
+ É possível aproveitar a inserção MediaTailor de anúncios do lado do servidor, bem como os anúncios renderizados do lado do cliente exibidos na cena. Dessa forma, o kit de desenvolvimento de software (SDK) de um player não precisa ter uma integração separada para chamar entidades de veiculação de anúncios diretamente para anúncios do lado do cliente. MediaTailor pode vender os anúncios por meio do manifesto e da API de rastreamento do lado do cliente.

Existem padrões para associar cada recurso de anúncio criativo a um identificador exclusivo. Essa associação permite que anunciantes, agências, fornecedores e editores relacionem um ativo publicitário criativo em seus fluxos de trabalho independentes. À medida que as métricas e o monitoramento dos fluxos continuam melhorando e mais distribuidores utilizam arquiteturas de inserção baseadas em servidor, surge a necessidade de comunicar com precisão os identificadores atribuídos aos ativos criativos individuais em uma interleaved/stitched apresentação, como no manifesto personalizado.

**Topics**
+ [Habilitando a sinalização de ID de anúncio para sessões](ad-id-session-state.md)
+ [Manifestos e inserção de metadados de anúncios](ad-id-manifest.md)
+ [Interações do Ad Decision Server (ADS)](ad-id-ads-interactions.md)
+ [API de rastreamento do lado do cliente](ad-id-client-side-tracking-api.md)

# Habilitando a sinalização de ID de anúncio para sessões
<a name="ad-id-session-state"></a>

O recurso de sinalização de ID de anúncio deve ser ativado durante a inicialização da sessão. O processo para ativar o recurso é diferente de criar sessões usando o prefixo de HLS/DASH reprodução (inicialização implícita da sessão) versus o prefixo de inicialização da sessão (inicialização explícita da sessão).

**Para ativar o ID de anúncio para a sessão usando prefixos de HLS/DASH reprodução**
+ No player, inicialize uma nova sessão de MediaTailor reprodução usando uma solicitação em um dos seguintes formatos, de acordo com seu protocolo:
  + Exemplo: formato HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```
  + Exemplo: formato DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```

**Para habilitar o ID de anúncio para a sessão usando o prefixo de inicialização da sessão**
+ No player, construa um corpo de mensagem JSON para a solicitação de inicialização da sessão para: MediaTailor 
  + Dentro de um `adsParams` objeto, forneça todos os parâmetros que MediaTailor devem ser passados para o ADS. Esses parâmetros correspondem às `[player_params.param]` configurações na URL do modelo ADS da MediaTailor configuração. 
  + Para ativar a sinalização de ID de anúncio, adicione um `adSignaling` objeto como objeto de nível superior e, dentro, adicione um parâmetro chamado `enabled` e valor de. `true` O `adSignaling` valor padrão é`disabled`.
  + Exemplo: formato HLS

    ```
    POST master.m3u8
        {
           "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
               "enabled": "true"
           },
           "reportingMode": "client"
        }
    ```
  + Exemplo: formato DASH

    ```
    POST manifest.mpd
        {
            "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
                "enabled": "true"
            },
            "reportingMode": "client"
        }
    ```

# Manifestos e inserção de metadados de anúncios
<a name="ad-id-manifest"></a>

Durante o processo de criação do anúncio, MediaTailor adiciona ao manifesto o ID exclusivo associado a cada criação que está sendo costurada. MediaTailor obtém a ID exclusiva do criativo a partir do valor do `id` atributo desse criativo na resposta VAST. Se o criativo não tiver um valor de atributo de ID, MediaTailor publicará um valor vazio (`id=""`).

MediaTailor usa um sinal de metadados no manifesto para separar as dependências entre a API de rastreamento do cliente para metadados criativos de anúncios e dentro do cronograma geral. timing/positioning Esse desacoplamento reduz a latência da reprodução (especialmente em cenários de VOD), em que a interface do usuário (UI) do player renderiza as posições de interrupção do anúncio na linha do tempo antes de inicializar a reprodução.

Os metadados adicionados assumem as seguintes formas:
+ Para manifestos HLS, os metadados adicionados assumem a forma de `DATERANGE` tags para cada anúncio no período de disponibilidade.
+ Para manifestos do DASH, os metadados adicionados assumem a forma de um `Event` elemento dentro de cada período do anúncio.

O corpo da mensagem JSON a seguir mostra um exemplo de resposta VAST:

```
{
  "version": 1,
  "identifiers": [
    {
      "scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000",
      "value": "creativeId",
      "ad_position": "adId",
      "ad_type": "adType",
      "tracking_uri": "trackingUri",
      "custom_vast_data":"customVastData"
    }
  ]
}
```

No exemplo anterior:
+ *creativeId*é o valor do `Id` atributo do `Creative` elemento para o anúncio
+ *adId*é o número de sequência HLS associado ao início do anúncio ou o ID do período DASH do anúncio
+ *adType*é `avail` ou`overlay`, com base na resposta VAST
+ *trackingUri*é o endpoint de rastreamento relativo da MediaTailor sessão, no formato `../../../../tracking/hashed-account-id/origin-id/session-id`
+ *customVastData*é um valor MediaTailor extraído da extensão `creative_signaling` VAST. MediaTailor usa o conteúdo do nó CDATA, se presente. Consulte a [Interações do Ad Decision Server (ADS)](ad-id-ads-interactions.md) seção para obter mais detalhes e um exemplo de resposta VAST.

# Personalização de manifestos HLS com metadados de anúncios
<a name="ad-id-manifest-hls"></a>

Para um stream HLS ao vivo, MediaTailor só adiciona metadados quando o stream contém `PROGRAM-DATA-TIME` tags, pelo menos uma vez por duração do manifesto. Para um stream de vídeo sob demanda (VOD), é MediaTailor adicionado `PROGRAM-DATE-TIME` a pelo menos um segmento no manifesto personalizado, em que a hora de início de cada ativo de VOD é a época zero (). `1970-01-01T00:00:00Z` Se o manifesto de origem tiver `PROGRAM-DATE-TIME` conteúdo existente, MediaTailor preservará esse conteúdo.

MediaTailor personaliza o manifesto com criativos retornados pelo Ad Decision Server (ADS). Para cada anúncio, MediaTailor também inclui uma `DATERANGE` tag que abrange a duração do anúncio. *O formato da `DATERANGE` tag é semelhante ao descrito na seção [Sinalização criativa de anúncios em DASH e HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) na versão 2023 da publicação técnica do SVA.*

O `DATERANGE` que MediaTailor gera tem valores de ID exclusivos. Para garantir a exclusividade (de acordo com as diretrizes especificadas em [Mapeamento do SCTE-35 em EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)) MediaTailor , associa o `MEDIA-SEQUENCE` número do *primeiro* segmento do anúncio do item ao número de sequência do anúncio dentro do item.

Para intervalos publicitários não preenchidos em configurações que têm o slate ativado, MediaTailor anexa os segmentos do slate ao final da disponibilidade, separados por uma `DISCONTINUITY` tag, mas sem metadados. `DATERANGE`

Para cada anúncio incluído no manifesto personalizado, MediaTailor adiciona os metadados criativos, representados como dados codificados em base64 em uma tag personalizada. `DATERANGE`

**Example Origem linear do HLS (`#EXT-X-CUE-OUT`):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:398
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:20:01.397Z
#EXTINF:6.006,
index_1_398.ts?m=1676054627
#EXTINF:5.873,
index_1_399.ts?m=1676054627
#EXT-OATCLS-SCTE35:/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXT-X-CUE-OUT:59.993
#EXTINF:6.139,
index_1_400.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=6.139,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_401.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=12.145,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_402.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=18.151,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_403.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=24.157,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_404.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=30.163,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_405.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=36.169,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_406.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=42.175,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_407.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=48.181,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_408.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=54.187,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:5.806,
index_1_409.ts?m=1676054627
#EXT-X-CUE-IN
#EXTINF:6.206,
index_1_410.ts?m=1676054627
#EXTINF:6.006,
index_1_411.ts?m=1676054627
#EXTINF:6.006,
index_1_412.ts?m=1676054627
```

**Example Origem linear do HLS (`#EXT-X-DATERANGE`):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:25
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:53.389Z
#EXTINF:6.006,
index_1_25.ts?m=1676056675
#EXTINF:6.006,
index_1_26.ts?m=1676056675
#EXTINF:6.006,
index_1_27.ts?m=1676056675
#EXTINF:1.869,
index_1_28.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC302500000003289800FFF01405000000027FEFFF8CF97DECFE00526362000101010000B1EE3F80
#EXTINF:6.139,
index_1_29.ts?m=1676056675
#EXTINF:6.006,
index_1_30.ts?m=1676056675
#EXTINF:6.006,
index_1_31.ts?m=1676056675
#EXTINF:6.006,
index_1_32.ts?m=1676056675
#EXTINF:6.006,
index_1_33.ts?m=1676056675
#EXTINF:6.006,
index_1_34.ts?m=1676056675
#EXTINF:6.006,
index_1_35.ts?m=1676056675
#EXTINF:6.006,
index_1_36.ts?m=1676056675
#EXTINF:6.006,
index_1_37.ts?m=1676056675
#EXTINF:5.806,
index_1_38.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",END-DATE="2023-02-10T19:21:13.269Z",DURATION=59.993
#EXTINF:6.206,
index_1_39.ts?m=1676056675
#EXTINF:6.006,
index_1_40.ts?m=1676056675
```

**Example Manifesto HLS linear personalizado (com sinalização criativa de anúncios):**  
O `DATERANGE` que MediaTailor gera tem valores de ID exclusivos. Para garantir a exclusividade (de acordo com as diretrizes especificadas em [Mapeamento do SCTE-35 em EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)) MediaTailor , associa o `MEDIA-SEQUENCE` número do *primeiro* segmento do anúncio do item ao número de sequência do anúncio dentro do item.  
No exemplo a seguir, MediaTailor concatena `MEDIA-SEQUENCE` 421 com o número da posição do anúncio.  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:418
#EXT-X-DISCONTINUITY-SEQUENCE:5
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_397.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_398.ts?m=1676054627
#EXTINF:5.873,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_399.ts?m=1676054627
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056813
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056814
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056815
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056816
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056817
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056818
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056819
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056820
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-2",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056821
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056822
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056823
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056824
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056825
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056826
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056827
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056828
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-2",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-3",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056829
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056830
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056831
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056832
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056833
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056834
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056835
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056836
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-3",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=29.997
#EXT-X-DATERANGE:ID="421-4",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056837
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056838
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056839
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056840
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056841
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056842
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056843
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056844
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="421-4",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXTINF:6.206,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_410.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_411.ts?m=1676054627
```

**Example Origem do VOD HLS (com sinais SCTE):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:6,
index_720p1500k_00005.ts
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example Origem do VOD HLS:**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:4,
index_720p1500k_00005.ts
#EXTINF:2,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example Manifesto personalizado VOD HLS:**  
MediaTailor adiciona `PROGRAM-DATE-TIME` aos manifestos de VOD para usá-los como âncoras para os `DATERANGE` elementos HLS que indicam as posições do anúncio.  
O `DATERANGE` que MediaTailor gera tem valores de ID exclusivos. Para garantir a exclusividade (de acordo com as diretrizes especificadas em [Mapeamento do SCTE-35 em EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)) MediaTailor , associa o `MEDIA-SEQUENCE` número do *primeiro* segmento do anúncio do item ao número de sequência do anúncio dentro do item.  
No exemplo a seguir, MediaTailor concatena `MEDIA-SEQUENCE` 421 com o número da posição do anúncio.  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:1970-01-01T00:00:00Z
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00001.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00002.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00003.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00004.ts
#EXTINF:4.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00005.ts
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/28
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/29
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/30
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/31
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/32
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/33
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/34
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/35
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/36
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/37
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/38
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/39
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/40
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/41
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/42
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/43
#EXT-X-DISCONTINUITY
#EXTINF:2.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00006.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00007.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00008.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00009.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00010.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00011.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00012.ts
#EXT-X-ENDLIST
#EXT-X-DATERANGE:ID="5-1",START-DATE="1970-01-01T00:00:28.000Z",END-DATE="1970-01-01T00:00:43.015Z",DURATION=15.015
#EXT-X-DATERANGE:ID="5-2",START-DATE="1970-01-01T00:00:43.015Z",END-DATE="1970-01-01T00:00:58.030Z",DURATION=15.01
```

# Personalização de manifestos do DASH com metadados de anúncios
<a name="ad-id-manifest-dash"></a>

MediaTailor personaliza o manifesto com criativos retornados pelo Ad Decision Server (ADS). Para cada anúncio, MediaTailor também inclui um `EventStream` elemento que abrange a duração do anúncio. *O formato do `Event` elemento é semelhante ao descrito na seção [Sinalização criativa de anúncios em DASH e HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) na versão 2023 da publicação técnica do SVA.*

Para intervalos publicitários não preenchidos em configurações que têm o Slate ativado, MediaTailor acrescenta o período do Slate ao final do período de disponibilidade, mas sem nenhum metadado `EventStream`

Para cada anúncio incluído no manifesto personalizado, MediaTailor adiciona os metadados criativos, representados como um `CDATA` elemento dentro de um elemento. `Event`

**Example Origem linear do DASH (atributos SCTE em linha):**  

```
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2023-02-10T21:08:40+00:00" minimumUpdatePeriod="PT6S" availabilityStartTime="2023-02-09T22:47:05.865000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT80141.456S" id="104" duration="PT304.103S">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="4808487386">
        <SegmentTimeline>
          <S t="4824975858" d="360360" r="3"/>
          <S t="4826417298" d="316316"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="3846790126">
        <SegmentTimeline>
          <S t="3859981294" d="287744"/>
          <S t="3860269038" d="288768"/>
          <S t="3860557806" d="287744"/>
          <S t="3860845550" d="288768"/>
          <S t="3861134318" d="252928"/>
        </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
  </Period>
  <Period start="PT80445.560S" id="155" duration="PT44.978S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
      <Event duration="4048044">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="207000" tier="4095">
          <scte35:SpliceInsert spliceEventId="111" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program>
              <scte35:SpliceTime ptsTime="7239893422"/>
            </scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="4048044"/>
          </scte35:SpliceInsert>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="4826733614">
        <SegmentTimeline>
          <S t="4826733614" d="284284"/>
          <S t="4827017898" d="360360" r="5"/>
          <S t="4829180058" d="252252"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="3861387246">
        <SegmentTimeline>
          <S t="3861387246" d="227328"/>
          <S t="3861614574" d="288768"/>
          <S t="3861903342" d="287744"/>
          <S t="3862191086" d="288768"/>
          <S t="3862479854" d="287744"/>
          <S t="3862767598" d="288768"/>
          <S t="3863056366" d="287744"/>
          <S t="3863344110" d="202752"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:07:35.111Z"/>
  </Period>
  <Period start="PT80490.538S" id="163">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="4829432310">
        <SegmentTimeline>
          <S t="4829432310" d="348348"/>
          <S t="4829780658" d="360360" r="1"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="3863546862">
        <SegmentTimeline>
          <S t="3863546862" d="278528"/>
          <S t="3863825390" d="287744"/>
          <S t="3864113134" d="288768"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
  </Period>
</MPD>
```

**Example Manifesto personalizado linear do DASH (com sinalização criativa de anúncios):**  

```
<MPD availabilityStartTime="2023-02-09T22:47:05.865000+00:00" id="201" minBufferTime="PT10S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-10T21:08:43+00:00" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://d3fch9e2fcarly.cloudfront.net/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/</BaseURL>
    <Location>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/index.mpd?aws.sessionId=672ed481-4ffd-4270-936f-7c8403947f2e</Location>
    <Period duration="PT304.103S" id="104" start="PT80141.456S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4808487386" startNumber="151" timescale="60000">
                <SegmentTimeline>
                    <S d="360360" r="3" t="4824975858"/>
                    <S d="316316" t="4826417298"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3846790126" startNumber="151" timescale="48000">
                <SegmentTimeline>
                    <S d="287744" t="3859981294"/>
                    <S d="288768" t="3860269038"/>
                    <S d="287744" t="3860557806"/>
                    <S d="288768" t="3860845550"/>
                    <S d="252928" t="3861134318"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
    </Period>
    <Period id="155_1" start="PT22H20M45.56S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_1/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="xxxxx" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_1","ad_position": "155_1", "ad_type":"avail","creative_id": "123","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_2" start="PT22H21M0.575S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_2/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_2","ad_position": "155_2", "ad_type":"avail","creative_id": "234","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_3" start="PT22H21M15.59S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_3/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_3","ad_position": "155_3", "ad_type":"avail","creative_id": "345","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="163" start="PT80490.538S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4829432310" startNumber="164" timescale="60000">
                <SegmentTimeline>
                    <S d="348348" t="4829432310"/>
                    <S d="360360" r="1" t="4829780658"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3863546862" startNumber="164" timescale="48000">
                <SegmentTimeline>
                    <S d="278528" t="3863546862"/>
                    <S d="287744" t="3863825390"/>
                    <S d="288768" t="3864113134"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
    </Period>
</MPD>
```

# Interações do Ad Decision Server (ADS)
<a name="ad-id-ads-interactions"></a>

MediaTailor usa o valor do `id` atributo criativo da resposta VAST como um valor na sinalização do ID do anúncio. Se o valor do `id` atributo estiver vazio ou não estiver presente na resposta VAST, MediaTailor insere um valor vazio na sinalização do ID do anúncio.

**Example Resposta VAST:**  
O exemplo de resposta VAST a seguir inclui um valor de `id` atributo para o linear `Creative` em linha. MediaTailor extrai o valor do `Extension` elemento VAST personalizado e coloca esse valor nos metadados criativos do manifesto.  

```
<?xml version="1.0" encoding="utf-8"?>
<VAST version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Ad sequence="3">
        <InLine>
            <AdSystem>2.0</AdSystem>
            <AdTitle>AD-caribbean2-15</AdTitle>
            <Impression><![CDATA[https://n8ljfs0xxx.execute-api.us-west-2.amazonaws.com/v1/impression]]></Impression>
            <Creatives>
                <Creative sequence="3" apiFramework="inLine" id="1234">
                    <Linear>
                        <Duration>00:00:15</Duration>
                        <MediaFiles>
                            <MediaFile id="00002" delivery="progressive" type="video/mp4" width="1280" height="720"><![CDATA[https://d3re4i3vgppxxx.cloudfront.net/Media/Bumpers/AD-caribbean2-15-HD.mp4]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
          <Extensions>
            <Extension type="creative_signaling"><![CDATA[999999|TVNlDDNpFTchtpRj,E5TfTtcYd5IEzvEt,ChA05OHcvWRGFY6Zp5VSSlxUEJ2B9p8GGhQIDzIQkFeQC-Ho67FR3P9qNa6khSAGKgAyAA]]></Extension>
          </Extensions>
        </InLine>
    </Ad>
</VAST>
```

# API de rastreamento do lado do cliente
<a name="ad-id-client-side-tracking-api"></a>

O exemplo a seguir mostra como o SDK de um player vincula os metadados do anúncio no manifesto aos dados completos do evento de rastreamento na carga útil de resposta de rastreamento do lado do cliente com e. `creativeId` `adId`

**Example Mensagem JSON:**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "ads": [
        {
          "adId": "5",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "2.0",
          "adTitle": "AD-caribbean2-15",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1234",
          "creativeSequence": "2",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT30S",
          "startTimeInSeconds": 30,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myServer/impression"
              ],
              "duration": "PT15S",
              "durationInSeconds": 15,
              "eventId": "5",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT30S",
              "startTimeInSeconds": 30
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "5",
      "availProgramDateTime": null,
      "duration": "PT15S",
      "durationInSeconds": 15,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT30S",
      "startTimeInSeconds": 30
    }
  ],
  "nextToken": "UFQ1TTM0Ljk2N1NfMjAyMi0xMS0xOFQwNDozMzo1Mi4yNDUxOTdaXzE%3D",
  "nonLinearAvails": []
}
```