

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

# Post-ads resposta
<a name="monetization-functions-hooks-post-ads"></a>

## Quando dispara
<a name="monetization-functions-hooks-post-ads-when"></a>

MediaTailor executa a função mapeada `POST_ADS_RESPONSE` após receber e analisar uma resposta do ADS, incluindo a resolução de redirecionamentos do wrapper VAST. A função vê os anúncios analisados antes de MediaTailor selecionar os anúncios a serem inseridos, portanto, as alterações feitas aqui influenciam quais anúncios preenchem o intervalo do anúncio.

O gancho é acionado em todos os protocolos de streaming (HLS e DASH) e em todos os modos de reprodução (ao vivo, VOD e pré-rolagem). Normalmente, ele é acionado uma vez por intervalo do anúncio. Para respostas do ADS que abrangem vários intervalos publicitários ao mesmo tempo (como respostas do VMAP) e para respostas de anúncios pré-buscados, o gancho é acionado quando MediaTailor processa a resposta e o namespace `avail` de entrada não está presente. Use `$exists(avail)` para verificar antes de acessar os campos disponíveis.

## Input
<a name="monetization-functions-hooks-post-ads-input"></a>

`event.*`,`session.*`, e`adsRequest.*`, além disso`adsResponse.*`, `avail.*` quando a resposta se aplica a um único intervalo publicitário. Para ver todos os campos disponíveis, consulte[Referência do campo de entrada](monetization-functions-hooks.md#monetization-functions-hooks-input-ref).

## Namespace de saída permitido
<a name="monetization-functions-hooks-post-ads-output"></a>


| Namespace | Tipos aceitos | Como a saída é usada | 
| --- | --- | --- | 
| adsResponse.ads | Matriz de objetos de anúncio | Substitui a lista de anúncios analisada por essa resposta. MediaTailor combina cada anúncio retornado com os anúncios originais adId e prossegue com a seleção de anúncios com a lista retornada. | 
| temp.\* | Any | Dados temporários para passar valores entre etapas em um executor. Não persistiu. | 

Escreva a lista de anúncios modificada de volta para`adsResponse.ads`. Você pode:
+ **Filtro ** — retorna um subconjunto dos anúncios originais. Os anúncios que você omite não são considerados para inserção, e a duração que eles ocuparam fica disponível para outros anúncios preencherem.
+ **Reordenar ** — devolva os anúncios em uma ordem diferente. A ordem afeta quais anúncios preenchem primeiro o intervalo publicitário.
+ **Modificar ** — alterar `durationSeconds` `adSystem``adTitle`,,`mediaFiles`, ou `trackingEvents` em um anúncio. Os anúncios retornados inalterados mantêm todos os metadados VAST originais.
+ **Injetar ** — adicione anúncios que não estavam na resposta original. Uma nova entrada deve incluir `adId``durationSeconds`, `mediaFiles` e. Anúncios obtidos com uma `VAST_REQUEST` função na mesma invocação de gancho são uma exceção: basta acrescentar esse anúncio por its`adId`, pois MediaTailor restaura os dados VAST completos analisados do anúncio. Para obter mais informações, consulte [Solicitação VAST](monetization-functions-types-vast-request.md).

**Importante**  
Sempre use um construtor de matriz JSonata ou coerção de matriz ao filtrar. Uma expressão de filtro, como, `adsResponse.ads[adSystem != 'BLOCKED']` produz um único objeto quando exatamente um anúncio corresponde. Ele não produz nenhum valor quando nenhum anúncio corresponde. Nesse caso, a chave de saída é omitida e o filtro não tem efeito. Coloque a expressão entre colchetes ou acrescente`[]`:  

```
{
    "Output": {
        "adsResponse.ads": "{%adsResponse.ads[adSystem != 'BLOCKED'][]%}"
    }
}
```

As regras a seguir se aplicam à lista de anúncios retornada:
+ Se duas entradas compartilharem um`adId`, a primeira ocorrência vence.
+ As entradas inválidas são rejeitadas individualmente. Entradas válidas na mesma saída ainda se aplicam.
+ Se uma entrada injetada `adId` colidir com um anúncio da resposta do ADS, o anúncio original será usado como base e suas alterações de campo serão aplicadas sobre ele.

## O que esse gancho não vê
<a name="monetization-functions-hooks-post-ads-scope"></a>

Esse gancho é executado antes da seleção do anúncio, portanto, ele não vê anúncios que outros MediaTailor recursos contribuem posteriormente e não pode determinar quais anúncios serão inseridos, pois as decisões de transcodificação de status e preenchimento acontecem posteriormente. Para anúncios pré-buscados, o gancho é acionado quando MediaTailor processa a própria resposta de pré-busca. Em um intervalo publicitário posterior, esses anúncios pré-buscados anteriormente são mesclados após a execução desse gancho, para que o gancho não os veja lá. Para atuar no conjunto final de anúncios, use`PRE_MANIFEST_INSERTION`.

## Caso de uso típico
<a name="monetization-functions-hooks-post-ads-use-cases"></a>
+ Filtre anúncios por metadados, como remover anúncios de sistemas de anúncios concorrentes para que eles não apareçam no mesmo intervalo publicitário (separação competitiva).
+ Busque anúncios adicionais de um servidor de anúncios secundário com uma `VAST_REQUEST` função quando a resposta principal for curta e anexe-os à lista de anúncios.
+ Reordene os anúncios para que os anúncios preferidos preencham primeiro o intervalo publicitário.
+ Modifique os eventos de rastreamento ou os metadados do anúncio antes da inserção.

## Comportamento com falha
<a name="monetization-functions-hooks-post-ads-failure"></a>

Se uma função associada a `POST_ADS_RESPONSE` falhar por qualquer motivo, como tempo limite, erro de expressão ou saída inválida, MediaTailor descarta a saída da função. A solicitação prossegue com a resposta original do ADS, como se nenhuma função estivesse anexada. Se a entrada serializada exceder o limite de tamanho da entrada, MediaTailor ignora completamente a invocação do gancho. Para ver os limites aplicáveis, consulte[Limites](monetization-functions-limits.md).