用于客户端广告跟踪的玩家控制和功能 - AWS Elemental MediaTailor

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于客户端广告跟踪的玩家控制和功能

MediaTailor 客户端跟踪元数据支持各种玩家控件和功能。以下列表描述了常用的播放器控件。

擦洗

为了增强播放体验,播放器可以在播放时间轴中显示广告位置。 MediaTailor 在客户端跟踪响应中以adStartTimeInSeconds值的形式显示这些广告位置。

注意

一些流媒体提供商会阻止越过广告位置。

屏幕截图显示了视频时间轴中广告播放位置的 MediaTailor 标记位置。

以下客户端跟踪有效负载JSON响应显示了 avails 数组根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 显示了广告倒计时器,该计时器告诉受众距离节目恢复还有多长时间。

客户端跟踪元数据中在广告倒计时器中起作用的元素是startTimestartTimeInSeondsduration、和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)

该图显示了HLS(直播和)和DASH(VODVOD)清单的广告倒数计时器的计算结果,该计时器基于会话的开始时间和Avail的开始时间。
例 公式:DASH(直播)的倒计时器
  • session_start_time=(最新片段 startTime +duration)/timescale-MPD@suggestedPresentationDelay

  • 计时器值 = duration-(session_elapsed_time-startTime)

该图显示了根据会话的开始时间和 avail 的开始时间计算直播DASH清单的广告倒计时器。

可跳过的广告

可跳过的广告是允许观众跳过部分广告以继续观看节目的广告位。在中VAST,该Linear@skipOffset属性用于标识可跳过的广告。

以下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响应中 MediaTailor获得的skipOffset值。

{ "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 可以解析响应中URLs返回的任何线性视频点击事件并使其可用。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> <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响应显示了如何在阵 MediaTailor 列中显示点击和点击URLs跟踪。trackingEventsclickThrough事件类型代表点击广告,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响应中的配套广告。它可以分别传递来自StaticResourceiFrameResource、和HTMLResource节点的元数据。

以下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) 是互动广告管理局 (IAB) 在 VAST 4.x 标准中引入的互动广告标准。SIMID将互动元素的加载与玩家上的主要线性素材分开,在响应中同时引用两者。VAST MediaTailor 在主素材中缝合以保持播放体验,并将交互组件的元数据放在客户端的跟踪响应中。

在下面的示例 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)

视频播放器广告界面定义 (VPAID) 指定了广告和视频播放器之间支持广告互动和其他功能的协议。对于直播, MediaTailor 支持该VPAID格式,方法是在可用期间拼接板块片段,然后在视频播放器使用的客户端跟踪响应中放置VPAID广告素材的元数据。玩家下载VPAID文件并播放线性广告素材并执行客户端的脚本。玩家永远应该玩 slate 片段。

注意

VPAID自 VAST 4.1 起已被弃用。

VPAID广告播放图。 MediaTailor 在内容时间轴中为可用时长拼接板片段。玩家在有效期内切换到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 的图标为什么是这个广告 (WTA)

AdChoices是一项行业标准,它为观众提供有关他们看到的广告的信息,包括这些广告是如何定位到他们的。

谷歌 Why This Ad (WTA) 徽标。WTA告知观众他们看到的广告,包括这些广告是如何针对他们的。

MediaTailor 客户端跟踪API支持在VAST响应的VAST扩展节点中携带的图标元数据。有关VAST响应WTA中的更多信息,请参阅此示例VASTXML响应

注意

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": [] }