

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

# Solicitação VAST
<a name="monetization-functions-types-vast-request"></a>

## Quando usar
<a name="monetization-functions-types-vast-request-when"></a>

Use `VAST_REQUEST` quando sua função precisar buscar anúncios de um endpoint do modelo de veiculação de anúncios em vídeo (VAST). MediaTailor envia a solicitação, analisa a resposta como VAST com os redirecionamentos do wrapper resolvidos e disponibiliza os anúncios analisados para suas expressões de saída. Casos de uso comuns incluem buscar anúncios de um servidor de anúncios secundário para complementar uma resposta primária curta e recuperar anúncios internos ou promoções para injetar em intervalos publicitários mal preenchidos.

`VAST_REQUEST`as funções são suportadas nos ganchos do `POST_ADS_RESPONSE` `PRE_MANIFEST_INSERTION` ciclo de vida, sozinhas ou como etapas dentro de um executor. Os anúncios analisados por uma `VAST_REQUEST` função se integram às saídas desses ganchos com total fidelidade. Para obter detalhes, consulte [Como os anúncios analisados se integram às saídas de gancho](#monetization-functions-types-vast-request-store).

## Campos de configuração
<a name="monetization-functions-types-vast-request-fields"></a>

Uma `VAST_REQUEST` função tem os seguintes campos:
+ **Runtime ** — A linguagem de expressão. Defina isso como`JSONATA`.
+ **MethodType**— O método HTTP. Os valores suportados são `GET` (o padrão) `POST` e.
+ **Url ** — O endpoint VAST para o qual enviar a solicitação. Você pode usar uma URL estática ou uma expressão JSOnata que cria a URL dinamicamente. Um URL estático deve usar o `https` esquema.
+ **Cabeçalhos ** — Os cabeçalhos HTTP a serem incluídos na solicitação, especificados como pares de nome e valor do cabeçalho. Use a sintaxe de `{%...%}` expressão para valores de cabeçalho dinâmicos.
+ **Corpo ** — O corpo da solicitação a ser enviada. Usado com `POST` solicitações, por exemplo, para enviar uma solicitação de lance do OpenRTB. Você pode usar uma expressão JSOnata para criar o corpo dinamicamente.
+ **RequestTimeoutMilliseconds**(obrigatório) — Quanto tempo esperar por uma resposta.
+ **Saída ** — Define os valores a serem produzidos após a conclusão da chamada. Cada entrada mapeia uma chave de saída para uma expressão que pode referenciar o `response` objeto, inclusive`response.parsedAds`.

Os limites de solicitação HTTP que se aplicam às `HTTP_REQUEST` funções também se aplicam aqui. Para obter detalhes, consulte [Limites](monetization-functions-limits.md).

## Como a solicitação é processada
<a name="monetization-functions-types-vast-request-phases"></a>

1. **Crie a solicitação ** — MediaTailor avalia as `Body` expressões`Url`,`Headers`, e em relação ao estado atual da sessão e, em seguida, envia a solicitação. `POST`as solicitações são enviadas com o tipo de `application/json` conteúdo.

1. **Analisa a resposta ** — MediaTailor analisa o corpo da resposta como VAST. Se um anúncio for um invólucro VAST, MediaTailor segue a cadeia de redirecionamento e a resolve para o anúncio embutido final. As solicitações de redirecionamento do Wrapper são sempre enviadas com`GET`, conforme exigido pela especificação VAST. Se seu endpoint retornar um documento que contém uma URL VAST em vez da própria VAST (como fazem alguns licitantes), encadeie uma `HTTP_REQUEST` etapa que recupere a URL, seguida por uma `VAST_REQUEST` etapa que a busque.

1. **Processe os anúncios analisados ** — MediaTailor avalia as expressões no bloco de saída. Essas expressões podem fazer referência ao estado original da sessão e ao `response` objeto.

## Campos de resposta
<a name="monetization-functions-types-vast-request-response"></a>

Depois que a chamada for concluída, você poderá fazer referência aos seguintes campos em suas expressões de saída:


| Campo | Tipo | Description | 
| --- | --- | --- | 
| response.parsedAds | Array | Os anúncios analisados, com os redirecionamentos do wrapper resolvidos. Cada anúncio tem o mesmo formato das adsResponse.ads entradas no POST\_ADS\_RESPONSE gancho: adId durationSecondsadSystem,adTitle,creativeId, sequencemediaFiles,, trackingEvents e. Defina como uma matriz vazia quando a chamada falhar ou a resposta não for VAST válida. | 
| response.statusCode | Inteiro | O código de status HTTP retornado pelo endpoint. Definido como null sem falha de rede. | 

Como os anúncios analisados usam a mesma forma de`adsResponse.ads`, você pode mover expressões entre as duas superfícies sem reescrever as referências de campo.

## Como os anúncios analisados se integram às saídas de gancho
<a name="monetization-functions-types-vast-request-store"></a>

Cada anúncio que uma `VAST_REQUEST` função analisa é retido internamente MediaTailor, digitado pelo ID do anúncio VAST do anúncio, durante a invocação do gancho. Isso oferece aos anúncios analisados um tratamento de primeira classe nas saídas de gancho:
+ Em`POST_ADS_RESPONSE`, anexar um anúncio analisado a `adsResponse.ads` by its `adId` restaura os dados VAST completos analisados do anúncio, incluindo a lista completa de arquivos de mídia e eventos de rastreamento.
+ Em`PRE_MANIFEST_INSERTION`, injetar apenas um anúncio `vastAdId` permite MediaTailor selecionar o melhor arquivo de mídia e gerenciar o registro de transcodificação automaticamente.

**Importante**  
Os anúncios retidos não são transferidos entre as invocações de ganchos. Uma `VAST_REQUEST` chamada feita em não `POST_ADS_RESPONSE` está disponível para uma `PRE_MANIFEST_INSERTION` invocação posterior. Chame `VAST_REQUEST` a mesma cadeia de funções do gancho em que você usa seus resultados.

## Comportamento com falha
<a name="monetization-functions-types-vast-request-failure"></a>

Se a chamada falhar devido a um erro de rede ou tempo limite, se o endpoint retornar um erro HTTP ou se a resposta não puder ser analisada como VAST, `response.parsedAds` é uma matriz vazia e a cadeia de funções continua. Verifique `response.statusCode` se há uma falha de HTTP de uma resposta VAST que realmente não contém anúncios.

**dica**  
Mantenha-se `RequestTimeoutMilliseconds` firme. A resolução do invólucro VAST pode envolver várias viagens de ida e volta à rede, e todas elas contam com base no tempo limite do gancho e no orçamento compartilhado do gancho.

## Exemplo: buscar anúncios de um servidor de anúncios secundário
<a name="monetization-functions-types-vast-request-example"></a>

A função a seguir busca anúncios de um servidor de anúncios de backup e armazena os anúncios analisados em dados temporários. Uma `CUSTOM_OUTPUT` etapa posterior na mesma sequência pode anexá-los a. `adsResponse.ads` Ele foi projetado para o gancho do `POST_ADS_RESPONSE` ciclo de vida.

```
{
    "FunctionId": "fetchBackupAds",
    "FunctionType": "VAST_REQUEST",
    "VastRequestConfiguration": {
        "Runtime": "JSONATA",
        "MethodType": "GET",
        "Url": "{%'https://backup-ads.example.com/vast?sid=' & session.uuid%}",
        "Headers": {
            "Accept": "application/xml"
        },
        "RequestTimeoutMilliseconds": 1000,
        "Output": {
            "temp.backupAds": "{%response.parsedAds%}"
        }
    }
}
```

Em vez disso, para enviar uma solicitação de lance do OpenRTB, `MethodType` defina `POST` e forneça a solicitação de lance em. `Body` O licitante deve devolver o VAST no órgão de resposta.

Para obter uma explicação completa de um exemplo semelhante, consulte. [Exemplos de funções](monetization-functions-examples.md)