

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á.

# 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
    }
  ]
}
```