

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Richiesta VAST
<a name="monetization-functions-types-vast-request"></a>

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

Da utilizzare `VAST_REQUEST` quando la funzione deve recuperare gli annunci da un endpoint VAST (Video Ad Serving Template). MediaTailor invia la richiesta, analizza la risposta come VAST con i reindirizzamenti wrapper risolti e rende gli annunci analizzati disponibili per le tue espressioni di output. I casi d'uso più comuni includono il recupero degli annunci da un server pubblicitario secondario per integrare una breve risposta principale e il recupero di annunci o promozioni pubblicitarie da inserire nelle interruzioni pubblicitarie non compilate.

`VAST_REQUEST`le funzioni sono supportate negli hook `POST_ADS_RESPONSE` e nel `PRE_MANIFEST_INSERTION` ciclo di vita, da sole o come fasi all'interno di un esecutore. Gli annunci analizzati da una `VAST_REQUEST` funzione si integrano con gli output di tali hook con la massima fedeltà. Per informazioni dettagliate, vedi [In che modo gli annunci analizzati si integrano con gli output degli hook](#monetization-functions-types-vast-request-store).

## Campi di configurazione
<a name="monetization-functions-types-vast-request-fields"></a>

Una `VAST_REQUEST` funzione ha i seguenti campi:
+ **Runtime**: il linguaggio delle espressioni. Impostalo su`JSONATA`.
+ **MethodType**— Il metodo HTTP. I valori supportati sono `GET` (impostazione predefinita) e`POST`.
+ **Url**: l'endpoint VAST a cui inviare la richiesta. È possibile utilizzare un URL statico o un'espressione JSonata che crea l'URL in modo dinamico. Un URL statico deve utilizzare lo schema. `https`
+ **Intestazioni**: le intestazioni HTTP da includere nella richiesta, specificate come coppie di nome e valore dell'intestazione. Usa la sintassi delle `{%...%}` espressioni per i valori di intestazione dinamici.
+ **Corpo**: il corpo della richiesta da inviare. Utilizzato con `POST` le richieste, ad esempio per inviare una richiesta di offerta OpenRTB. È possibile utilizzare un'espressione JSonata per creare il corpo in modo dinamico.
+ **RequestTimeoutMilliseconds**(obbligatorio) — Quanto tempo aspettare per una risposta.
+ **Output**: definisce i valori da produrre dopo il completamento della chiamata. Ogni voce associa una chiave di output a un'espressione che può fare riferimento all'`response`oggetto, tra cui`response.parsedAds`.

I limiti delle richieste HTTP che si applicano alle `HTTP_REQUEST` funzioni si applicano anche in questo caso. Per informazioni dettagliate, vedi [Limits](monetization-functions-limits.md).

## Come viene elaborata la richiesta
<a name="monetization-functions-types-vast-request-phases"></a>

1. **Crea la richiesta**: MediaTailor valuta le `Body` espressioni `Url``Headers`, e rispetto allo stato corrente della sessione, quindi invia la richiesta. `POST`le richieste vengono inviate con il tipo di `application/json` contenuto.

1. **Analizza la risposta**: MediaTailor analizza il corpo della risposta come VAST. Se un annuncio è un wrapper VAST, MediaTailor segue la catena di reindirizzamento e la risolve nell'annuncio in linea finale. Le richieste di reindirizzamento wrapper vengono sempre inviate con, come richiesto dalla specifica VAST. `GET` Se il tuo endpoint restituisce un documento che contiene un URL VAST anziché VAST stesso (come fanno alcuni offerenti), concatena una `HTTP_REQUEST` fase che recupera l'URL, seguita da una fase che lo recupera. `VAST_REQUEST`

1. **Elabora gli annunci analizzati**: MediaTailor valuta le espressioni nel blocco di output. Queste espressioni possono fare riferimento allo stato della sessione originale e all'`response`oggetto.

## Campi di risposta
<a name="monetization-functions-types-vast-request-response"></a>

Al termine della chiamata, puoi fare riferimento ai seguenti campi nelle tue espressioni di output:


| Campo | Tipo | Description | 
| --- | --- | --- | 
| response.parsedAds | Array | Gli annunci analizzati, con i reindirizzamenti del wrapper risolti. Ogni annuncio ha la stessa forma delle adsResponse.ads voci contenute nell'POST\_ADS\_RESPONSEhook:adId,,,,, durationSeconds adSystemadTitle, creativeId e. sequence mediaFiles trackingEvents Impostato su un array vuoto quando la chiamata ha esito negativo o la risposta non è VALIDA VAST. | 
| response.statusCode | Numero intero | Il codice di stato HTTP restituito dall'endpoint. Impostato null su in caso di errore di rete. | 

Poiché gli annunci analizzati utilizzano la stessa forma`adsResponse.ads`, puoi spostare le espressioni tra le due superfici senza riscrivere i riferimenti ai campi.

## In che modo gli annunci analizzati si integrano con gli output degli hook
<a name="monetization-functions-types-vast-request-store"></a>

Ogni annuncio analizzato da una `VAST_REQUEST` funzione viene conservato internamente MediaTailor, digitato dall'ID annuncio VAST dell'annuncio, per tutta la durata della chiamata all'hook. Ciò offre agli annunci analizzati un trattamento di prima classe nei risultati degli hook:
+ Se si aggiunge un annuncio analizzato per unità`POST_ADS_RESPONSE`, vengono `adId` ripristinati i `adsResponse.ads` dati VAST analizzati completi dell'annuncio, inclusi l'elenco completo dei file multimediali e gli eventi di tracciamento.
+ In At`PRE_MANIFEST_INSERTION`, inserendo in un annuncio solo i relativi file multimediali, è MediaTailor possibile selezionare il `vastAdId` file multimediale migliore e gestire automaticamente la transcodifica della registrazione.

**Importante**  
Gli annunci conservati non vengono trasferiti tra una chiamata e l'altra. Una `VAST_REQUEST` chiamata effettuata a non `POST_ADS_RESPONSE` è disponibile per una chiamata successiva. `PRE_MANIFEST_INSERTION` Chiama `VAST_REQUEST` la stessa catena di funzioni dell'hook in cui ne usi i risultati.

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

Se la chiamata fallisce a causa di un errore di rete o di un timeout, se l'endpoint restituisce un errore HTTP o se la risposta non può essere analizzata come VAST, `response.parsedAds` è un array vuoto e la catena di funzioni continua. Controlla `response.statusCode` per distinguere un errore HTTP da una risposta VAST che non contiene effettivamente pubblicità.

**Suggerimento**  
Resta stretto`RequestTimeoutMilliseconds`. La risoluzione del wrapper VAST può comportare più round trip di rete e tutti vengono conteggiati nel timeout dell'hook e nel budget dell'hook condiviso.

## Esempio: recupera gli annunci da un server pubblicitario secondario
<a name="monetization-functions-types-vast-request-example"></a>

La seguente funzione recupera gli annunci da un server pubblicitario di backup e archivia gli annunci analizzati in dati temporanei. Un `CUSTOM_OUTPUT` passaggio successivo nella stessa sequenza può aggiungerli a. `adsResponse.ads` È progettato per il `POST_ADS_RESPONSE` ciclo di vita.

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

Per inviare invece una richiesta di offerta OpenRTB, imposta `POST` e fornisci la richiesta `MethodType` di offerta in. `Body` L'offerente deve restituire VAST nell'organo di risposta.

Per una panoramica completa di un esempio simile, vedi. [Esempi di funzioni](monetization-functions-examples.md)