

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

# 使用服务器引导广告插入 (SGAI) 进行服务器端跟踪
<a name="ad-reporting-server-side-sgai"></a>

当您使用服务器引导式广告插入 (SGAI) 时，服务器端跟踪使用的*无会话信标机制与*上述拼接模式方法不同。SGAI 没有将广告细分 MediaTailor 拼接到内容清单（用于跟踪`/v1/segment`请求）中，而是在资产列表响应中将广告引用作为单独的播放列表返回，广告中嵌入了信标元数据。 URIs

## 无会话服务器端信标的工作原理
<a name="ad-reporting-server-side-sgai-how-it-works"></a>

以下步骤描述了服务器端信标如何适用于 SGAI 会话：

1. **会话初始化**：玩家使用请求HLS多变体播放列表。`aws.insertionMode=GUIDED`服务器端报告是默认设置（不需要任何`aws.reportingMode`参数）。与拼接模式不同，会话初始化响应*不*包括。`trackingUrl`

1. **Cacheable manifest**： MediaTailor返回一个可缓存的清单，其中包含指向 MediaTailor插页式资产列表端点的`EXT-X-DATERANGE`标签`CLASS="com.apple.hls.interstitial"`和`X-ASSET-LIST`属性。

1. 包含@@ **信标元数据的资产列表**：当玩家遇到广告插播时，它会获取资产列表。 MediaTailor返回一个 JSON 响应，其中每个广告 URI 都包含加密的信标元数据：

   ```
   {
     "ASSETS": [
       {
         "DURATION": 30.0,
         "URI": "https://cdn.example.com/ad/master.m3u8?awsBeaconData=<encrypted>&awsBeaconDomain=<MediaTailor-endpoint>&awsConfigurationName=<config-name>"
       }
     ]
   }
   ```

   当服务器端报告处于活动状态时，响应中*不*包含`TRACKING`部分。该广告 URIs 包含所有信标数据。

1. **HLS 变量替换**：玩家获取广告多变体播放列表。广告清单使用`#EXT-X-DEFINE:QUERYPARAM`指令 URLs 通过 HLS 变量替换将 URI 查询字符串中的信标参数传递到区段：

   ```
   #EXTM3U
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconData"
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconDomain"
   #EXT-X-DEFINE:QUERYPARAM="awsConfigurationName"
   #EXTINF:5.0,
   {$awsBeaconDomain}/segment/hash/{$awsConfigurationName}/{$awsBeaconData}/0/0?aws.segmentRelativePath=asset_00001.ts
   ```

   玩家使用广告清单 URI 查询字符串中的值解析`{$awsBeaconData}``{$awsBeaconDomain}`、和`{$awsConfigurationName}`变量，然后通过 MediaTailor请求每个广告段。

1. **根据区段请求触发信标**：当玩家请求每个广告区段时，请求就会通过 MediaTailor。该服务解密信标数据，确定区段在广告中的位置（展示次数、第一四分位数、中点、第三四分位数或完整），然后向广告服务器发射相应的 VAST 跟踪信标。 MediaTailor 然后将玩家重定向到实际的广告内容细分。

## 玩家对 SGAI 服务器端信标的要求
<a name="ad-reporting-server-side-sgai-requirements"></a>

要在 SGAI 中使用服务器端信标，您的玩家必须满足以下要求：
+ HLS 版本 11 或更高版本
+ Support 支持 `EXT-X-DATERANGE` HLS 插页式广告的 with `CLASS` 属性
+ 支持`#EXT-X-DEFINE:QUERYPARAM`变量替换 (RFC 8216bis)。玩家必须先对查询参数值进行百分比解码，然后才能将其替换为分段。 URLs

**注意**  
目前仅支持 HLS 的 SGAI 服务器端信标。SGAI 服务器端信标尚不支持 DASH。

## 与缝合模式服务器端跟踪的比较
<a name="ad-reporting-server-side-sgai-comparison"></a>

下表汇总了拼接广告和服务器引导广告插入之间服务器端跟踪的区别：


| 方面 | 缝合 (SSAI) | 服务器引导 (SGAI) | 
| --- | --- | --- | 
| 清单可缓存性 | 每会话，不可缓存 | 可缓存，在观众之间共享 | 
| 广告区段路由 | 通过/v1/segment/使用会话 ID | 通过/v1/segment/使用加密的信标数据 blob | 
| 信标的会话状态 | 按会话存储在 MediaTailor | 无会话 — 所有状态均在加密参数中传输 awsBeaconData | 
| 会话初始化时跟踪网址 | 在会话初始化响应中返回 | 未提供 — 信标数据嵌入广告 URIs 中的每个资产列表响应中 | 
| DASH 支持 | 支持 | 暂不支持 | 

**注意**  
对于实时 SGAI 会话，您可以使用启用基于清单的广告预取。`aws.guidedPrefetchMode=MANIFEST`这与拼接 (SSAI) 会话中使用的基于调度的预取 API 是分开的。有关更多信息，请参阅 [引导式预取，带有明显的心跳声](sgai-guided-prefetch.md)。