

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

# 오버레이 광고
<a name="overlay-ads"></a>

미드롤 광고로 시청 환경을 중단하지 않고 수익 창출을 늘리려는 라이브 스트리밍 워크플로의 경우 현재 AWS Elemental MediaTailor 통합을 활용하여 클라이언트 측에서 렌더링되는 광고 형식을 안내할 수 있습니다. 이러한 유형의 광고를 *오버레이 광고라고 합니다*. 오버레이 광고는 'L-대역 광고', '비선형 비디오 광고', 'picture-in-picture 광고', '모션 오버레이', '콘텐츠 내 광고' 또는 '프레임 광고'의 형태로 나타나는 비선형 비디오 광고입니다.

MediaTailor는 분할 유형이 오버레이 광고 삽입 기회에 대한 대역 내 신호`id=0x38`인 SCTE-35 마커를 감지합니다. SCTE-35 마커를 사용하면 MediaTailor가 Ad Decision Server(ADS)에 요청을 보낸 다음 VAST 응답에서 비선형 광고 페이로드로 응답합니다. MediaTailor는 오버레이 광고 삽입을 지원하기 위해 VAST 응답을 구문 분석합니다. MediaTailor는 선형 광고를 스티칭하지 않고 플레이어에게 재생할 수 있는 비선형 오버레이 광고가 있음을 알립니다. 이 신호를 통해 플레이어는 클라이언트 측 추적 엔드포인트에서 재생할 비선형 광고를 가져오고 상호 연관시킬 수 있습니다. 그러면 플레이어가 해당 광고와 관련된 디스플레이, 보고 및 기타 작업을 처리합니다. 예를 들어 플레이어의 개발자는 오버레이 광고 형식을 지원하는 공급업체의 디바이스 SDK를 사용할 수 있습니다. 클라이언트 측 추적 통합에 대한 자세한 내용은 섹션을 참조하세요[클라이언트 측 광고 추적 통합](ad-reporting-client-side-ad-tracking-integrations.md).

![\[이미지는 콘텐츠 비디오와 함께 표시되는 다양한 광고 유형의 타임라인을 보여줍니다. 선형 광고는 콘텐츠 비디오 전후에 재생됩니다. 콘텐츠 비디오 이전의 광고를 롤링 전 광고라고 합니다. 콘텐츠 비디오 이후의 광고를 롤 후 광고라고 합니다. 비선형 광고는 콘텐츠 비디오 자체의 일부를 겹칩니다. 비선형 광고를 오버레이 광고라고 합니다.\]](http://docs.aws.amazon.com/ko_kr/mediatailor/latest/ug/images/client-side-overlays.png)


**Topics**
+ [MediaTailor에서 오버레이 광고를 사용하기 위한 사전 조건](overlay-ads-prerequisites.md)
+ [MediaTailor에서 오버레이 광고 사용 시작하기](overlay-ads-getting-started.md)
+ [MediaTailor에서 오버레이 광고에 대한 로깅 및 지표](overlay-ads-logging-and-metrics.md)
+ [MediaTailor의 오버레이 광고에 대한 결제](overlay-ads-billing.md)

# MediaTailor에서 오버레이 광고를 사용하기 위한 사전 조건
<a name="overlay-ads-prerequisites"></a>

MediaTailor에서 오버레이 광고를 사용할 때 다음 사전 조건이 적용됩니다.
+ 워크플로는 온디맨드 비디오(VOD)가 아닌 라이브여야 합니다.
+ Ad Decision Server(ADS) 응답은 VAST 응답에서 비선형 광고만 반환하도록 구성해야 합니다. MediaTailor는 광고 스티칭을 위해 선형 광고를 무시합니다.
+ 매니페스트는 오버레이 광고 기능을 호출`id=0x38`하려면 분할 유형이 있는 SCTE-35 시간 신호 메시지를 사용해야 합니다.
+ 스트리밍 공급자는 클라이언트 디바이스 애플리케이션을 제어하고 MediaTailor 클라이언트 측 추적 API와 통합되어야 합니다.

# MediaTailor에서 오버레이 광고 사용 시작하기
<a name="overlay-ads-getting-started"></a>

이 섹션에서는 MediaTailor의 오버레이 광고 기능을 사용하여 시작하는 방법을 설명합니다. SCTE-35 신호 전송을 설정하고, Ad Decision Server(ADS) 응답을 구성하고, 세션 수준 제어를 설정합니다.

**Topics**
+ [오버레이 광고 활성화](overlay-ads-getting-started-enabling.md)
+ [클라이언트 측 메타데이터를 사용하여 오버레이 광고 추적](overlay-ads-client-side-tracking-metadata.md)

# 오버레이 광고 활성화
<a name="overlay-ads-getting-started-enabling"></a>

오버레이 광고에 대한 MediaTailor 지원은 기본적으로 활성화되어 있습니다. 매니페스트의 특정 SCTE-35 광고 마커 유형은 오버레이 광고 삽입을 트리거합니다. 일부 플레이어는 오버레이 광고의 클라이언트 측 렌더링을 지원하지 않을 수 있으므로 세션 수준에서 기능을 비활성화할 수 있습니다.

**HLS 또는 DASH 재생 접두사를 사용하여 오버레이 광고 지원을 비활성화하려면:**
+ 플레이어에서 프로토콜에 따라 다음 형식 중 하나로 요청을 사용하여 새 MediaTailor 재생 세션을 초기화합니다.
  + 예: HLS 형식

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```
  + 예: DASH 형식

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```

**세션 초기화 접두사를 사용하여 오버레이 광고 지원을 비활성화하려면:**
+ 플레이어에서 MediaTailor에 대한 세션 초기화 요청에 대한 JSON 메시지 본문을 구성합니다.
  + 광고 오버레이 지원을 비활성화하려면 `overlays` 객체를 값이 인 최상위 키로 추가합니다`off`. 기본`overlays`값은 입니다`on`.
  + (선택 사항) MediaTailor가 `adsParams` 객체 내의 ADS로 전달하는 파라미터를 제공합니다. 이러한 파라미터는 MediaTailor 구성의 ADS 템플릿 URL에 있는 `[player_params.param]` 설정에 해당합니다.

**Example HLS:**  

```
POST master.m3u8
    {
       "adsParams": {
           "deviceType": "ipad"
       },
       "overlayAvails": "off"
    }
```

**Example DASH:**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "androidmobile"
       },
       "overlayAvails": "off"
    }
```

# 매니페스트 신호
<a name="overlay-ads-manifest-signaling"></a>

MediaTailor 트리거 오버레이 광고는 매니페스트에 특정 SCTE-35 마커가 표시되면 지원합니다. 필수 신호는 공급자 오버레이 광고 시작 신호인 스플라이스 명령 유형 6 또는 시간 신호입니다. 이 신호의 세분화 유형 ID는 입니다. `0x38` 

다음 예제는 JSON 객체의 `0x38` SCTE-35 마커를 보여줍니다.

```
{
  "tableId": 252,
  "selectionSyntaxIndicator": false,
  "privateIndicator": false,
  "sectionLength": 53,
  "protocolVersion": 0,
  "encryptedPacket": false,
  "encryptedAlgorithm": 0,
  "ptsAdjustment": 0,
  "cwIndex": 0,
  "tier": 4095,
  "spliceCommandLength": 5,
  "spliceCommandType": 6,
  "spliceCommand": {
    "specified": true,
    "pts": 1800392
  },
  "descriptorLoopLength": 31,
  "descriptors": [
    {
      "spliceDescriptorTag": 2,
      "descriptorLength": 29,
      "indentifier": "CUEI",
      "segmentationEventId": 158389361,
      "segmentationEventCancelIndicator": false,
      "programSegmentationFlag": true,
      "segmentationDurationFlag": true,
      "deliveryNotRestrictedFlag": false,
      "webDeliveryAllowedFlag": true,
      "noRegionalBlackoutFlag": true,
      "archiveAllowedFlag": true,
      "deviceResctrictions": 3,
      "segmentationDuration": 1350000,
      "segmentationUpidType": 9,
      "segmentationUpidLength": 7,
      "segmentationUpid": {
        "0": 111,
        "1": 118,
        "2": 101,
        "3": 114,
        "4": 108,
        "5": 97,
        "6": 121
      },
      "segmentationTypeId": 56,
      "segmentNum": 1,
      "segmentsExpected": 0
    }
  ],
  "crc": 2510422713
}
```

다음 예제는 바이너리(베이스 32/16진수) 값으로 표시되는 SCTE-35 신호를 보여줍니다.

```
0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
```

다음 예제는 HLS 매니페스트와 DASH 매니페스트 모두에서 SCTE-35 마커를 보여줍니다.

**Example : HLS 매니페스트**  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:419
#EXT-X-DISCONTINUITY-SEQUENCE:3
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:09.231Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:15.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:21.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00002.ts
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="1692073825251-30-1",START-DATE="2023-08-15T04:30:25.251Z",DURATION=10.0,PLANNED-DURATION=10.0,SCTE35-OUT=0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:25.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00003.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:27.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00004.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:33.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00005.ts
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:35.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00006.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:39.251Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
```

**Example : DASH 매니페스트**  

```
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="2023-08-15T16:34:05.911Z" minBufferTime="PT30S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-08-15T16:34:17.950Z" suggestedPresentationDelay="PT20S" timeShiftBufferDepth="PT1M30S" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
  <Period xmlns="urn:mpeg:dash:schema:mpd:2011" id="1692117245944_1" start="PT0.033S">
    <BaseURL>https://aws.cloudfront.net/out/v1/abc/123/def/</BaseURL>
    <EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
      <Event duration="900000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
          <scte35:TimeSignal>
            <scte35:SpliceTime ptsTime="0"/>
          </scte35:TimeSignal>
          <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="900000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="56" segmentsExpected="0" subSegmentNum="0" subSegmentsExpected="0">
            <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">63736f7665726c6179</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation bandwidth="3000000" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="1" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2499968" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="2" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2200000" codecs="avc1.4D401F" frameRate="30/1" height="720" id="3" width="1280">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
      <Label>Alternate Audio</Label>
      <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="9">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="48000">
          <SegmentTimeline>
            <S d="98304" t="0"/>
            <S d="96256" t="98304"/>
            <S d="95232" t="194560"/>
            <S d="96256" r="2" t="289792"/>
            <S d="95232" t="578560"/>
            <S d="46080" t="673792"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
```

# Ad Decision Server(ADS) 응답
<a name="overlay-ads-ads-response"></a>

ADS 응답에는 하나의 유효한 추적 이벤트가 포함되어야 합니다. 최소한 추적 이벤트는 `Impression` 추적 이벤트일 수 있습니다. 추적 이벤트에는 하나 이상의 `NonLinear` 광고가 포함되어야 합니다. 이 광고는 정적, HTML 또는 iFrame 리소스의 형태를 취하는 오버레이 광고입니다.

```
<vmap AdBreak breaktype="linear" breakId="csoverlay"
```

VAST 응답이 `nonlinear``breakType`가 인 VMAP인 경우 가용 메타데이터는 `nonLinearAvails` 루트 객체 내에 있습니다. VAST 응답이 `breakType`가 인 VMAP`linear`이거나 VMAP가 없는 일반 VAST 응답인 경우 가용 메타데이터는 `avails` 루트 객체 내에 있습니다.

다음 VAST 응답은 `breakType` 값이 인 래핑된 VMAP 응답입니다`linear`.

래핑된 VMAP 응답 외에도 MediaTailor는 `breakType` 값이 인 래핑된 VMAP 응답`nonlinear`과 일반 VAST 응답도 지원합니다.

```
<?xml version="1.0" encoding="utf-8"?>
<vmap:VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0">
  <vmap:AdBreak breakType="linear" breakId="csoverlay">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
      <vmap:VASTAdData>
        <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:noNamespaceSchemaLocation="vast.xsd">
          <Ad sequence="1">
            <InLine>
              <AdSystem>2.0</AdSystem>
              <AdTitle>2</AdTitle>
              <Impression><![CDATA[https://adserver.com/beacon=impression]]></Impression>
              <Creatives>
                <Creative>
                  <NonLinearAds>
                    <NonLinear width="640" height="360" id="18">
                      <StaticResource creativeType="text/js_ref"><![CDATA[https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26]]></StaticResource>
                    </NonLinear>
                  </NonLinearAds>
                </Creative>
              </Creatives>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
    <vmap:TrackingEvents>
      <vmap:Tracking event="breakStart"><![CDATA[https://adserver.com/beacon=breakstartimpression]]></vmap:Tracking>
      <vmap:Tracking event="breakEnd"><![CDATA[https://adserver.com/beacon=breakendimpression]]></vmap:Tracking>
    </vmap:TrackingEvents>
  </vmap:AdBreak>
</vmap:VMAP>
```

**Example 1: MediaTailor에 대한 DASH 매니페스트 소스**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
    <Event duration="540000" id="144">
        <scte35:Signal>
            <scte35:Binary>SCTE35-binary</scte35:Binary>
        </scte35:Signal>
    </Event>
    </EventStream>
    ... 
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

**Example 2: 광고 ID 장식을 포함하는 MediaTailor 맞춤형 DASH 매니페스트**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
  <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
    <Event presentationTime="13500000" duration="1351350">
    <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "adId","ad_position": "adId", "ad_type":"overlay","creative_id": "creativeId","tracking_uri": "trackingUri"}]}]]></Event>
  </EventStream>
  ...
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

# 클라이언트 측 메타데이터를 사용하여 오버레이 광고 추적
<a name="overlay-ads-client-side-tracking-metadata"></a>

MediaTailor는 오버레이 광고를 사용 가능 `nonLinearAdsList` 구간의에 배치합니다. MediaTailor 클라이언트 측 추적 API에는 `avails` 및 라는 두 개의 루트 객체가 있습니다`nonLinearAvails`. VAST 응답이 `nonlinear``breakType`가 인 VMAP인 경우 가용 메타데이터는 `nonLinearAvails` 루트 객체 내에 있습니다. VAST 응답이 `breakType`가 인 VMAP`linear`이거나 VMAP가 없는 일반 VAST 응답인 경우 가용 메타데이터는 `avails` 루트 객체 내에 있습니다.

클라이언트 측 추적에 대한 자세한 내용은 섹션을 참조하세요[클라이언트 측 광고 추적](ad-reporting-client-side.md).

다음 예제에서는 `breakType` 값이 인 일반 VAST 응답 또는 VMAP 응답을 보여줍니다`linear`.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": []
}
```

다음 예제에서는 `breakType` 값이 인 일반 VMAP 응답을 보여줍니다`nonlinear`.

```
{
  "avails": [],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ]
}
```

# MediaTailor에서 오버레이 광고에 대한 로깅 및 지표
<a name="overlay-ads-logging-and-metrics"></a>

이 섹션에서는 MediaTailor의 오버레이 광고에 대한 로깅 및 지표를 설명합니다. 로깅 설정에 대한 자세한 내용은 섹션을 참조하세요[AWS Elemental MediaTailor 리소스 모니터링 및 태그 지정](monitoring.md).

**Topics**
+ [CloudWatch 로그](#overlay-ads-logging-and-metrics-cloudwatch)
+ [CloudWatch 지표](#overlay-ads-logging-and-metrics-cloudwatch-metrics)

## CloudWatch 로그
<a name="overlay-ads-logging-and-metrics-cloudwatch"></a>

CloudWatch는 오버레이 광고에 대한 다음 로그 정보를 수집합니다.
+ `VAST_RESPONSE` - 비선형 광고 목록에 대한 정보를 표시합니다.
+ `FILLED_PROVIDER_OVERLAY` - 비선형 광고에 대한 정보를 표시합니다.

**참고**  
는 ADS의 원래 응답을 보여주는 선택적 이벤트`RAW_ADS_RESPONSE`입니다. 이 이벤트를 사용하면 스테이징 및 테스트 환경에서 특히 유용합니다. 구성 또는 계정에서이 이벤트를 활성화하려면 AWS Support에 티켓을 제출합니다.

## CloudWatch 지표
<a name="overlay-ads-logging-and-metrics-cloudwatch-metrics"></a>

MediaTailor는 오버레이 광고 지표를 다른 ADS 지표와 별도로 수집합니다. MediaTailor는 ADS에서 광고를 성공적으로 가져온 후 이러한 지표를 수집합니다. 지표를 수집하기 위해 `GetTracking` API를 폴링할 필요가 없습니다.

다음 표에서는 오버레이 광고에 대한 CloudWatch 지표를 설명합니다.


| 지표 | 설명 | 
| --- | --- | 
| AdDecisionServer.OverlayAds |  지정한 CloudWatch 기간 내에 ADS 응답에 포함된 오버레이 광고 수입니다.  | 
| AdDecisionServer.OverlayErrors |  지정한 CloudWatch 기간 내에 MediaTailor가 ADS로부터 수신한 비 HTTP `200` 상태 코드 응답, 빈 응답 및 시간 초과 응답 수입니다.  | 
| AdDecisionServer.OverlayFilled |  하나 이상의 오버레이 광고로 성공적으로 채워진 가용 시간 수: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/mediatailor/latest/ug/overlay-ads-logging-and-metrics.html) `SampleCount`는 채워진 가용 수를 추적합니다. `Sum`는 성공적으로 채워진 오버레이 가용 수를 추적합니다.  | 
| AdDecisionServer.OverlayMinSuggestedDuration |  지정한 CloudWatch 기간 내에 MediaTailor가 ADS에서 수신한 모든 광고의 `minSuggestedDuration` 지속 시간 합계입니다. `minSuggestedDuration`이 지정되지 않은 경우 표시된 기간은 계획된 기간입니다.  | 
| AdDecisionServer.OverlayLatency |  MediaTailor가 ADS에 보내는 요청에 대한 밀리초 단위의 응답 시간입니다.  | 
| AdDecisionServer.OverlayTimeouts |  지정한 CloudWatch 기간에 ADS에 대한 시간 초과 요청 수입니다.  | 
| AdsBilled |  청구된 광고에 대한 자세한 내용은 섹션을 참조하세요[MediaTailor의 오버레이 광고에 대한 결제](overlay-ads-billing.md).  | 
| Avail.\$1 |  MediaTailor는 오버레이 광고를 계획하지 않으므로 CloudWatch는 `Avail.X` 지표를 표시하지 않습니다.  | 
| SkippedReason.\$1 |  MediaTailor는 오버레이 광고를 계획하지 않으므로 CloudWatch는 `SkippedReason.X` 지표를 표시하지 않습니다.  | 

# MediaTailor의 오버레이 광고에 대한 결제
<a name="overlay-ads-billing"></a>

MediaTailor는 ADS 응답의 비선형 광고 수를 기준으로 고객에게 요금을 청구합니다. 이 수에는 중단 기간을 지나 연장된 비선형 광고가 포함됩니다. MediaTailor는 가용 시간을 채운 후 채운 광고에 대해 요금을 청구합니다.

프리페치 워크플로의 경우 MediaTailor는 프리페치를 검색할 때 광고에 대해 요금을 청구하지 않고 해당 세션의 소비 기간에 호환 가능한 광고 가용성이 표시되는 경우 요금을 청구합니다.

추가 결제 정보는 섹션을 참조하세요[https://aws.amazon.com/mediatailor/pricing/](https://aws.amazon.com/mediatailor/pricing/).