

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

# 광고 후 응답
<a name="monetization-functions-hooks-post-ads"></a>

## 실행 시
<a name="monetization-functions-hooks-post-ads-when"></a>

MediaTailor는 VAST 래퍼 리디렉션의 확인을 포함하여 ADS로부터 응답을 수신한 `POST_ADS_RESPONSE` 후에 매핑된 함수를 실행하고 구문 분석합니다. 이 함수는 MediaTailor가 삽입할 광고를 선택하기 전에 구문 분석된 광고를 표시하므로 여기서 변경한 내용은 광고 시간을 채우는 광고에 영향을 미칩니다.

후크는 모든 스트리밍 프로토콜(HLS 및 DASH) 및 모든 재생 모드(라이브, VOD 및 프리롤)에 대해 실행됩니다. 일반적으로 광고 시간당 한 번 실행됩니다. 한 번에 여러 광고 시간을 포함하는 ADS 응답(예: VMAP 응답)과 미리 가져온 광고 응답의 경우 MediaTailor가 응답을 처리하고 `avail` 입력 네임스페이스가 없으면 후크가 실행됩니다. `$exists(avail)`를 사용하여 가용 필드에 액세스하기 전에 확인합니다.

## Input
<a name="monetization-functions-hooks-post-ads-input"></a>

`event.*`, `adsRequest.*`, 및 `session.*``adsResponse.*`- 응답이 단일 광고 시간에 적용되는 `avail.*` 경우. 사용 가능한 모든 필드는 섹션을 참조하세요[입력 필드 참조](monetization-functions-hooks.md#monetization-functions-hooks-input-ref).

## 허용된 출력 네임스페이스
<a name="monetization-functions-hooks-post-ads-output"></a>


| 네임스페이스 | 허용되는 유형 | 출력 사용 방법 | 
| --- | --- | --- | 
| adsResponse.ads | 광고 객체 배열 | 이 응답에 대해 구문 분석된 광고 목록을 대체합니다. MediaTailor는 반환된 각 광고를의 원래 광고와 일치adId시키고 반환된 목록과 함께 광고 선택을 진행합니다. | 
| temp.\* | 임의 | 실행기의 단계 간에 값을 전달하기 위한 임시 데이터입니다. 지속되지 않습니다. | 

수정된 광고 목록을에 다시 씁니다`adsResponse.ads`. 다음을 수행할 수 있습니다.
+ **필터** - 원래 광고의 하위 집합을 반환합니다. 생략한 광고는 삽입 대상으로 간주되지 않으며, 해당 광고가 차지한 기간은 다른 광고가 채울 수 있게 됩니다.
+ **재정렬** - 광고를 다른 순서로 반환합니다. 순서는 광고 시간을 먼저 채우는 광고에 영향을 미칩니다.
+ **수정** - 광고`trackingEvents`에서 `durationSeconds`, `adTitle`, `adSystem``mediaFiles`, 또는를 변경합니다. 반환된 광고는 변경되지 않고 원래 VAST 메타데이터를 모두 유지합니다.
+ **주입** - 원래 응답에 없는 광고를 추가합니다. 새 항목에는 `adId`, 및 `durationSeconds`가 포함되어야 합니다`mediaFiles`. 동일한 후크 호출에서 `VAST_REQUEST` 함수로 가져온 광고는 예외입니다. MediaTailor가 광고의 구문 분석된 전체 VAST 데이터를 복원하기 때문에 이러한 광고를 별로 추가하는 `adId` 것만으로도 충분합니다. 자세한 내용은 [VAST 요청](monetization-functions-types-vast-request.md) 단원을 참조하십시오.

**중요**  
필터링할 때는 항상 JSONata 배열 생성자 또는 배열 강압을 사용합니다. 와 같은 필터 표현식은 정확히 하나의 광고가 일치할 때 단일 객체를 `adsResponse.ads[adSystem != 'BLOCKED']` 생성합니다. 0개의 광고가 일치하면 값이 전혀 생성되지 않습니다. 이 경우 출력 키는 생략되고 필터는 효과가 없습니다. 표현식을 대괄호로 묶거나를 추가합니다. `[]`   

```
{
    "Output": {
        "adsResponse.ads": "{%adsResponse.ads[adSystem != 'BLOCKED'][]%}"
    }
}
```

반환된 광고 목록에는 다음 규칙이 적용됩니다.
+ 두 항목이를 공유하면 `adId`첫 번째 항목이 성공합니다.
+ 잘못된 항목은 개별적으로 거부됩니다. 동일한 출력의 유효한 항목이 여전히 적용됩니다.
+ 삽입된 항목이 ADS 응답의 광고와 `adId` 충돌하는 경우 원래 광고가 기본으로 사용되고 그 위에 필드 변경 사항이 적용됩니다.

## 이 후크에 표시되지 않는 항목
<a name="monetization-functions-hooks-post-ads-scope"></a>

이 후크는 광고 선택 전에 실행되므로 나중에 다른 MediaTailor 기능이 기여하는 광고를 볼 수 없으며, 나중에 트랜스코딩 상태 및 채우기 결정이 발생하므로 궁극적으로 삽입할 광고를 확인할 수 없습니다. 미리 가져온 광고의 경우 MediaTailor가 미리 가져오기 응답 자체를 처리할 때 후크가 실행됩니다. 나중에 광고 시간에 이전에 미리 가져온 광고는이 후크가 실행된 후 병합되므로 후크는 해당 광고가 표시되지 않습니다. 최종 광고 세트에 대한 작업을 수행하려면를 사용합니다`PRE_MANIFEST_INSERTION`.

## 일반적인 사용 사례
<a name="monetization-functions-hooks-post-ads-use-cases"></a>
+ 경쟁 광고 시스템에서 광고를 제거하는 것과 같은 메타데이터를 기준으로 광고를 필터링하여 동일한 광고 시간(상대적 분리)에 표시되지 않도록 합니다.
+ 기본 응답이 짧을 때 `VAST_REQUEST` 함수를 사용하여 보조 광고 서버에서 추가 광고를 가져와 광고 목록에 추가합니다.
+ 선호하는 광고가 먼저 광고 시간을 채우도록 광고를 재정렬합니다.
+ 삽입 전에 추적 이벤트 또는 광고 메타데이터를 수정합니다.

## 실패 특성
<a name="monetization-functions-hooks-post-ads-failure"></a>

제한 시간, 표현식 오류 또는 잘못된 출력과 같은 이유로에 연결된 함수가 `POST_ADS_RESPONSE` 실패하면 MediaTailor는 함수의 출력을 삭제합니다. 요청은 연결된 함수가 없는 것처럼 원래 ADS 응답을 진행합니다. 직렬화된 입력이 입력 크기 제한을 초과하면 MediaTailor는 후크 호출을 완전히 건너뜁니다. 적용되는 제한은 섹션을 참조하세요[한도](monetization-functions-limits.md).