

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Contoh 4: Fallback server iklan sekunder
<a name="monetization-functions-examples-backup-ads"></a>

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

ADS utama Anda terkadang menampilkan lebih sedikit iklan daripada yang dapat ditahan jeda iklan. Ketika itu terjadi, Anda ingin mengambil iklan tambahan dari server iklan sekunder dan menambahkannya ke daftar iklan, sehingga iklan tambahan dapat mengisi waktu yang tersisa.

Contoh ini menggunakan kait `POST_ADS_RESPONSE` siklus hidup. `VAST_REQUEST`Fungsi mengambil iklan sekunder, dan mengatur `SEQUENTIAL_EXECUTOR` proses. Blok keluaran pelaksana menambahkan iklan yang diambil ke daftar iklan, dan melompati pengam `RunCondition` bilan sekunder sepenuhnya ketika respons utama sudah memiliki cukup iklan.

## Konfigurasi fungsi
<a name="monetization-functions-examples-backup-ads-config"></a>

**Fetch function (`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%}"
        }
    }
}
```

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

## Pemetaan fungsi
<a name="monetization-functions-examples-backup-ads-mapping"></a>

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

## Apa yang terjadi saat runtime
<a name="monetization-functions-examples-backup-ads-runtime"></a>

1. MediaTailor menerima dan mengurai respons ADS utama, lalu mengaktifkan kait `POST_ADS_RESPONSE` siklus hidup.

1. Jika respons utama berisi kurang dari 3 iklan, maka `RunCondition` akan mengevaluasi `true` dan `fetchBackupAds` memanggil server iklan sekunder. MediaTailor kemudian mengurai respons sebagai VAST, menyelesaikan pengalihan pembungkus, dan menulis iklan yang diurai ke. `temp.backupAds`

1. Jika respons utama sudah memiliki 3 iklan atau lebih, pengambilan dilewati dan tidak `temp.backupAds` disetel.

1. Blok keluaran urutan menulis daftar iklan gabungan ke`adsResponse.ads`. Ketika pengambilan dilewati, kondisi mengambil `else` cabang dan mengembalikan iklan asli tidak berubah. Karena iklan sekunder diurai oleh `VAST_REQUEST` fungsi dalam pemanggilan kait yang sama, MediaTailor mengembalikan data VAST lengkap setiap iklan yang ditambahkan sebelum pemilihan iklan.

1. Pemilihan iklan dilanjutkan dengan daftar gabungan. Jika pengambilan sekunder gagal, `temp.backupAds` adalah array kosong dan daftar iklan asli digunakan tidak berubah.

**catatan**  
Terakhir `[]` dalam ekspresi keluaran diperlukan. Tanpa paksaan array, ekspresi yang menghasilkan nol atau satu iklan tidak menghasilkan array, dan output dibuang atau salah diterapkan. Untuk informasi selengkapnya, lihat [Post-ads tanggapan](monetization-functions-hooks-post-ads.md).

Untuk informasi selengkapnya tentang bidang yang digunakan dalam contoh ini, lihat [Permintaan VAST](monetization-functions-types-vast-request.md) dan[Post-ads tanggapan](monetization-functions-hooks-post-ads.md).