

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

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