

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

# Esempio 4: fallback del server pubblicitario secondario
<a name="monetization-functions-examples-backup-ads"></a>

## Scenario
<a name="monetization-functions-examples-backup-ads-scenario"></a>

Il tuo ADS principale a volte restituisce un numero di annunci inferiore a quello che può contenere l'interruzione dell'annuncio. In tal caso, desideri recuperare annunci aggiuntivi da un server pubblicitario secondario e aggiungerli all'elenco degli annunci, in modo che gli annunci aggiuntivi possano occupare il tempo rimanente.

Questo esempio utilizza il `POST_ADS_RESPONSE` lifecycle hook. Una `VAST_REQUEST` funzione recupera gli annunci secondari e `SEQUENTIAL_EXECUTOR` orchestra il processo. Il blocco di output dell'esecutore aggiunge gli annunci recuperati all'elenco degli annunci e `RunCondition` salta completamente il recupero secondario quando la risposta principale contiene già un numero sufficiente di annunci.

## Configurazione della funzione
<a name="monetization-functions-examples-backup-ads-config"></a>

**Funzione Fetch (`fetchBackupAds`): **

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

**Sequenza (`backupAdsFallback`): **

```
{
    "FunctionId": "backupAdsFallback",
    "FunctionType": "SEQUENTIAL_EXECUTOR",
    "SequentialExecutorConfiguration": {
        "Runtime": "JSONATA",
        "TimeoutMilliseconds": 2000,
        "FunctionList": [
            { "FunctionId": "fetchBackupAds", "RunCondition": "{%$count(adsResponse.ads) < 3%}" }
        ],
        "Output": {
            "adsResponse.ads": "{%$count(adsResponse.ads) < 3 ? $append(adsResponse.ads, temp.backupAds)[] : adsResponse.ads[]%}"
        }
    }
}
```

## Mappatura delle funzioni
<a name="monetization-functions-examples-backup-ads-mapping"></a>

```
{
    "FunctionMapping": {
        "POST_ADS_RESPONSE": "backupAdsFallback"
    }
}
```

## Cosa succede in fase di esecuzione
<a name="monetization-functions-examples-backup-ads-runtime"></a>

1. MediaTailor riceve e analizza la risposta ADS primaria, quindi attiva il `POST_ADS_RESPONSE` lifecycle hook.

1. Se la risposta principale contiene meno di 3 annunci, la `RunCondition` valuta `true` e `fetchBackupAds` chiama il server pubblicitario secondario. MediaTailor quindi analizza la risposta come VAST, risolve i reindirizzamenti dei wrapper e scrive gli annunci analizzati su. `temp.backupAds`

1. Se la risposta principale contiene già 3 o più annunci, il recupero viene saltato e non è impostato. `temp.backupAds`

1. Il blocco di output della sequenza scrive l'elenco di annunci combinato in. `adsResponse.ads` Quando il recupero è stato saltato, la condizione prende il `else` ramo e restituisce gli annunci originali invariati. Poiché gli annunci secondari sono stati analizzati da una `VAST_REQUEST` funzione nella stessa chiamata all'hook, MediaTailor ripristina i dati VAST completi di ogni annuncio aggiunto prima della selezione dell'annuncio.

1. La selezione degli annunci procede con l'elenco combinato. Se il recupero secondario non è riuscito, `temp.backupAds` è un array vuoto e l'elenco di annunci originale viene utilizzato invariato.

**Nota**  
La parte finale dell'espressione `[]` di output è obbligatoria. Senza la coercizione degli array, un'espressione che produce zero o un annuncio non produce un array e l'output viene scartato o applicato in modo errato. Per ulteriori informazioni, consulta [Post-ads risposta](monetization-functions-hooks-post-ads.md).

Per ulteriori informazioni sui campi utilizzati in questo esempio, vedi e. [Richiesta VASTA](monetization-functions-types-vast-request.md) [Post-ads risposta](monetization-functions-hooks-post-ads.md)