

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

## 사용해야 하는 경우
<a name="monetization-functions-types-vast-request-when"></a>

함수가 VAST(Video Ad Serving Template) 엔드포인트에서 광고를 가져와야 할 `VAST_REQUEST` 때 사용합니다. MediaTailor는 요청을 보내고, 응답을 래퍼 리디렉션이 해결된 VAST로 구문 분석하고, 구문 분석된 광고를 출력 표현식에 사용할 수 있도록 합니다. 일반적인 사용 사례에는 짧은 기본 응답을 보완하기 위해 보조 광고 서버에서 광고를 가져오는 것과 과소 채워진 광고 시간에 삽입할 하우스 광고 또는 프로모션을 검색하는 것이 포함됩니다.

`VAST_REQUEST` 함수는 자체적으로 또는 실행기 내의 단계로 `POST_ADS_RESPONSE` 및 `PRE_MANIFEST_INSERTION` 수명 주기 후크에서 지원됩니다. `VAST_REQUEST` 함수에 의해 구문 분석된 광고는 완전한 충실도로 해당 후크의 출력과 통합됩니다. 자세한 내용은 [구문 분석된 광고가 후크 출력과 통합되는 방법](#monetization-functions-types-vast-request-store)을 참조하세요.

## 구성 필드
<a name="monetization-functions-types-vast-request-fields"></a>

`VAST_REQUEST` 함수에는 다음 필드가 있습니다.
+ **런타임** - 표현식 언어입니다. 이를 로 설정합니다`JSONATA`.
+ **MethodType** - HTTP 메서드입니다. 지원되는 값은 `GET` (기본값) 및 입니다`POST`.
+ **URL** - 요청을 보낼 VAST 엔드포인트입니다. 정적 URL 또는 URL을 동적으로 빌드하는 JSONata 표현식을 사용할 수 있습니다. 정적 URL은 `https` 스키마를 사용해야 합니다.
+ **헤더 **- 요청에 포함할 HTTP 헤더로, 헤더 이름 및 값 페어로 지정됩니다. 동적 헤더 값에 `{%...%}` 표현식 구문을 사용합니다.
+ **본문** - 전송할 요청 본문입니다. 예를 들어 OpenRTB 입찰 `POST` 요청을 보내는 요청과 함께 사용됩니다. JSONata 표현식을 사용하여 동적으로 본문을 빌드할 수 있습니다.
+ **RequestTimeoutMilliseconds**(필수) - 응답을 기다리는 시간입니다.
+ **출력** - 호출이 완료된 후 생성할 값을 정의합니다. 각 항목은를 포함하여 `response` 객체를 참조할 수 있는 표현식에 출력 키를 매핑합니다`response.parsedAds`.

`HTTP_REQUEST` 함수에 적용되는 HTTP 요청 제한도 여기에 적용됩니다. 자세한 내용은 [한도](monetization-functions-limits.md)을 참조하세요.

## 요청 처리 방법
<a name="monetization-functions-types-vast-request-phases"></a>

1. **요청 빌드** - MediaTailor는 현재 세션 상태를 기준으로 `Url`, `Headers`및 `Body` 표현식을 평가한 다음 요청을 전송합니다. `POST` 요청은 `application/json` 콘텐츠 유형과 함께 전송됩니다.

1. **응답 구문 분석 **- MediaTailor는 응답 본문을 VAST로 구문 분석합니다. 광고가 VAST 래퍼인 경우 MediaTailor는 리디렉션 체인을 따라 최종 인라인 광고로 확인합니다. 래퍼 리디렉션 요청은 VAST 사양`GET`에 따라 항상와 함께 전송됩니다. 엔드포인트가 VAST 자체 대신 VAST URL이 포함된 문서를 반환하는 경우(일부 입찰자처럼) URL을 검색하는 `HTTP_REQUEST` 단계를 연결한 다음 가져오는 `VAST_REQUEST` 단계를 연결합니다.

1. **구문 분석된 광고 처리 **- MediaTailor는 출력 블록의 표현식을 평가합니다. 이러한 표현식은 원래 세션 상태와 `response` 객체를 참조할 수 있습니다.

## 응답 필드
<a name="monetization-functions-types-vast-request-response"></a>

호출이 완료되면 출력 표현식에서 다음 필드를 참조할 수 있습니다.


| Field | 유형 | 설명 | 
| --- | --- | --- | 
| response.parsedAds | 배열 | 래퍼 리디렉션이 해결된 구문 분석된 광고입니다. 각 광고의 모양은 POST\_ADS\_RESPONSE 후크의 adsResponse.ads 항목과 동일합니다trackingEvents. adId, durationSeconds, adSystem, adTitle, creativeIdsequence, 및 mediaFiles. 호출이 실패하거나 응답이 유효한 VAST가 아닌 경우 빈 배열로 설정합니다. | 
| response.statusCode | Integer | 엔드포인트에서 반환한 HTTP 상태 코드입니다. 네트워크 장애 null 시를 로 설정합니다. | 

구문 분석된 광고는와 동일한 형태를 사용하므로 필드 참조를 다시 작성하지 않고도 두 표면 간에 표현식을 이동할 `adsResponse.ads`수 있습니다.

## 구문 분석된 광고가 후크 출력과 통합되는 방법
<a name="monetization-functions-types-vast-request-store"></a>

`VAST_REQUEST` 함수가 구문 분석하는 모든 광고는 MediaTailor에 의해 내부적으로 유지되며, 후크 간접 호출 기간 동안 광고의 VAST 광고 ID로 입력됩니다. 이렇게 하면 파싱된 광고가 후크 출력에서 일급 처리를 제공합니다.
+ 에서를 `adsResponse.ads` 통해 구문 분석된 광고를에 `POST_ADS_RESPONSE`추가하면 전체 미디어 파일 목록 및 추적 이벤트를 포함하여 광고의 전체 구문 분석된 VAST 데이터가 `adId` 복원됩니다.
+ 에서 로만 광고를 `PRE_MANIFEST_INSERTION`삽입`vastAdId`하면 MediaTailor가 최상의 미디어 파일을 선택하고 트랜스코딩 등록을 자동으로 처리할 수 있습니다.

**중요**  
보관된 광고는 후크 호출 간에 이월되지 않습니다. 에서 이루어진 `VAST_REQUEST` 호출`POST_ADS_RESPONSE`은 나중에 `PRE_MANIFEST_INSERTION` 호출할 수 없습니다. 결과를 사용하는 동일한 후크의 함수 체인`VAST_REQUEST`에서를 호출합니다.

## 실패 특성
<a name="monetization-functions-types-vast-request-failure"></a>

네트워크 오류 또는 제한 시간으로 인해 호출이 실패하거나, 엔드포인트가 HTTP 오류를 반환하거나, 응답을 VAST로 구문 분석할 수 없는 경우 `response.parsedAds`는 빈 배열이며 함수 체인은 계속됩니다. HTTP 실패와 실제로 광고가 포함되지 않은 VAST 응답을 구분`response.statusCode`하려면를 확인합니다.

**작은 정보**  
`RequestTimeoutMilliseconds` 꽉 조이세요. VAST 래퍼 확인에는 여러 네트워크 왕복이 포함될 수 있으며, 모든 네트워크 왕복은 후크의 제한 시간 및 공유 후크 예산에 포함됩니다.

## 예: 보조 광고 서버에서 광고 가져오기
<a name="monetization-functions-types-vast-request-example"></a>

다음 함수는 백업 광고 서버에서 광고를 가져오고 구문 분석된 광고를 임시 데이터에 저장합니다. 동일한 시퀀스의 나중 `CUSTOM_OUTPUT` 단계에서에 추가할 수 있습니다`adsResponse.ads`. 수명 `POST_ADS_RESPONSE` 주기 후크용으로 설계되었습니다.

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

대신 OpenRTB 입찰 요청을 보내려면를 `MethodType`로 설정하고에서 입찰 요청을 `POST` 제공합니다`Body`. 입찰자는 응답 본문에 VAST를 반환해야 합니다.

유사한 예제에 대한 전체 연습은 단원을 참조하십시오[함수 예제](monetization-functions-examples.md).