

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiel 4: Fallback für sekundären Anzeigenserver
<a name="monetization-functions-examples-backup-ads"></a>

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

Ihr primäres ADS liefert manchmal weniger Anzeigen, als die Werbeunterbrechung aufnehmen kann. In diesem Fall möchten Sie zusätzliche Anzeigen von einem sekundären Anzeigenserver abrufen und an die Anzeigenliste anhängen, damit die zusätzlichen Anzeigen die verbleibende Zeit ausfüllen können.

In diesem Beispiel wird der `POST_ADS_RESPONSE` Lifecycle-Hook verwendet. Eine `VAST_REQUEST` Funktion ruft die sekundären Anzeigen ab, und a `SEQUENTIAL_EXECUTOR` orchestriert den Prozess. Der Ausgabeblock des Executors hängt die abgerufenen Anzeigen an die Anzeigenliste an, und der sekundäre Abruf wird vollständig `RunCondition` übersprungen, wenn die primäre Antwort bereits genügend Anzeigen enthält.

## Konfiguration der Funktion
<a name="monetization-functions-examples-backup-ads-config"></a>

**Funktion abrufen (`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%}"
        }
    }
}
```

**Sequenz (`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[]%}"
        }
    }
}
```

## Zuordnung der Funktionen
<a name="monetization-functions-examples-backup-ads-mapping"></a>

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

## Was passiert zur Laufzeit
<a name="monetization-functions-examples-backup-ads-runtime"></a>

1. MediaTailor empfängt und analysiert die primäre ADS-Antwort und löst dann den `POST_ADS_RESPONSE` Lifecycle-Hook aus.

1. Wenn die primäre Antwort weniger als 3 Anzeigen enthält, wird der sekundäre `true` Anzeigenserver `RunCondition` `fetchBackupAds` ausgewertet und aufgerufen. MediaTailor analysiert dann die Antwort als VAST, löst Wrapper-Weiterleitungen auf und schreibt die analysierten Anzeigen in. `temp.backupAds`

1. Wenn die primäre Antwort bereits 3 oder mehr Anzeigen enthält, wird der Abruf übersprungen und nicht gesetzt. `temp.backupAds`

1. Der Ausgangsblock der Sequenz schreibt die kombinierte Anzeigenliste in. `adsResponse.ads` Wenn der Abruf übersprungen wurde, übernimmt die Bedingung den `else` Zweig und gibt die ursprünglichen Anzeigen unverändert zurück. Da die sekundären Anzeigen bei demselben Hook-Aufruf von einer `VAST_REQUEST` Funktion analysiert wurden, werden die vollständigen VAST-Daten jeder angehängten Anzeige vor der Anzeigenauswahl MediaTailor wiederhergestellt.

1. Die Anzeigenauswahl wird mit der kombinierten Liste fortgesetzt. Wenn der sekundäre Abruf fehlgeschlagen `temp.backupAds` ist, handelt es sich um ein leeres Array und die ursprüngliche Anzeigenliste wird unverändert verwendet.

**Anmerkung**  
Das Ende des `[]` Ausgabeausdrucks ist erforderlich. Ohne Array-Zwang erzeugt ein Ausdruck, der Null oder Eins ergibt, kein Array, und die Ausgabe wird verworfen oder falsch angewendet. Weitere Informationen finden Sie unter [Post-ads Antwort](monetization-functions-hooks-post-ads.md).

Weitere Informationen zu den in diesem Beispiel verwendeten Feldern finden Sie unter und. [RIESIGE Anfrage](monetization-functions-types-vast-request.md) [Post-ads Antwort](monetization-functions-hooks-post-ads.md)