

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

# MediaTailor ADS 请求的玩家变量
<a name="variables-player"></a>

AWS Elemental MediaTailor 当您配置为在模板 ADS 网址中指定`player_params.<query_parameter_name>`变量时，会 AWS Elemental MediaTailor 将从玩家那里收到的数据发送到 ADS。例如，如果玩家向发送请求`user_id`中名为的查询参数 MediaTailor，则要在 ADS 请求中传递该数据，请将其包含`[player_params.user_id]`在 ADS 网址配置中。

这使您能够控制 ADS 请求中包含的查询参数。通常，您将 ADS 可识别的特殊查询参数添加到 ADS 请求 URL，并提供键-值对作为参数值。

以下过程中使用的示例将使用以下键-值对：
+ *值为 *1 的 param1*：*
+ *值为 *2 的 param2*：*

**添加查询参数作为键-值对** 

1. 在中 AWS Elemental MediaTailor，配置 ADS 请求模板网址以引用参数。以下 URL 显示包含了示例参数：

   ```
   https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]
   ```

1. （可选）对于服务器端广告跟踪报告，对播放器上的键-值对进行 URL 编码。 MediaTailor 收到会话初始化请求时，它会对值进行网址解码一次，然后再将其替换为 ADS 请求网址。
**注意**  
如果您的 ADS 需要 URL 编码值，请在播放器上对值进行两次 URL 编码。这样，由完成的解码就会为 AD MediaTailor S 生成一个曾经编码过的值。

   例如，如果发送到 ADS 的值的解码表示形式为 `param1=value1:&param2=value2:`，则 URL 编码表示形式为 `param1=value1%3A&param2=value2%3A`。

1. 在来自玩家的会话初始化调用中，将键值对 MediaTailor 作为单个查询参数的值传递给。以下示例调用将为服务器端和客户端广告跟踪报告提供示例键-值对。
   + 服务器端广告跟踪报告的示例请求 - 使用 URL 编码对

     HLS：

     ```
     <master>.m3u8?ads.param1=value1%3A&ads.param2=value2%3A
     ```

     DASH：

     ```
     <manifest>.mpd?ads.param1=value1%3A&ads.param2=value2%3A
     ```
   + 客户端广告跟踪报告的示例请求 - 不使用 URL 编码

     HLS：

     ```
     POST <master>.m3u8
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

     DASH：

     ```
     POST <manifest>.mpd
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

对于服务器端报告，在收到玩家请求时对参数进行 MediaTailor 解码。对于客户端报告，它不会更改 JSON 负载中接收到的参数。 MediaTailor 向 ADS 发送以下请求：

```
https://my.ads.com/<path>?param1=value1:&param2=value2:
```

这样，`param1` 和 `param2` 键-值对将作为 ADS 请求中的第一类查询参数包含在内。