MediaTailor 广告插入入门 - AWS Elemental MediaTailor

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

MediaTailor 广告插入入门

要使用 AWS Elemental MediaTailor,您需要 AWS 账户 和权限才能访问、查看和编辑 MediaTailor 配置。有关如何执行此操作的信息,请参阅 设置 AWS Elemental MediaTailor

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

  • 准备好你的 HLS 或 DASH 内容流

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

  • 创建包含播放端点的 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 内容是可选的,VOD 内容可以改用 VMAP 时间偏移。

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

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

      #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>
  • 广告效用必须具有与内容流相同的 AdaptationSetRepresentation 设置。 AWS Elemental MediaTailor 使用这些设置来转码广告以匹配内容流,从而实现两者之间的流畅拼接。

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

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

要确定 ADS 需要的查询参数,请从 ADS 生成一个广告标签 URL。此 URL 充当对 ADS 请求的模板,并包含以下内容:

  • 静态值

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

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

例 来自 ADS 的广告标签 URL
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] 的值将随每个播放器会话更改,并为针对每个会话的 VAST 请求生成不同的 URL。

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

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

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

测试

您可以使用来自 ADS 的静态 VAST 响应进行测试。理想情况下,VAST 响应会返回 AWS Elemental MediaTailor 可以转码的夹层品质的 MP4 呈现。如果来自 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. 对于 Video content source (视频内容源),输入此流的 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(如步骤 3:配置 ADS 请求网址和查询参数中所述),或用于测试用途的静态 VAST URL。最大长度为 25000 个字符。

    注意

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

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

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

  7. (可选)如果您的源服务器生成单周期 DASH 清单,请选择 DASH mpd manifest origin type (DASH mpd 清单原始类型),然后选择 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 步:创建配置中配置的视频内容源时获得完全标识的清单。

通过使用前面示例中的值,完整的 URL 如下所示。

  • 示例: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提供的配置的播放终端节点。您在步骤 3:配置 ADS 请求网址和查询参数中的 ADS 请求 URL 中使用的任何播放器定义的动态变量必须在来自播放器的清单请求中定义。

假如您的模板 ADS URL 如下。

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 的键-值对的更多信息,请参阅 在中使用动态广告变量 AWS Elemental MediaTailor

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

使用 Amazon CloudWatch 和 A CloudWatch mazon Logs 来跟踪 AWS Elemental MediaTailor 活动,例如已填写的请求数、错误数和广告投放次数。

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

允许 AWS Elemental MediaTailor 访问 CloudWatch (控制台)
  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

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

  3. 选择其他 AWS 账户角色类型。

  4. 在 “账户 ID” 中,输入您的 AWS 账户 ID。

  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 删除配置。