클라이언트 측 광고 추적을 위한 플레이어 제어 및 기능 - AWS Elemental MediaTailor

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

클라이언트 측 광고 추적을 위한 플레이어 제어 및 기능

MediaTailor 클라이언트 측 추적 메타데이터는 다양한 플레이어 제어 및 기능을 지원합니다. 다음 목록은 인기 있는 플레이어 컨트롤을 설명합니다.

스크러빙

재생 환경을 개선하기 위해 플레이어는 재생 타임라인에 광고 위치를 표시할 수 있습니다. MediaTailor 는 클라이언트 측 추적 응답의 adStartTimeInSeconds 값 형식으로 이러한 광고 위치를 사용할 수 있도록 합니다.

참고

일부 스트리밍 공급자는 광고 위치를 지나는 스크러빙을 방지합니다.

광고가 재생되는 비디오 타임라인의 MediaTailor 표시 위치를 보여주는 스크린샷입니다.

다음 클라이언트 측 추적 페이로드 JSON 응답은 가용 배열의 루트 JSON 객체 내의 가용(아드 브레이크) 시작 시간을 보여줍니다. 플레이어는 이 데이터를 사용하여 플레이어 타임라인에서 28초에 광고 중단 위치를 표시합니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [...], "availId": "7", "availProgramDateTime": null, "duration": "PT30S", "durationInSeconds": 30, "meta": null, "nonLinearAdsList": [], "startTime": "PT28S", "startTimeInSeconds": 28 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x", "nonLinearAvails": [] }

광고 카운트다운 타이머

를 사용하면 광고 카운트다운 타이머를 사용하여 광고 중단 시청 중에 청중의 참여를 유지할 MediaTailor 수 있습니다. 대상은 타이머를 사용하여 광고 중단이 종료되고 프로그램이 재개되는 시기를 이해할 수 있습니다.

광고 카운트다운 타이머를 MediaTailor 표시하는 스크린샷으로, 프로그램이 재개될 때까지 남은 시간을 청중에게 알려줍니다.

광고 카운트다운 타이머에서 역할을 수행하는 클라이언트 측 추적 메타데이터의 요소는 startTime, startTimeInSeonds, 및 duration입니다durationInSeconds. 플레이어는 이 메타데이터를 개별적으로 추적하는 세션의 경과 시간과 함께 사용하여 타이머를 표시할 시기와 카운트다운해야 하는 값을 결정합니다.

다음 클라이언트 측 추적 페이로드 JSON 응답은 광고 카운트다운 타이머를 표시하는 데 필요한 정보를 보여줍니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [...], "availId": "7", "availProgramDateTime": null, "duration": "PT30S", "durationInSeconds": 30, "meta": null, "nonLinearAdsList": [], "startTime": "PT28S", "startTimeInSeconds": 28 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x", "nonLinearAvails": [] }

세션의 경과 시간이 가용의 시작 시간에 도달하면 플레이어는 가용의 지속 시간과 일치하는 값과 함께 카운트다운 타이머를 표시합니다. 경과 시간이 가용의 시작 시간을 넘어가면 카운트다운 타이머 값이 감소합니다.

예 공식: HLS (라이브 및 VOD) 및 DASH (VOD)에 대한 카운트다운 타이머
  • session_start_time = 모든 EXT-INF 기간 값의 합계 - 세 개의 최신 EXT-INF 미디어 시퀀스의 기간 값

  • 타이머 값 = duration - (session_elapsed_time - startTime)

(라이브 및 VOD) 및 HLS (DASHVOD) 매니페스트에 대한 세션의 시작 시간과 가용 시작 시간을 기준으로 광고 카운트다운 타이머를 계산하는 다이어그램입니다.
예 공식: DASH (실시간)에 대한 카운트다운 타이머
  • session_start_time = (최신 세그먼트의 startTime + duration) / timescale - MPD@suggestedPresentationDelay

  • 타이머 값 = duration - (session_elapsed_time - startTime)

라이브 매DASH니페스트에 대한 세션의 시작 시간 및 사용 가능 시작 시간을 기준으로 광고 카운트다운 타이머를 계산하는 다이어그램입니다.

건너뛸 수 있는 광고

건너뛸 수 있는 광고는 시청자가 일부 광고를 건너뛸 수 있는 광고 스팟으로, 프로그램 보기를 재개할 수 있습니다. 에서 Linear@skipOffset 속성VAST은 건너뛸 수 있는 광고를 식별합니다.

다음 VAST 응답은 건너뛸 수 있는 광고를 사용하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?> <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"> <Ad> <InLine> ... <Creatives> <Creative id="1" sequence="1"> <Linear skipoffset="00:00:05"> <Duration>00:00:15</Duration> <MediaFiles> <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile> </MediaFiles> </Linear> </Creative> </Creatives> ... </InLine> </Ad> </VAST>

다음 클라이언트 측 추적 페이로드 JSON 응답은 ads 배열 내의 광고 메타데이터를 보여줍니다. 배열에는 VAST 응답에서 얻은 skipOffset 값이 MediaTailor 포함됩니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "1", "adParameters": "", "adProgramDateTime": "2023-07-31T16:11:40.693Z", "adSystem": "2.0", "adTitle": "AD-skiing-15", "adVerifications": [], "companionAds": [...], "creativeId": "1", "creativeSequence": "1", "duration": "PT15.015S", "durationInSeconds": 15.015, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "skipOffset": "00:00:05", "startTime": "PT9.943S", "startTimeInSeconds": 9.943, "trackingEvents": [ { "beaconUrls": [ "https://adserverbeaconing.com/v1/impression" ], "duration": "PT15.015S", "durationInSeconds": 15.015, "eventId": "2697726", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT9.943S", "startTimeInSeconds": 9.943 } ], "vastAdId": "" } ], "availId": "2697726", "availProgramDateTime": "2023-07-31T16:11:40.693Z", "duration": "PT15.015S", "durationInSeconds": 15.015, "meta": null, "nonLinearAdsList": [], "startTime": "PT9.943S", "startTimeInSeconds": 9.943 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "", "nonLinearAvails": [] }

광고 클릭

클릭스루를 URIs 통해 광고주는 광고가 시청자의 관심을 끌 때 얼마나 성공했는지 측정할 수 있습니다. 시청자가 진행 중인 광고의 활성 비디오 프레임을 클릭하면 웹 브라우저가 광고주의 홈 페이지 또는 캠페인 랜딩 페이지에 URI 대한 를 엽니다. 플레이어 개발자는 자세한 내용을 알아보려면 클릭하라는 메시지와 함께 광고 비디오의 버튼 또는 레이블 오버레이와 같은 클릭 동작을 결정합니다. 플레이어 개발자는 종종 시청자가 활성 비디오 프레임을 클릭한 후 광고의 비디오를 일시 중지합니다.

비디오 플레이어의 광고 클릭률 스크린샷. 뷰어는 비디오 프레임을 클릭합니다. 플레이어는 비디오를 일시 중지한 다음 웹 브라우저를 열어 최종 사용자를 광고주의 홈 페이지 또는 캠페인 랜딩 페이지로 안내합니다.

MediaTailor 는 VAST 응답에 URLs 반환된 선형 비디오 클릭스루 이벤트를 구문 분석하고 사용할 수 있도록 할 수 있습니다. 다음 VAST 응답은 광고 클릭률 예제를 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?> <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"> <Ad> <InLine> ... <Creatives> <Creative id="1" sequence="1"> <Linear> <Duration>00:00:15</Duration> <MediaFiles> <MediaFile id="EMT" delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile> </MediaFiles> <VideoClicks> <ClickThrough id="EMT"><![CDATA[https://aws.amazon.com]]></ClickThrough> <ClickTracking id="EMT"><![CDATA[https://myads.com/beaconing/event=clicktracking]]></ClickTracking> </VideoClicks> </Linear> </Creative> </Creatives> ... </InLine> </Ad> </VAST>

다음 클라이언트 측 추적 페이로드 JSON 응답은 가 trackingEvents 배열 URLs 내에서 클릭 및 클릭 추적을 MediaTailor 표시하는 방법을 보여줍니다. clickThrough 이벤트 유형은 클릭스루 광고를 나타내고 clickTracking 이벤트 유형은 클릭 추적 을 나타냅니다URL.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "1", "adParameters": "", "adProgramDateTime": "2023-07-31T16:53:40.577Z", "adSystem": "2.0", "adTitle": "1", "adVerifications": [], "companionAds": [], "creativeId": "00006", "creativeSequence": "1", "duration": "PT14.982S", "durationInSeconds": 14.982, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "skipOffset": null, "startTime": "PT39.339S", "startTimeInSeconds": 39.339, "trackingEvents": [ { "beaconUrls": [ "https://myads.com/beaconing/event=impression" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698188", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 }, { "beaconUrls": [ "https://aws.amazon.com" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698188", "eventProgramDateTime": null, "eventType": "clickThrough", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 }, { "beaconUrls": [ "https://myads.com/beaconing/event=clicktracking" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698795", "eventProgramDateTime": null, "eventType": "clickTracking", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 } ], "vastAdId": "" } ], "availId": "2698188", "availProgramDateTime": "2023-07-31T16:53:40.577Z", "duration": "PT14.982S", "durationInSeconds": 14.982, "meta": null, "nonLinearAdsList": [], "startTime": "PT39.339S", "startTimeInSeconds": 39.339 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x", "nonLinearAvails": [] }

컴패니언 광고

패니언 광고는 선형 크리에이티브와 함께 표시됩니다. 컴패니언 광고를 사용하여 제품, 로고 및 브랜드 정보를 표시하여 광고 스팟의 효율성을 높입니다. 디스플레이 광고에는 빠른 응답(QR) 코드와 클릭 가능한 영역이 있어 청중 참여를 촉진할 수 있습니다.

MediaTailor 는 VAST 응답의 동반 광고를 지원합니다. 각각 StaticResource, iFrameResourceHTMLResource 노드에서 메타데이터를 전달할 수 있습니다.

다음 VAST 응답은 선형 광고 및 컴패니언 광고의 위치와 형식 예제를 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?> <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"> <Ad> <InLine> ... <Creatives> <Creative id="1" sequence="1"> <Linear> <Duration>00:00:10</Duration> <MediaFiles> <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile> </MediaFiles> </Linear> </Creative> <Creative id="2" sequence="1"> <CompanionAds> <Companion id="2" width="300" height="250"> <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/9973499273]]></StaticResource> <TrackingEvents> <Tracking event="creativeView"><![CDATA[https://beacon.com/1]]></Tracking> </TrackingEvents> <CompanionClickThrough><![CDATA[https://beacon.com/2]]></CompanionClickThrough> </Companion> <Companion id="3" width="728" height="90"> <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/1238901823]]></StaticResource> <TrackingEvents> <Tracking event="creativeView"><![CDATA[https://beacon.com/3]]></Tracking> </TrackingEvents> <CompanionClickThrough><![CDATA[https://beacon.com/4]]></CompanionClickThrough> </Companion> </CompanionAds> </Creative> </Creatives> ... </InLine> </Ad> </VAST>

데이터는 /avail/x/ads/y/companionAds 목록의 클라이언트 측 추적 응답에 표시됩니다. 각 선형 크리에이티브에는 최대 6개의 컴패니언 광고가 포함될 수 있습니다. 아래 예제와 같이 컴패니언 광고가 목록에 표시됩니다.

참고

애플리케이션 개발자는 크리에이티브 종료 시 컴패니언 광고를 명시적으로 제거하거나 언로드하는 로직을 구현하는 것이 가장 좋습니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "0", "adParameters": "", "adProgramDateTime": null, "adSystem": "EMT", "adTitle": "sample", "adVerifications": [], "companionAds": [ { "adParameters": null, "altText": null, "attributes": { "adSlotId": null, "apiFramework": null, "assetHeight": null, "assetWidth": null, "expandedHeight": null, "expandedWidth": null, "height": "250", "id": "2", "pxratio": null, "renderingMode": null, "width": "300" }, "companionClickThrough": "https://beacon.com/2", "companionClickTracking": null, "htmlResource": null, "iFrameResource": null, "sequence": "1", "staticResource": "https://emt.com/companion/9973499273", "trackingEvents": [ { "beaconUrls": [ "https://beacon.com/1" ], "eventType": "creativeView" } ] }, { "adParameters": null, "altText": null, "attributes": { "adSlotId": null, "apiFramework": null, "assetHeight": null, "assetWidth": null, "expandedHeight": null, "expandedWidth": null, "height": "90", "id": "3", "pxratio": null, "renderingMode": null, "width": "728" }, "companionClickThrough": "https://beacon.com/4", "companionClickTracking": null, "htmlResource": null, "iFrameResource": null, "sequence": "1", "staticResource": "https://emt.com/companion/1238901823", "trackingEvents": [ { "beaconUrls": [ "https://beacon.com/3" ], "eventType": "creativeView" } ] } ], "creativeId": "1", "creativeSequence": "1", "duration": "PT10S", "durationInSeconds": 10, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "skipOffset": null, "startTime": "PT0S", "startTimeInSeconds": 0, "trackingEvents": [ { "beaconUrls": [ "https://beacon.com/impression/1" ], "duration": "PT10S", "durationInSeconds": 10, "eventId": "0", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT0S", "startTimeInSeconds": 0 } ], "vastAdId": "" } ], "availId": "0", "availProgramDateTime": null, "duration": "PT10S", "durationInSeconds": 10, "meta": null, "nonLinearAdsList": [], "startTime": "PT0S", "startTimeInSeconds": 0 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMToxMDowOC42NzQ4NDA1NjJaXzE%3D", "nonLinearAvails": [] }

대화형 광고(SIMID)

SecureInteractive 미디어 인터페이스 정의(SIMID)는 대화형 광고국()의 VAST 4.x 표준에 도입된 대화형 광고의 표준입니다IAB. SIMID 는 재생 환경을 유지하기 위해 기본 크리에이티브의 VAST response. MediaTailor stitches를 참조하여 플레이어의 기본 선형 크리에이티브에서 대화형 요소의 로드를 분리하고 클라이언트 측 추적 응답에 대화형 구성 요소의 메타데이터를 배치합니다.

다음 예제 VAST 4 응답에서 SIMID페이로드는 InteractiveCreativeFile 노드 내에 있습니다.

<?xml version="1.0"?> <VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"> <Ad id="1234567"> <InLine> <AdSystem>SampleAdSystem</AdSystem> <AdTitle>Linear SIMID Example</AdTitle> <Description>SIMID example</Description> <Error>https://www.beacons.com/error</Error> <Impression>https://www.beacons.com/impression</Impression> <Creatives> <Creative sequence="1"> <Linear> <Duration>00:00:15</Duration> <TrackingEvents> ... </TrackingEvents> <VideoClicks> <ClickThrough id="123">https://aws.amazon.com</ClickThrough> <ClickTracking id="123">https://www.beacons.com/click</ClickTracking> </VideoClicks> <MediaFiles> <MediaFile delivery="progressive" type="video/mp4"> https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4 </MediaFile> <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true"> https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html </InteractiveCreativeFile> </MediaFiles> </Linear> </Creative> </Creatives> </InLine> </Ad> </VAST>

다음 VAST 3개의 응답에서 SIMID페이로드는 Extensions 노드 내에 있습니다.

<?xml version="1.0"?> <VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"> <Ad id="1234567"> <InLine> <AdSystem>SampleAdSystem</AdSystem> <AdTitle>Linear SIMID Example</AdTitle> <Description>SIMID example</Description> <Impression>https://www.beacons.com/impression</Impression> <Creatives> <Creative id="1" sequence="1"> <Linear> <Duration>00:00:15</Duration> <TrackingEvents> ... </TrackingEvents> <VideoClicks> <ClickThrough id="123">https://aws.amazon.com</ClickThrough> <ClickTracking id="123">https://myads.com/beaconing/event=clicktracking</ClickTracking> </VideoClicks> <MediaFiles> <MediaFile delivery="progressive" type="video/mp4"> https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4 </MediaFile> </MediaFiles> </Linear> </Creative> </Creatives> <Extensions> <Extension type="InteractiveCreativeFile"> <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true"> https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html </InteractiveCreativeFile> </Extension> </Extensions> </InLine> </Ad> </VAST>

다음 클라이언트 측 추적 응답에서는 SIMID 데이터가 /avails/x/ads/y/extensions 목록에 나타납니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "1", "adParameters": "", "adProgramDateTime": "2023-07-31T16:53:40.577Z", "adSystem": "2.0", "adTitle": "Linear SIMID Example", "adVerifications": [], "companionAds": [], "creativeId": "1", "creativeSequence": "1", "duration": "PT14.982S", "durationInSeconds": 14.982, "extensions": [ { "content": "<InteractiveCreativeFile type=\"text/html\" apiFramework=\"SIMID\" variableDuration=\"true\">\nhttps://interactive-ads.com/interactive-media-ad-sample/sample_simid.html</InteractiveCreativeFile>", "type": "InteractiveCreativeFile" } ], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "skipOffset": null, "startTime": "PT39.339S", "startTimeInSeconds": 39.339, "trackingEvents": [ { "beaconUrls": [ "https://myads.com/beaconing/event=impression" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698188", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 }, { "beaconUrls": [ "https://aws.amazon.com" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698188", "eventProgramDateTime": null, "eventType": "clickThrough", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 }, { "beaconUrls": [ "https://myads.com/beaconing/event=clicktracking" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698795", "eventProgramDateTime": null, "eventType": "clickTracking", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 } ], "vastAdId": "" } ], "availId": "2698188", "availProgramDateTime": "2023-07-31T16:53:40.577Z", "duration": "PT14.982S", "durationInSeconds": 14.982, "meta": null, "nonLinearAdsList": [], "startTime": "PT39.339S", "startTimeInSeconds": 39.339 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x", "nonLinearAvails": [] }

대화형 광고(VPAID)

Video Player Ad Interface Definition(VPAID)은 광고 상호 작용 및 기타 기능을 활성화하는 광고와 비디오 플레이어 간의 프로토콜을 지정합니다. 라이브 스트림의 경우 는 가용 기간 동안 슬레이트 세그먼트를 에 연결하고 비디오 플레이어가 사용하는 클라이언트 측 추적 응답에 VPAID 크리에이티브 메타데이터를 배치하여 VPAID 형식을 MediaTailor 지원합니다. 플레이어는 VPAID 파일을 다운로드하고 선형 크리에이티브를 재생하고 클라이언트의 스크립트를 실행합니다. 플레이어는 슬레이트 세그먼트를 재생해서는 안 됩니다.

참고

VPAID 는 VAST 4.1 기준으로 더 이상 사용되지 않습니다.

VPAID ad playback. MediaTailor stitches 콘텐츠 타임라인의 가용 기간 동안 슬레이트 세그먼트 다이어그램입니다. 플레이어는 가용 기간 동안 VPAID 자산으로 전환됩니다.

다음 예제는 VAST 응답의 VPAID 내용을 보여줍니다.

<?xml version="1.0"?> <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"> <Ad id="1234567"> <InLine> <AdSystem>GDFP</AdSystem> <AdTitle>VPAID</AdTitle> <Description>Vpaid Linear Video Ad</Description> <Error>http://www.example.com/error</Error> <Impression>http://www.example.com/impression</Impression> <Creatives> <Creative sequence="1"> <Linear> <Duration>00:00:00</Duration> <TrackingEvents> <Tracking event="start">http://www.example.com/start</Tracking> <Tracking event="firstQuartile">http://www.example.com/firstQuartile</Tracking> <Tracking event="midpoint">http://www.example.com/midpoint</Tracking> <Tracking event="thirdQuartile">http://www.example.com/thirdQuartile</Tracking> <Tracking event="complete">http://www.example.com/complete</Tracking> <Tracking event="mute">http://www.example.com/mute</Tracking> <Tracking event="unmute">http://www.example.com/unmute</Tracking> <Tracking event="rewind">http://www.example.com/rewind</Tracking> <Tracking event="pause">http://www.example.com/pause</Tracking> <Tracking event="resume">http://www.example.com/resume</Tracking> <Tracking event="fullscreen">http://www.example.com/fullscreen</Tracking> <Tracking event="creativeView">http://www.example.com/creativeView</Tracking> <Tracking event="acceptInvitation">http://www.example.com/acceptInvitation</Tracking> </TrackingEvents> <AdParameters><![CDATA[ {"videos":[ {"url":"https://my-ads.com/interactive-media-ads/media/media_linear_VPAID.mp4","mimetype":"video/mp4"}]} ]]></AdParameters> <VideoClicks> <ClickThrough id="123">http://google.com</ClickThrough> <ClickTracking id="123">http://www.example.com/click</ClickTracking> </VideoClicks> <MediaFiles> <MediaFile delivery="progressive" apiFramework="VPAID" type="application/javascript" width="640" height="480"> https://googleads.github.io/googleads-ima-html5/vpaid/linear/VpaidVideoAd.js </MediaFile> </MediaFiles> </Linear> </Creative> </Creatives> </InLine> </Ad> </VAST>

다음 예제에서는 추적 정보를 보여줍니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "1", "adParameters": "", "adProgramDateTime": "2023-07-31T16:53:40.577Z", "adSystem": "2.0", "adTitle": "1", "adVerifications": [], "companionAds": [], "creativeId": "00006", "creativeSequence": "1", "duration": "PT14.982S", "durationInSeconds": 14.982, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "skipOffset": null, "startTime": "PT39.339S", "startTimeInSeconds": 39.339, "trackingEvents": [ { "beaconUrls": [ "https://myads.com/beaconing/event=impression" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698188", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 }, { "beaconUrls": [ "https://aws.amazon.com" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698188", "eventProgramDateTime": null, "eventType": "clickThrough", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 }, { "beaconUrls": [ "https://myads.com/beaconing/event=clicktracking" ], "duration": "PT14.982S", "durationInSeconds": 14.982, "eventId": "2698795", "eventProgramDateTime": null, "eventType": "clickTracking", "startTime": "PT39.339S", "startTimeInSeconds": 39.339 } ], "vastAdId": "" } ], "availId": "2698188", "availProgramDateTime": "2023-07-31T16:53:40.577Z", "duration": "PT14.982S", "durationInSeconds": 14.982, "meta": null, "nonLinearAdsList": [], "startTime": "PT39.339S", "startTimeInSeconds": 39.339 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x", "nonLinearAvails": [] }{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "2922274", "adParameters": "", "adProgramDateTime": "2023-08-14T19:49:53.998Z", "adSystem": "Innovid Ads", "adTitle": "VPAID", "adVerifications": [], "companionAds": [], "creativeId": "", "creativeSequence": "", "duration": "PT16.016S", "durationInSeconds": 16.016, "extensions": [], "mediaFiles": { "mediaFilesList": [ { "apiFramework": "VPAID", "bitrate": 0, "codec": null, "delivery": "progressive", "height": 9, "id": "", "maintainAspectRatio": false, "maxBitrate": 0, "mediaFileUri": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc=", "mediaType": "application/javascript", "minBitrate": 0, "scalable": false, "width": 16 } ], "mezzanine": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc=" }, "skipOffset": null, "startTime": "PT8M42.289S", "startTimeInSeconds": 522.289, "trackingEvents": [ { "beaconUrls": [ "about:blank" ], "duration": "PT16.016S", "durationInSeconds": 16.016, "eventId": "2922274", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT8M42.289S", "startTimeInSeconds": 522.289 } ], "vastAdId": "1h41kg" } ], "availId": "2922274", "availProgramDateTime": "2023-08-14T19:49:53.998Z", "duration": "PT16.016S", "durationInSeconds": 16.016, "meta": null, "nonLinearAdsList": [], "startTime": "PT8M42.289S", "startTimeInSeconds": 522.289 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQ4TTQyLjI4OVNfMjAyMy0wOC0xNFQxOTo1MDo0MS4zOTc5MjAzODVaXzE%3D", "nonLinearAvails": [] }

Google Why This Ad용 아이콘(WTA)

AdChoices 는 시청자에게 해당 광고를 대상으로 하는 방법을 포함하여 보는 광고에 대한 정보를 제공하는 업계 표준입니다.

Google Why This Ad(WTA) 로고. WTA 는 최종 사용자에게 해당 광고를 대상으로 하는 방법을 포함하여 최종 사용자에게 표시되는 광고에 대해 알립니다.

MediaTailor 클라이언트 측 추적은 VAST 응답의 VAST 확장 노드에 있는 아이콘 메타데이터를 API 지원합니다. VAST 응답WTA의 에 대한 자세한 내용은 이 샘플 VAST XML 응답을 참조하세요.

참고

MediaTailor 는 현재 VAST 버전 3만 지원합니다.

<VAST> <Ad> <InLine> ... <Extensions> <Extension type="IconClickFallbackImages"> <IconClickFallbackImages program="GoogleWhyThisAd"> <IconClickFallbackImage width="400" height="150"> <AltText>Alt icon fallback</AltText> <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]></StaticResource> </IconClickFallbackImage> </IconClickFallbackImages> <IconClickFallbackImages program="AdChoices"> <IconClickFallbackImage width="400" height="150"> <AltText>Alt icon fallback</AltText> <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]></StaticResource> </IconClickFallbackImage> <IconClickFallbackImage width="800" height="300"> <AltText>Alt icon fallback</AltText> <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]></StaticResource> </IconClickFallbackImage> </IconClickFallbackImages> </Extension> </Extensions> </InLine> </Ad> </VAST>

다음 예제는 /avails/x/ads/y/extensions 목록의 클라이언트 측 추적 응답을 보여줍니다.

{ "avails": [ { "adBreakTrackingEvents": [], "adMarkerDuration": null, "ads": [ { "adId": "0", "adParameters": "", "adProgramDateTime": null, "adSystem": "GDFP", "adTitle": "Google Why This Ad VAST 3 Sample", "adVerifications": [], "companionAds": [], "creativeId": "7891011", "creativeSequence": "1", "duration": "PT10S", "durationInSeconds": 10, "extensions": [ { "content": "<IconClickFallbackImages program=\"GoogleWhyThisAd\"> <IconClickFallbackImage height=\"150\" width=\"400\"> <AltText>Alt icon fallback</AltText> <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]> </StaticResource> </IconClickFallbackImage> </IconClickFallbackImages> <IconClickFallbackImages program=\"AdChoices\"> <IconClickFallbackImage height=\"150\" width=\"400\"> <AltText>Alt icon fallback</AltText> <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]> </StaticResource> </IconClickFallbackImage> <IconClickFallbackImage height=\"300\" width=\"800\"> <AltText>Alt icon fallback</AltText> <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]> </StaticResource> </IconClickFallbackImage> </IconClickFallbackImages>", "type": "IconClickFallbackImages" } ], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "skipOffset": "00:00:03", "startTime": "PT0S", "startTimeInSeconds": 0, "trackingEvents": [ { "beaconUrls": [ "https://example.com/view" ], "duration": "PT10S", "durationInSeconds": 10, "eventId": "0", "eventProgramDateTime": null, "eventType": "impression", "startTime": "PT0S", "startTimeInSeconds": 0 } ], "vastAdId": "123456" } ], "availId": "0", "availProgramDateTime": null, "duration": "PT10S", "durationInSeconds": 10, "meta": null, "nonLinearAdsList": [], "startTime": "PT0S", "startTimeInSeconds": 0 } ], "dashAvailabilityStartTime": null, "hlsAnchorMediaSequenceNumber": null, "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMDo0MToxNy45NDE4MDM0NDhaXzE%3D", "nonLinearAvails": [] }