

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

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

## Kapan harus digunakan
<a name="monetization-functions-types-vast-request-when"></a>

Gunakan `VAST_REQUEST` saat fungsi Anda perlu mengambil iklan dari titik akhir Template Penayangan Iklan Video (VAST). MediaTailor mengirimkan permintaan, mengurai respons sebagai VAST dengan pengalihan pembungkus diselesaikan, dan membuat iklan yang diurai tersedia untuk ekspresi keluaran Anda. Kasus penggunaan umum termasuk mengambil iklan dari server iklan sekunder untuk melengkapi respons primer singkat, dan mengambil iklan rumah atau promo untuk dimasukkan ke jeda iklan yang kurang terisi.

`VAST_REQUEST`fungsi didukung di kait `PRE_MANIFEST_INSERTION` siklus hidup `POST_ADS_RESPONSE` dan, sendiri atau sebagai langkah di dalam eksekutor. Iklan yang diurai oleh `VAST_REQUEST` fungsi terintegrasi dengan keluaran kait tersebut dengan kesetiaan penuh. Lihat perinciannya di [Bagaimana iklan yang diurai berintegrasi dengan output hook](#monetization-functions-types-vast-request-store).

## Bidang konfigurasi
<a name="monetization-functions-types-vast-request-fields"></a>

`VAST_REQUEST`Fungsi memiliki bidang berikut:
+ **Runtime ** — Bahasa ekspresi. Atur ini ke`JSONATA`.
+ **MethodType**— Metode HTTP. Nilai yang didukung adalah `GET` (default) dan`POST`.
+ **Ur ** l — Titik akhir VAST untuk mengirim permintaan. Anda dapat menggunakan URL statis atau ekspresi JSONata yang membangun URL secara dinamis. URL statis harus menggunakan `https` skema.
+ **Header ** — Header HTTP untuk disertakan dalam permintaan, ditentukan sebagai nama header dan pasangan nilai. Gunakan sintaks `{%...%}` ekspresi untuk nilai header dinamis.
+ **Tubuh ** — Badan permintaan untuk dikirim. Digunakan dengan `POST` permintaan, misalnya untuk mengirim permintaan tawaran OpenRTB. Anda dapat menggunakan ekspresi JSONata untuk membangun tubuh secara dinamis.
+ **RequestTimeoutMilliseconds**(wajib) - Berapa lama menunggu tanggapan.
+ **Output ** — Mendefinisikan nilai yang akan dihasilkan setelah panggilan selesai. Setiap entri memetakan kunci keluaran ke ekspresi yang dapat mereferensikan `response` objek, termasuk`response.parsedAds`.

Batas permintaan HTTP yang berlaku untuk `HTTP_REQUEST` fungsi juga berlaku di sini. Lihat perinciannya di [Batas](monetization-functions-limits.md).

## Bagaimana permintaan diproses
<a name="monetization-functions-types-vast-request-phases"></a>

1. **Membangun permintaan ** — MediaTailor mengevaluasi`Url`,`Headers`, dan `Body` ekspresi terhadap status sesi saat ini, lalu mengirim permintaan. `POST`permintaan dikirim dengan jenis `application/json` konten.

1. **Parsing respons ** — MediaTailor mengurai badan respons sebagai VAST. Jika iklan adalah pembungkus VAST, ikuti MediaTailor rantai pengalihan dan selesaikan ke iklan sebaris terakhir. Permintaan pengalihan pembungkus selalu dikirim`GET`, seperti yang diperlukan spesifikasi VAST. Jika titik akhir Anda mengembalikan dokumen yang berisi URL VAST alih-alih VAST itu sendiri (seperti yang dilakukan beberapa penawar), rangkaian `HTTP_REQUEST` langkah yang mengambil URL, diikuti dengan `VAST_REQUEST` langkah yang mengambilnya.

1. **Memproses iklan yang di ** urai — MediaTailor mengevaluasi ekspresi di blok output. Ekspresi ini dapat mereferensikan status sesi asli dan `response` objek.

## Bidang respons
<a name="monetization-functions-types-vast-request-response"></a>

Setelah panggilan selesai, Anda dapat mereferensikan bidang berikut dalam ekspresi Output Anda:


| Bidang | Tipe | Deskripsi | 
| --- | --- | --- | 
| response.parsedAds | Array | Iklan yang diurai, dengan pengalihan pembungkus diselesaikan. Setiap iklan memiliki bentuk yang sama dengan adsResponse.ads entri di POST\_ADS\_RESPONSE kait:adId,durationSeconds,adSystem,adTitle,creativeId,sequence,mediaFiles, dantrackingEvents. Setel ke array kosong ketika panggilan gagal atau responsnya tidak valid VAST. | 
| response.statusCode | Bilangan Bulat | Kode status HTTP dikembalikan oleh titik akhir. Setel ke null pada kegagalan jaringan. | 

Karena iklan yang diurai menggunakan bentuk yang sama seperti`adsResponse.ads`, Anda dapat memindahkan ekspresi di antara dua permukaan tanpa menulis ulang referensi bidang.

## Bagaimana iklan yang diurai berintegrasi dengan output hook
<a name="monetization-functions-types-vast-request-store"></a>

Setiap iklan yang di `VAST_REQUEST` urai fungsi disimpan secara internal oleh MediaTailor, dikunci oleh ID iklan VAST iklan, selama durasi pemanggilan hook. Ini memberikan perlakuan kelas satu iklan yang diurai dalam output hook:
+ Pada`POST_ADS_RESPONSE`, menambahkan iklan yang diurai ke `adsResponse.ads` by itu `adId` mengembalikan data VAST lengkap yang diurai iklan, termasuk daftar file media lengkap dan peristiwa pelacakan.
+ Di`PRE_MANIFEST_INSERTION`, menyuntikkan iklan hanya dengan itu `vastAdId` memungkinkan MediaTailor memilih file media terbaik dan menangani pendaftaran transcoding secara otomatis.

**penting**  
Iklan yang dipertahankan tidak terbawa di antara pemanggilan kait. Pang `VAST_REQUEST` gilan yang `POST_ADS_RESPONSE` dilakukan di tidak tersedia untuk pemang `PRE_MANIFEST_INSERTION` gilan nanti. Pang `VAST_REQUEST` gil rantai fungsi hook yang sama tempat Anda menggunakan hasilnya.

## Perilaku kegagalan
<a name="monetization-functions-types-vast-request-failure"></a>

Jika panggilan gagal karena kesalahan jaringan atau batas waktu, jika titik akhir mengembalikan kesalahan HTTP, atau jika respons tidak dapat diurai sebagai VAST, `response.parsedAds` adalah array kosong dan rantai fungsi berlanjut. Periksa `response.statusCode` untuk membedakan kegagalan HTTP dari respons VAST yang benar-benar tidak mengandung iklan.

**Tip**  
Tetap `RequestTimeoutMilliseconds` kencang. Resolusi pembungkus VAST dapat melibatkan beberapa perjalanan pulang pergi jaringan, dan semuanya diperhitungkan terhadap batas waktu hook dan anggaran hook bersama.

## Contoh: Mengambil iklan dari server iklan sekunder
<a name="monetization-functions-types-vast-request-example"></a>

Fungsi berikut mengambil iklan dari server iklan cadangan dan menyimpan iklan yang diurai dalam data sementara. Sel `CUSTOM_OUTPUT` angkah kemudian dalam urutan yang sama dapat menambahkannya ke`adsResponse.ads`. Ini dirancang untuk kait `POST_ADS_RESPONSE` siklus hidup.

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

Untuk mengirim permintaan tawaran OpenRTB sebagai gantinya, setel `MethodType` ke `POST` dan berikan permintaan tawaran di. `Body` Penawar harus mengembalikan VAST di badan tanggapan.

Untuk panduan lengkap dari contoh serupa, lihat[Contoh fungsi](monetization-functions-examples.md).