MediaTailor 广告插入入门 - AWS Elemental MediaTailor

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

MediaTailor 广告插入入门

要将 AWS Elemental MediaTailor,你需要一个 AWS 账户 以及访问、查看和编辑 MediaTailor 配置的权限。有关如何执行此操作的信息,请参阅 设置 AWS Elemental MediaTailor

此入门教程演示如何执行以下任务:

  • 准备您的HLS或DASH内容流

  • 配置广告决策服务器 (ADS) 模板 URL

  • 创建包含播放端点的 MediaTailor 配置

  • 使用您的播放器或内容分发网络 (CDN) 向发出播放请求 MediaTailor

完成后,你可以向发送播放请求,在直播中播放个性化广告内容。 MediaTailor

先决条件

开始之前,请确保您已完成 设置 AWS Elemental MediaTailor 中的步骤。

步骤 1:访问 AWS Elemental MediaTailor

使用您的IAM凭证登录 MediaTailor 控制台,网址为https://console.aws.amazon.com/mediatailor/home

第 2 步:准备直播

将您的源服务器配置为为HLS或与之兼容DASH的清单 AWS Elemental MediaTailor.

准备直HLS播

HLS舱单必须满足以下要求:

  • 清单必须可在公共 Internet 上访问。

  • 清单必须是直播或视频点播 (VOD)。

  • 清单必须具有 EXT-X-VERSION 3 或更高版本。

  • 对于直播内容,清单必须包含描述广告效用的标记。对于VOD内容,这是可选的,可以改用VMAP时间偏移。

    清单文件必须包含标有以下内容之一的广告位:

    • # EXT-X-CUE-OUT /# EXT-X-IN CUE(更常见),持续时间如以下示例所示。

      #EXT-X-CUE-OUT:60.00 #EXT-X-CUE-IN
    • # EXT-X-DATERANGE(不太常见),其持续时间如以下示例所示。

      #EXT-X-DATERANGE:ID="",START-DATE="",DURATION=30.000,SCTE35-OUT=0xF #EXT-X-DATERANGE:ID="",START-DATE="",DURATION=30.000,SCTE35-OUT=0xF

      #EXT-X-DATERANGE 显示的所有字段都是必需的。

    在清单中配置广告标记的方式将决定广告是插入到流中还是替换流中的其他片段。有关更多信息,请参阅 了解 MediaTailor 广告插入行为

  • HLS主清单必须遵循HTTP直播中记录的HLS规范:主播放列表标签。具体而言,#EXT-X-STREAM-INF 必须包含字段 RESOLUTIONBANDWIDTHCODEC

配置直播后,请记下主清单的内容来源URL前缀。你需要它来创建配置 AWS Elemental MediaTailor,在本教程的后面部分。

准备直DASH播

DASH舱单必须满足以下要求:

  • 清单必须可在公共 Internet 上访问。

  • 清单必须是直播或视频点播 (VOD)。

  • 清单必须使用拼接插入标记或时间信号标记将事件标记为广告效用。您可以以清晰XML或 base64 编码的二进制格式提供广告标记。对于接头插入,必须启用 out-of-network指示器。对于时间信号标记,位于分段内部的分段UPID类型 ID 必须是可识别的提示值 AWS Elemental MediaTailor。 广告有效期从活动开始时开始,持续时间为活动持续时间(如果已指定),或者直到下一个活动开始。

    以下示例显示使用拼接插入标记指定为广告效用的事件。此广告效用的持续时间与事件的持续时间相同。

    <Period start="PT444806.040S" id="123586" duration="PT15.000S"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="1350000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095"> <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1"> <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program> <scte35:BreakDuration autoReturn="true" duration="1350000"/> </scte35:SpliceInsert> </scte35:SpliceInfoSection> </Event> </EventStream> <AdaptationSet mimeType="video/mp4" ... </AdaptationSet> </Period>
  • 广告提供的Representation设置必须与内容流相同AdaptationSet。 AWS Elemental MediaTailor 使用这些设置对广告进行转码以匹配内容流,从而在两者之间顺畅切换。

配置直播后,请记下DASH清单的内容来源URL前缀。你需要它来创建配置 AWS Elemental MediaTailor,在本教程的后面部分。

步骤 3:配置ADS请求URL和查询参数

要确定ADS所需的查询参数,请URL从生成广告标签ADS。它URL充当向的请求的模板ADS,由以下内容组成:

  • 静态值

  • 生成的值由 AWS Elemental MediaTailor (用sessionavail查询参数表示)

  • 播放器生成的值,从客户端应用程序获取(由 player_params. 查询参数指示)

例 URL来自的广告标签 ADS
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]

其中:

  • outputcontent_id 是静态值

  • playerSession= [session.id] 是由提供的动态值 AWS Elemental MediaTailor。 [session.id] 的值会随着每个玩家会话的变化而变化,因此每个会话URL的VAST请求会有所不同。

  • cust_params 是播放器提供的动态值

来自玩家的主清单请求必须提供与请求中的player_params.查询参数相对应的键值对。ADS URL有关在请求中配置键值对的更多信息 AWS Elemental MediaTailor,请参阅 在中使用动态广告变量 MediaTailor

在中创建源服务器/ ADS 映射URL时,请输入配置的 “模板”。 MediaTailor 第 4 步:创建配置

测试

您可以将您的静态VAST响应ADS用于测试目的。理想情况下,VAST响应会返回夹层质量的格式副本 MP4 AWS Elemental MediaTailor 可以转码。如果来自的响应ADS包含多个播放格式副本,则 MediaTailor 选择最高质量和分辨率的MP4格式副本并将其发送到转码器。

第 4 步:创建配置

这些区域有: AWS Elemental MediaTailor 配置保存源服务器和的映射信息ADS。

创建配置(控制台)
  1. 打开 MediaTailor 控制台,网址为https://console.aws.amazon.com/mediatailor/

  2. Configurations (配置) 页面上,选择 Create configuration (创建配置)

  3. 在页面底部的 Configuration (配置) 部分,在 Configuration name (配置名称) 中,输入用于描述配置的唯一名称。此名称是配置的主要标识符。允许的最大长度为 512 个字符。

  4. 对于视频内容来源,输入该直播HLS的主清单或DASH清单URL的前缀,减去素材资源 ID。例如,如果主清单URL是http://origin-server.com/a/master.m3u8,则需要输入http://origin-server.com/a/。或者,您也可以输入一个较短的前缀(如 http://origin-server.com),但您随后必须在针对内容的播放器请求的资产 ID 中包含 /a/。最大长度为 512 个字符。

    注意

    如果您的内容来源使用HTTPS,则其证书必须来自知名的证书颁发机构。(它不能是自签名证书。) 否则, AWS Elemental MediaTailor 无法连接到内容来源,也无法根据玩家的请求提供清单。

  5. 广告决策服务器中,输入您URL的ADS。这要么是中描述URL的带变量步骤 3:配置ADS请求URL和查询参数,要么是用于测试目的的静态VASTURL变量。最大长度为 25000 个字符。

    注意

    如果您ADS使用HTTPS,则其证书必须来自知名的证书颁发机构。(它不能是自签名证书。) URLs返回的夹层广告也是如此。ADS否则,将 MediaTailor 无法从内容来源检索广告并将其拼接到清单中。

  6. (根据需要可选DASH)在 “位置” 中,选择DISABLED是否设置了访问 MediaTailor 清单的CDN路由规则,并且您要么使用客户端报告,要么您的玩家支持粘性HTTP重定向。

    有关 Location (位置) 功能的更多信息,请参阅 DASH定位功能

  7. (可选)如果您的源服务器生成单周期DASH清单,请选择 DASHmpd 清单来源类型,然后选择 _。SINGLE PERIOD默认情况下,将DASH清单作为多周期清单 MediaTailor 处理。有关更多信息,请参阅 整合 MPEG-DASH 源

  8. 选择创建配置

    AWS Elemental MediaTailor 在 “配置” 页面上显示新配置

步骤 5:测试配置

保存配置后,使用适合您的流媒体协议URL的格式测试直播:

  • 示例:HLS

    playback-endpoint/v1/master/hashed-account-id/origin-id/master.m3u8
  • 示例:DASH

    playback-endpoint/v1/dash/hashed-account-id/origin-id/manifest.mpd

其中:

  • playback-endpoint是唯一的播放端点 AWS Elemental MediaTailor 在创建配置时生成。

    示例

    https://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com
  • hashed-account-id是你的 AWS 账户 同上。

    示例

    AKIAIOSFODNN7EXAMPLE
  • origin-id 是您在创建配置时提供的名称。

    示例

    myOrigin
  • master.m3u8manifest.mpd 是来自测试流的清单的名称加上其文件扩展名。定义此项,从而在将它附加到您在第 4 步:创建配置中配置的视频内容源时获得完全标识的清单。

使用前面示例中的值,完整URLs内容如下。

  • 示例:HLS

    https://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8
  • 示例:DASH

    https://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com/v1/dash/AKIAIOSFODNN7EXAMPLE/myOrigin/manifest.mpd

您可以使用以下方法之一测试流。

  • 如前面的示例所示,在独立播放器URL中输入。

  • 在您自己的播放器环境中测试流。

第 6 步:将播放请求发送至 AWS Elemental MediaTailor

配置下游播放器或将播放请求发送CDN到配置的播放端点 AWS Elemental MediaTailor。 您在中的ADS请求URL中使用的任何玩家定义的动态变量步骤 3:配置ADS请求URL和查询参数都必须在玩家的清单请求中定义。

假设您的模板ADSURL如下所示。

https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]

然后在玩家请求[player_params.cust_params]中定义,在键值对前面加上。ads. AWS Elemental MediaTailor 将前面没有的参数传递ads.给源服务器,而不是. ADS

玩家请求URL是以下内容HLS和DASH示例的一些变体。

https://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8?ads.cust_params=viewerinfo
https://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com/v1/dash/AKIAIOSFODNN7EXAMPLE/myOrigin/manifest.mpd?ads.cust_params=viewerinfo

时间 AWS Elemental MediaTailor 接收玩家请求,它根据请求中的信息定义玩家变量。由此产生的ADS请求URL是其中的一些变体。

https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=<filled_in_session_id>&cust_params=viewerinfo

有关配置键值对以传递给的更多信息ADS,请参阅。在中使用动态广告变量 MediaTailor

步骤 7(可选):监控 AWS Elemental MediaTailor 活动

使用亚马逊 CloudWatch 和亚马逊 CloudWatch 日志进行跟踪 AWS Elemental MediaTailor 活动,例如已填写的请求数、错误数和广告投放次数。

如果这是您第一次 CloudWatch 使用和 AWS Elemental MediaTailor,创建一个 AWS Identity and Access Management (IAM) 角色允许在服务之间进行通信。

允许 AWS Elemental MediaTailor 访问 CloudWatch (控制台)
  1. 打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在IAM控制台的导航窗格中,选择角色,然后选择创建角色

  3. 选择另一个 AWS 账户角色类型。

  4. 对于账户 ID,请输入您的 AWS 账户 同上。

  5. 选择 Require external ID (需要外部 ID) 并输入 midas。此选项会在信任策略中自动添加一个条件,即仅当请求包含正确的 sts:ExternalID 时,该服务才代入该角色。

  6. 选择下一步: 权限

  7. 添加指定此角色可完成的操作的权限策略。从以下选项中选择一项,然后选择 Next: Review (下一步: 审核)

    • CloudWatchLogsFullAccess提供对 Amazon CloudWatch 日志的完全访问权限

    • CloudWatchFullAccess提供对 Amazon 的完全访问权限 CloudWatch

  8. 对于角色名称,输入 MediaTailorLogger,然后选择创建角色

  9. Roles (角色) 页上,选择您刚刚创建的角色。

  10. 编辑信任关系以更新委托人:

    1. 在角色的 Summary (摘要) 页上,选择 Trust relationship (信任关系) 选项卡。

    2. 选择编辑信任关系

    3. 在政策文档中,将委托人更改为 AWS Elemental MediaTailor 服务。它应如下所示。

      "Principal": { "Service": "mediatailor.amazonaws.com" },

      整个策略的内容现在应如下所示。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "Midas" } } } ] }
    4. 选择更新信任策略

第 8 步:清除

为避免产生多余的费用,请删除所有不必要的配置。

删除配置(控制台)
  1. 在 AWS Elemental MediaTailor “配置” 页面,执行以下任一操作:

    • 为要删除的配置选择 Configuration name (配置名称)

    • Configuration name (配置名称) 列中,选择单选按钮,然后选择 Delete (删除)

  2. Delete configuration (删除配置) 确认框中,输入 Delete,然后再次选择 Delete (删除)

    AWS Elemental MediaTailor 删除配置。