

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Elemental MediaTailor を使用して広告を挿入する
<a name="configurations"></a>

設定は、 AWS Elemental MediaTailor内で操作するオブジェクトです。設定には、オリジンサーバーと広告決定サーバー (ADS) のマッピング情報が保持されています。広告が利用できない場合、または広告が ad avail 全体を埋めない場合に MediaTailor が使用するデフォルトの再生を定義することもできます。

MediaTailor でコンテンツ配信ネットワーク (CDN) を使用する場合は、CDN 情報を設定に追加する前に CDN で動作ルールを設定する必要があります。CDN のセットアップに関する詳細については、「[CDN を使用して MediaTailor の広告パーソナライゼーションとコンテンツ配信を最適化する](integrating-cdn.md)」を参照してください。

**Topics**
+ [サポートされているオーディオコーデックとビデオコーデック](#supportedcodecs)
+ [AWS Elemental MediaTailor 広告挿入動作について](ad-behavior.md)
+ [MediaTailor サーバーガイド広告挿入の概要と実装](server-guided.md)
+ [MediaTailor 広告サーバー統合要件](vast.md)
+ [MediaTailor 再生設定の管理](working-with-configurations.md)
+ [MediaTailor 広告挿入用のコンテンツソースの統合](integrating-origin.md)
+ [Google 広告マネージャー AWS Elemental MediaTailor との統合](gam-integration.md)
+ [広告ブレーク抑制による広告ブレーク動作のカスタマイズ](ad-rules.md)
+ [MediaTailor バンパー広告挿入](bumpers.md)
+ [MediaTailor プリロール広告挿入](ad-behavior-preroll.md)
+ [MediaTailor スレート広告挿入](slate-management.md)
+ [広告のプリフェッチ](prefetching-ads.md)
+ [での前提条件付き広告の使用 AWS Elemental MediaTailor](precondition-ads.md)
+ [ADS リクエストの MediaTailor 動的広告変数](variables.md)
+ [MediaTailor マニフェストクエリパラメータ](manifest-query-parameters.md)
+ [広告追跡データの報告](ad-reporting.md)
+ [オーバーレイ広告](overlay-ads.md)
+ [広告 ID デコレーション](ad-id-decoration.md)

## サポートされているオーディオコーデックとビデオコーデック
<a name="supportedcodecs"></a>

MediaTailor は、次のコーデックをサポートしています。
+ オーディオコーデック: mp4a、ac-3、および ec-3
+ ビデオコーデック: h.264 (AVC)、 h.265 (HEVC)、 av01 (AV1)

# AWS Elemental MediaTailor 広告挿入動作について
<a name="ad-behavior"></a>

AWS Elemental MediaTailor は、オリジンマニフェストに広告を置き換えるか挿入することで、ライブまたはビデオオンデマンド (VOD) コンテンツに広告をステッチします。広告が挿入されるか置き換えられるかは、オリジンマニフェストでの広告ブレークの設定方法と、コンテンツが VOD とライブのどちらであるかによって決まります。広告時間枠は、広告が表示されるプログラミング中の期間であり、広告表示は広告時間枠内の広告時間の特定単位であり、広告で埋めることができます。
+ *広告置換*では、MediaTailor がコンテンツセグメントを広告に置き換えます。
+ *広告挿入*では、MediaTailor がセグメントが存在しない場所に広告コンテンツを挿入します。

MediaTailor がライブおよび VOD コンテンツに広告をステッチする方法については、該当するトピックを選択してください。

**Topics**
+ [VOD に対する広告ステッチ動作](#ad-behavior-vod)
+ [ライブ広告ステッチング動作](#ad-behavior-live)

## VOD に対する広告ステッチ動作
<a name="ad-behavior-vod"></a>

MediaTailor は、オリジンマニフェストでの広告マーカーの設定方法、および広告決定サーバー (ADS) が VMAP レスポンスを送信するかどうかに基づいて、VOD コンテンツでの広告の挿入または置き換えを実行します。

マーカー設定による広告動作については、以下のセクションを参照してください。

### 広告マーカーが存在する場合
<a name="markers-present"></a>

AWS Elemental MediaTailor は、SCTE-35 広告マーカーがオリジンマニフェストに存在する広告を挿入します。`EXT-X-CUE-OUT` 値が `0` 時間の広告マーカーは、広告挿入を示しています。

#### HLS 広告マーカーのガイドライン
<a name="markers-present-hls"></a>

 ポストロールおよび広告ポッドの SCTE シグナル通知については、以下のガイドラインに従ってください。

##### プレロール広告
<a name="post-roll-ad-markers"></a>

HLS のポストロールの場合、最後のコンテンツセグメントの前に `CUE-OUT/IN` マーカーを置く必要があります。HLS 仕様では、タグのデコレータがセグメントの前で明示的に宣言される必要があるためです。

例えば、以下の宣言を検討してみましょう。

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
#EXT-X-ENDLIST
```

AWS Elemental MediaTailor は次のようなポストロールを挿入します。

```
#EXTINF:4.000,
Videocontent.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.0,
Adsegment1.ts
#EXTINF:3.0,
Adsegment2.ts
#EXTINF:1.0,
Adsegment3.ts
#EXT-X-ENDLIST
```

**Example 2: 広告ポッド**  
 `CUE-OUT/IN` タグは、セグメントに明示的にアタッチされる必要があります。広告ポッドの動作を模倣するために、複数の `CUE-OUT/IN` タグを連続して使用することはできません。  
例えば、以下の宣言は、広告ポッドを表現するための `CUE-OUT/IN` の有効な使用方法です。  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent1.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent2.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```
上記の宣言により、以下のような出力が得られます。  

```
Ad 1
Somecontent.ts
Ad 2
Somecontent2.ts
Videocontent.ts
Post-Roll Ad 3
```
以下の宣言は無効です。  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```

### 広告マーカーが存在しない場合
<a name="no-markers"></a>

広告マーカーは、マニフェストで広告ブレークをシグナリングするために推奨される方法です。広告マーカーは必須ではありません。マニフェストに DASH または HLS の広告マーカーが含まれていない場合、MediaTailor は ADS を 1 回呼び出し、レスポンスに基づいて広告ブレークを作成します。
+ ADS が VAST レスポンスを送信する場合、MediaTailor はマニフェストの冒頭にある広告ブレークにレスポンスからのすべての広告を挿入します。これがプレロールです。
+ ADS が VMAP レスポンスを送信する場合、MediaTailor は広告ブレークの時間オフセットを使用してブレークを作成し、それらを指定されたタイミング (プレロール、ミッドロール、またはポストロール) でマニフェスト全体に挿入します。MediaTailor は、マニフェスト内の各広告ブレークに、VMAP レスポンス内の各広告ブレークからのすべての広告を使用します。
**注記**  
セグメントで挿入ポイントと VOD コンテンツの VMAP が重複する場合は、MediaTailor が最も近い挿入ポイントに切り下げます。
**ヒント**  
ミッドロール広告ブレークを作成したいが、ADS が VMAP をサポートしないという場合は、マニフェストに広告マーカーがあることを確認してください。MediaTailor は、次のセクションの説明にあるように、マーカーの場所に広告を挿入します。

**注記**  
サーバーガイド広告挿入方法の場合、MediaTailor はマニフェストの上部にプリロール広告を挿入し、プレイヤーは他の広告タイプの前にそれらを再生します。

## ライブ広告ステッチング動作
<a name="ad-behavior-live"></a>

ライブストリームでは、 AWS Elemental MediaTailor は常に広告置換を実行し、広告マーカー間の合計時間を可能な限り厳密に保ちます。広告マーカーに `DURATION` 属性が含まれる場合、MediaTailor はその値を使用して広告ブレークの継続時間を判断します。ライブワークフローでは、すべての`CUE-OUT`インジケータに期間または一致する`CUE-IN`インジケータが必要です。

MediaTailor は、HLS および DASH のライブコンテンツに対して広告置換を実行します。MediaTailor が広告ブレークの配置とタイミングを計算する方法については、「[HLS 対応の広告マーカー](hls-ad-markers.md)」と「[DASH 広告マーカー](dash-ad-markers.md)」を参照してください。

### 広告の選択と置き換え
<a name="ad-behavior-live-ad-selection"></a>

AWS Elemental MediaTailor には、広告決定サーバー (ADS) VAST レスポンスからの広告が次のように含まれます。
+ 継続時間が指定されている場合、MediaTailor はその時間内に収まる一連の広告を選択して、それらを含めます。
+ 継続時間が指定されていない場合、MediaTailor は、メインコンテンツに戻ることを示す広告マーカーに到達するまで、可能な限り多くの広告を再生します。

AWS Elemental MediaTailor は、ライブ広告の置き換え中に次のガイドラインに従います。
+ MediaTailor は、広告をトリミングしたりカットしたりすることなく、完全に再生しようとします。
+ 広告ブレークの終了を示す広告マーカーに到達すると、MediaTailor は常に基盤となるコンテンツに戻ります。これは、現在再生中の広告の短縮化につながる可能性があります。
+ 継続時間が終了すると、MediaTailor は基盤となるコンテンツに戻ります。
+ 広告ブレークの継続時間中に再生する広告がなくなると、MediaTailor はスレートを再生する (スレートが設定されている場合)、または基盤となるコンテンツストリームの再生を再開します。これは通常、広告ブレークの継続時間を埋めるために十分なトランスコード済みの広告がない場合に発生します。

  
**ヒント**  
ブレーク内で許容される広告が配信されない時間の制限は、パーソナライゼーションのしきい値設定を使用して定義できます。詳細については、[PlaybackConfiguration リファレンス](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html#mediatailor-PutPlaybackConfiguration-request-PersonalizationThresholdSeconds)を参照してください。

### サーバーガイド広告挿入のライブプリロール
<a name="ad-behavior-live-preroll-sgai"></a>

ライブプリロールは、サーバー側の広告挿入と比較して、サーバーガイドの広告挿入方法では動作が異なります。

サーバー側の広告挿入 (ステッチモード)  
プレロール広告は、各視聴者のセッションの開始時にライブコンテンツの一部を置き換えます。各ビューワーは、ストリームに参加するタイミングに応じて異なるタイミングでプリロールを表示します。

サーバーガイド広告挿入方法  
MediaTailor は、`CUE="PRE,ONCE"`属性を持つすべてのメディアマニフェストの上部にプリロール日付範囲タグを配置します。これにより、プレイヤーは同じパーソナライズされていないマニフェストを共有しているにもかかわらず、再生の開始時に一度プレロール広告をリクエストして再生します。

**設定要件:**
+ **ライブプリロール広告決定サーバー:** プリロール広告の VAST エンドポイントを設定する (ミッドロール広告とは異なる場合があります)
+ **ライブプリロールの最大許容期間:** プリロール広告の最大期間を設定します (オプション - 省略すると、返されたすべての広告が使用されます）。

**技術的な実装:**
+ 事前ロール日付範囲タグの使用 `START-DATE="1970-01-01T00:00:00.000Z"` (Unix エポック)
+ プリロールのアセットリストリクエストは、通常の ADS の代わりに設定されたプリロール広告決定サーバーを使用します。
+ プレイヤーは、アセットリストデータの `availId="aws-mediatailor-preroll-1"` を通じてプリロールリクエストを識別します。

**重要**  
ライブストリームの場合、プリロール広告はコンテンツを遅延させるのではなくカバーします。今後のバージョンでは、追加の設定オプションを使用してコンテンツ遅延モードをサポートする場合があります。

**注記**  
プリロールの動作は、サーバーガイド広告挿入のライブコンテンツと VOD コンテンツによって異なります。ライブコンテンツには明示的なプリロール設定が必要ですが、VOD コンテンツにはデフォルトで通常の広告決定サーバーを使用したプリロールが含まれます。

### 例
<a name="ad-behavior-live-examples"></a>
+ 広告時間枠の期間を 70 秒に設定し、ADS レスポンスに 40 秒の広告が 2 つ含まれている場合、 は 40 秒の広告のいずれかを AWS Elemental MediaTailor 再生します。残った時間は、設定されたスレート、または基盤となるコンテンツに切り替えられます。このプロセス中に MediaTailor がキューインインジケータに到達した場合は、その時点で直ちに基盤となるコンテンツに切り替わります。
+ 広告ブレークの継続時間が 30 秒に設定されており、ADS レスポンスから提供された最短の広告が 40 秒である場合、MediaTailor は広告を再生しません。広告スレートが設定されている場合、MediaTailor はスレートを 30 秒間、またはキューインインジケータに到達するまで再生します。広告スレートが設定されていない場合、MediaTailor は基盤となるコンテンツを再生します。

# MediaTailor サーバーガイド広告挿入の概要と実装
<a name="server-guided"></a>

AWS Elemental MediaTailor サーバーガイド広告挿入 (SGAI) は、広告をメディアプレイリストに直接ステッチするのではなく、個別のプレイリストとして参照することで、サーバー側の広告挿入に代わる手段を提供します。このアプローチにより、キャッシュ可能なマニフェストによるパフォーマンスが向上し、スケーラビリティが向上します。

MediaTailor でサーバーガイド広告挿入を使用する方法については、次のリストから該当するトピックを選択してください。

## 再生設定で を有効にする
<a name="enable-in-config"></a>

プレイヤーがサーバーガイド広告挿入を使用できるようにするには、MediaTailor 再生設定`PLAYER_SELECT`で を `Insertion Mode`に設定する必要があります。これにより、プレイヤーはセッション初期化時にステッチまたはガイド付き広告挿入を選択できます。

## サーバーガイドセッションを作成する
<a name="create-guided-session"></a>

再生セッションを作成するときは、ガイドモードを選択します。これを行う方法は、プレイヤーが暗黙的なセッションを使用するか明示的なセッションを使用するかによって異なります。

### 暗黙的に作成されたサーバーガイド付きセッション
<a name="create-implicit-guided-session"></a>

HLS マルチバリアントプレイリストリクエスト`aws.insertionMode=GUIDED`に追加します。例:

```
playback-endpoint/v1/master/hashed-account-id/origin-id/index.m3u8?aws.insertionMode=GUIDED
```

コードの説明は以下のとおりです。
+ `playback-endpoint` は、設定を作成したときに AWS Elemental MediaTailor によって生成された固有の再生エンドポイントです。

  例

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com
  ```
+ `hashed-account-id` は AWS アカウント ID です。

  例

  ```
  777788889999
  ```
+ `origin-id` は、設定を作成したときに付けた名前です。

  例

  ```
  myOrigin
  ```
+ `index.m3u8` または は、テストストリームからのマニフェストの名前とそのファイル拡張子です。これは、[ステップ 4: 設定を作成する](getting-started-ad-insertion.md#getting-started-add-mapping) で設定した動画コンテンツソースにマニフェストを付加するときに、マニフェストが完全に識別されるように定義します。

上記の例の値を使用すると、完全な URL は以下のようになります。
+ 例:

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED
  ```

### 明示的に作成されたサーバーガイドセッション
<a name="create-explicit-guided-session"></a>

プレイヤーが MediaTailor 設定のセッション初期化プレフィックスエンドポイント`POST`に HTTP で送信する JSON メタデータ`insertionMode=GUIDED`に を追加します。

次の例は、JSON メタデータの構造を示しています。

```
{
  # other keys, e.g. "adsParams"
  "insertionMode": "GUIDED"       # this can be either GUIDED or STITCHED
}
```

この初期化メタデータでは、再生セッションはセラーガイド付き広告挿入を使用します。

# SGAI による広告追跡
<a name="sgai-ad-tracking"></a>

SGAI は、サーバー側とクライアント側の広告追跡の両方をサポートしています。セッションの初期化時にレポートモードを設定します。セッション中にモードを変更することはできません。

サーバー側の追跡 (デフォルト)  
MediaTailor は、プレイヤーが広告セグメントをリクエストすると VAST ビーコンを自動的に発射します。アセットリストの広告 URIs には、暗号化されたビーコンメタデータ (`awsBeaconData`、`awsBeaconDomain`、) が含まれています`awsConfigurationName`。プレイヤーは HLS `#EXT-X-DEFINE:QUERYPARAM`変数置換をサポートする必要があります。アセットリストレスポンスには `TRACKING`セクションは含まれません。  
SGAI サーバー側のビーコンの仕組みの詳細については、「」を参照してください[サーバーガイド広告挿入によるサーバー側の追跡 (SGAI)](ad-reporting-server-side-sgai.md)。

クライアント側の追跡  
セッション初期化リクエスト`aws.reportingMode=CLIENT`に を追加します。アセットリストレスポンスには、広告の再生中にプレイヤーが起動するビーコン URLs を含む`TRACKING`セクションが含まれます。`GetTracking` API エンドポイントは SGAI セッションには使用*されません*。代わりに、各アセットリストレスポンスには、データの直接追跡が含まれます。追跡データは、サーバー側の広告挿入 (SSAI) 追跡レスポンスと同じ JSON スキーマを使用します。  
詳細については、「[サーバーガイド広告挿入](ad-reporting-client-side.md#ad-reporting-client-side-best-practices-sgai)」を参照してください。

# マニフェストハートビートを使用したガイド付きプリフェッチ
<a name="sgai-guided-prefetch"></a>

ライブ SGAI ストリームの場合、セッション初期化リクエスト`aws.guidedPrefetchMode=MANIFEST`に を追加することで、マニフェストベースの広告プリフェッチを有効にできます。

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

有効にすると、MediaTailor はセッション識別子 (`?aws.sessionId=<id>`) をクエリパラメータとして、多変量プレイリストの各インタースティシャルメディアマニフェスト (`/v1/i-media`) URL に追加します。プレイヤーが i メディアマニフェストを更新するたびに、リクエストはセッション ID で MediaTailor に到達します。これは、MediaTailor が今後の広告時間枠のプリフェッチリクエストをキューに入れるために使用されます。
+ `aws.guidedPrefetchMode` パラメータは、 `MANIFEST` (有効) と `OFF` (無効、デフォルト) の 2 つの値を受け入れます。
+ ガイド付きプリフェッチモードは、SGAI セッションでのみ有効です。ステッチセッションで使用すると、エラーが返されます。
+ DASH はガイド付きプリフェッチモードをまだサポートしていません。
+ ガイド付きプリフェッチはレポートモードとは無関係です。ビーコンはプリフェッチ時ではなく再生時に発生します。
+ **ガイド付きプリフェッチを使用する場合は、i メディアマニフェストを CDN にキャッシュしないでください。**プリフェッチメカニズムは、MediaTailor に直接到達するプレイヤーのマニフェスト更新リクエストによって異なります。CDN が`/v1/i-media`レスポンスをキャッシュする場合、MediaTailor はハートビートリクエストを受信せず、プリフェッチをトリガーできません。

# MediaTailor サーバーガイド広告挿入機能の互換性マトリックス
<a name="sgai-feature-compatibility"></a>

AWS Elemental MediaTailor には、機能の互換性が異なる 2 つの広告挿入方法が用意されています。サーバーガイド広告挿入はサーバー側の広告挿入とは異なり、一部の MediaTailor 機能との互換性に影響します。この表を使用して、各広告挿入方法でどの機能が機能するかを理解します。


**広告挿入方法による機能の互換性**  

| 機能 | サーバー側の広告挿入 (SSAI) | サーバーガイド広告挿入 (SGAI) | 
| --- | --- | --- | 
| 広告プリフェッチ | ✓ サポート対象 | まだサポートされていません。 | 
| 広告抑制 | ✓ サポート対象 | 該当しない | 
| ロール前の広告動作 | MediaTailor 設定で制御 | MediaTailor 設定で制御 | 
| クライアント側の広告追跡 | GetTracking API を使用する | アセットリストで TRACKINGセクションを使用 (GetTracking API は使用されません) | 
| サーバー側の広告追跡 | ✓ サポート — セッション ID を使用した/v1/segmentリクエストに基づいてビーコンが起動します | ✓ サポート (HLS のみ) — を介して広告 URIs に埋め込まれた暗号化されたビーコンデータを使用したセッションレスビーコンを使用します\$1EXT-X-DEFINE:QUERYPARAM。HLS v11 以降が必要です。DASH はまだサポートされていません。 | 
| 広告 ID デコレーション | ✓ サポート対象 | ✗ 互換性がない | 

## 互換性の詳細
<a name="compatibility-details"></a>

### 広告プリフェッチ
<a name="prefetch-compatibility"></a>

広告プリフェッチは現在サポートされていません。

### 広告抑制
<a name="prefetch-compatibility"></a>

プレイヤーは再生する広告のみを取得するため、広告抑制はサーバーガイドの広告挿入方法ではサポートされていません。

### ロール前の広告動作
<a name="preroll-compatibility"></a>

プリロール広告タイミングは、挿入方法によって異なります。
+ **サーバー側の広告挿入:** MediaTailor は、設定に基づいてプレロール広告が再生されるタイミングを制御します
+ **サーバーガイド広告挿入:** MediaTailor はマニフェストの上部にプリロール広告を挿入します。プレイヤーは最初にこれらの広告を表示し、コンテンツを開始します。

### 広告の追跡
<a name="tracking-compatibility"></a>

**クライアント側の追跡**は、広告挿入方法に応じて異なるメカニズムを使用します。
+ **サーバー側の広告挿入 (SSAI):** `GetTracking` API エンドポイントを使用します
+ **サーバーガイド広告挿入 (SGAI):** MediaTailor は、各アセットリストレスポンスの `TRACKING`セクションで追跡情報を提供します。`GetTracking` API エンドポイントは使用されません。セッション初期化レスポンスには は含まれません`trackingUrl`。

**サーバー側の追跡**もメソッドによって異なります。
+ **サーバー側の広告挿入 (SSAI):** MediaTailor は、プレイヤーがセッション ID `/v1/segment/`を使用して を介してステッチされた広告セグメントを取得するときにビーコンを起動します。
+ **サーバーガイド広告挿入 (SGAI):** MediaTailor はセッションレスビーコンを使用します。MediaTailor は`awsBeaconData`、アセットリストで返される広告マニフェスト URIs に暗号化されたビーコンデータ (、`awsBeaconDomain`、`awsConfigurationName`) を埋め込みます。広告マニフェストは`#EXT-X-DEFINE:QUERYPARAM`タグを使用するため、プレイヤーはこれらの値をセグメント URLs。プレイヤーが各広告セグメントをリクエストすると、MediaTailor はデータを復号し、適切なビーコンを起動して、コンテンツセグメントにリダイレクトします。サーバー側のレポートがアクティブな場合、MediaTailor はアセットリストレスポンスから `TRACKING`セクションを省略します。詳細については、「[サーバーガイド広告挿入によるサーバー側の追跡 (SGAI)](ad-reporting-server-side-sgai.md)」を参照してください。

### 広告 ID デコレーション
<a name="ad-id-compatibility"></a>

広告 ID デコレーションは、X-AD-CREATIVE-SIGNALING ヘッダーを入力するフィールドは、マニフェストが書き込まれるときではなく、アセットリストがフェッチされたときにのみ認識されるため、サーバーガイド広告挿入と互換性がありません。

# ライブストリームの MediaTailor サーバーガイド広告挿入設定
<a name="sgai-live-configuration"></a>

AWS Elemental MediaTailor ライブコンテンツ用のサーバーガイド広告挿入は、キャッシュ可能なマニフェストを通じてパフォーマンスに大きなメリットをもたらします。ライブコンテンツ用に SGAI を設定すると、VOD と同じコアパラメータが使用されますが、ライブストリームの特性とリアルタイム処理に関する特定の考慮事項があります。

## ライブ SGAI の要件
<a name="sgai-live-requirements"></a>

ライブコンテンツの SGAI を有効にする前に、以下があることを確認してください。
+ ライブストリームに正しくフォーマットされた DATERANGE マーカーが含まれている
+ 広告時間枠の期間は一貫性があり、予測可能です
+ CDN は SGAI マニフェストを適切にキャッシュするように設定されています
+ プレイヤーがサーバーガイドの広告挿入ワークフローをサポート
+ 広告決定サーバーがライブコンテンツのリアルタイムリクエストを処理できる

### プレイヤーの要件
<a name="sgai-live-player-integration"></a>

プレイヤーは、SGAI ライブマニフェストを適切に処理するように設定する必要があります。
+ サーバーガイド広告挿入ワークフローのサポート
+ マニフェストからの広告挿入ガイダンスを処理する機能
+ ライブストリームのタイミングと同期の適切な処理
+ HLS コンテンツの場合: CLASS 属性を使用した HLS バージョン 8 と EXT-X-DATERANGE のサポート。サーバー側のビーコン用のバージョン 11。
+ HLS コンテンツの場合: EXT-X-DEFINE 変数置換のサポート

## ライブ再生設定
<a name="sgai-live-playback-config"></a>

ライブコンテンツの SGAI を有効にするには、以下の設定で再生設定を作成します。

**Example SGAI ライブ再生設定**  

```
{
  "Name": "LiveSGAIConfig",
  "VideoContentSourceUrl": "https://your-live-origin.com/live/stream.m3u8",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 1,
  "InsertionMode": "PLAYER_SELECT"
}
```

以下は、ライブ SGAI 設定に関する重要な考慮事項です。

`VideoContentSourceUrl`  
適切にフォーマットされた SCTE-35 DATERANGE マーカーを持つライブ HLS ストリームを指す必要があります。ストリームは、一貫したセグメント期間とビットレートバリアントを維持する必要があります。

## SGAI ライブマニフェストリクエスト
<a name="sgai-live-manifest-requests"></a>

SGAI ライブマニフェストは、従来の広告挿入と同じ URL パターンを使用します。

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED
```

## ライブ SGAI のマニフェストベースのプリフェッチ
<a name="sgai-live-guided-prefetch"></a>

ライブ SGAI ワークフローでは、マニフェストベースのプリフェッチハートビートを有効にして、広告フィルレイテンシーを減らすことができます。マニフェストリクエスト`aws.guidedPrefetchMode=MANIFEST`に を追加します。

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

有効にすると、MediaTailor はセッション識別子 (`?aws.sessionId=<id>`) をクエリパラメータとして、多変量プレイリストの各インタースティシャルメディアマニフェスト (`/v1/i-media`) URL に追加します。プレイヤーが i メディアマニフェストを更新するたびに、リクエストはセッション ID で MediaTailor に到達します。これは、MediaTailor がセッションを識別し、今後の広告時間枠のプリフェッチリクエストをキューに入れるために使用されます。

**重要**  
**ガイド付きプリフェッチを使用する場合は、i メディアマニフェストを CDN にキャッシュしないでください。**プリフェッチハートビートメカニズムは、MediaTailor に直接到達するプレイヤーのマニフェスト更新リクエストによって異なります。CDN がキャッシュして`/v1/i-media`レスポンスを提供する場合、MediaTailor はハートビートリクエストを受信せず、プリフェッチをトリガーできません。`aws.guidedPrefetchMode=MANIFEST` が使用中のときに MediaTailor に`/v1/i-media/*`リクエストを渡すように CDN を設定します。

ガイド付きプリフェッチは、レポートモードから独立しています。サーバー側 (デフォルト) 追跡とクライアント側 (`aws.reportingMode=CLIENT`) 追跡のどちらを使用する場合でも、ビーコンは広告がプリフェッチされたときではなく再生時に発生します。MediaTailor での広告プリフェッチの仕組みに関する一般的な情報については、「」を参照してください[広告のプリフェッチ](prefetching-ads.md)。

## SGAI ライブ設定のテスト
<a name="sgai-live-testing"></a>

SGAI ライブセットアップを以下の検証ステップで検証します。

1. **テストマニフェストの生成**

   SGAI ライブマニフェスト URL をリクエストし、適切な広告挿入ガイダンスを使用してキャッシュ可能なコンテンツを返すことを確認します。

1. **CDN キャッシュの検証**

   CDN が設定された TTL 値に従って SGAI マニフェストをキャッシュしていることを確認します。

1. **広告挿入をテストする**

   SGAI マニフェストで提供されているガイダンスを使用して、プレイヤーが広告を正常に挿入できることを確認します。

1. **パフォーマンスのモニタリング**

   CloudWatch メトリクスを使用して、オリジン負荷の低減とキャッシュヒット率の向上を検証します。

# VOD コンテンツの MediaTailor サーバーガイド広告挿入設定
<a name="sgai-vod-configuration"></a>

AWS Elemental MediaTailor VOD コンテンツのサーバーガイド付き広告挿入は、キャッシュ性の高いマニフェストとサーバー処理の削減により、パフォーマンスに大きなメリットをもたらします。VOD コンテンツ用に SGAI を設定すると、video-on-demandアセットの静的な性質を活用してキャッシュ効率を最大化し、オリジンリクエストを最小限に抑えることができるため、表示パターンが繰り返される大規模なコンテンツライブラリに最適です。

## VOD SGAI の要件
<a name="sgai-vod-requirements"></a>

SGAI for VOD コンテンツを有効にする前に、以下があることを確認してください。
+ VOD コンテンツには、適切にフォーマットされた広告マーカー (SCTE-35 または時間指定メタデータ) が含まれています。
+ コンテンツは、一貫した可用性を備えた信頼性の高いオリジンに保存されます。
+ CDN は、適切な TTL 値を使用して SGAI マニフェストをキャッシュするように設定されています
+ プレイヤーがサーバーガイドの広告挿入ワークフローをサポート
+ 広告決定サーバーは VOD 固有のメタデータとターゲティングを処理できます

### プレイヤーの要件
<a name="sgai-vod-player-requirements"></a>

プレイヤーは、SGAI VOD マニフェストと広告挿入を処理するように設定する必要があります。
+ サーバーガイド広告挿入ワークフローのサポート
+ VOD マニフェストからの広告挿入ガイダンスを処理する機能
+ VOD 再生中のクライアント側の広告挿入のサポート
+ 広告時間枠全体でのシークオペレーションの適切な処理
+ コンテンツ期間と位置追跡のサポート

## VOD 再生設定
<a name="sgai-vod-playback-config"></a>

VOD コンテンツの SGAI を有効にするには、次の設定で再生設定を作成します。

**Example SGAI VOD 再生設定**  

```
{
  "Name": "VODSGAIConfig",
  "VideoContentSourceUrl": "https://your-vod-origin.com/content/",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 5,
  "InsertionMode": "PLAYER_SELECT"
}
```

VOD SGAI 設定の主な考慮事項は次のとおりです。

`VideoContentSourceUrl`  
一貫した URL パターンを持つ VOD コンテンツライブラリを指す必要があります。オリジンが予想されるリクエストボリュームを処理でき、信頼性の高いコンテンツ配信を提供できることを確認します。

`ConfigurationAliases`  
マニフェストのキャッシュ可能性に影響を与えることなく、広告ターゲティングに使用できるコンテンツ期間、ジャンル、シリーズ情報などの VOD 固有のパラメータを含めます。

`ManifestProcessingRules`  
広告マーカーのパススルーを有効にして、元のコンテンツのタイミング情報を保持します。これは、定義済みの広告ブレーク位置を持つ VOD コンテンツにとって特に重要です。

## SGAI VOD マニフェストリクエスト
<a name="sgai-vod-manifest-requests"></a>

SGAI VOD マニフェストは、従来の VOD 広告挿入と同じ URL パターンを使用します。

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/content-path/manifest.m3u8?aws.insertionMode=GUIDED
```

## VOD 固有の広告ターゲティング
<a name="sgai-vod-ad-targeting"></a>

VOD コンテンツは、独自の広告ターゲティングの機会を可能にします。

### コンテンツメタデータのターゲティング
<a name="sgai-vod-content-metadata"></a>

VOD コンテンツメタデータを活用して広告ターゲティングを改善します。
+ **ジャンルとカテゴリ:** コンテンツタイプ (ドラマ、コメディ、ドキュメンタリー) に基づくターゲット広告
+ **コンテンツ評価:** 年齢に適した広告コンテンツを確保する (G、PG、R 評価)
+ **シリーズとシーズン:** シリーズ継続性または関連コンテンツのターゲット広告
+ **リリース日:** コンテンツ経過時間に基づくターゲット (新規リリースとカタログコンテンツ)
+ **コンテンツ期間:** コンテンツの合計長に基づいて広告ロードを調整する

### コンテキストターゲティングの表示
<a name="sgai-vod-viewing-context"></a>

VOD 表示パターンにより、コンテキストに応じた広告ターゲティングが可能になります。
+ **時刻:** コンテンツが視聴されるタイミングに基づいて広告をターゲットにする
+ **ヒンジウォッチング:** 複数のエピソードを視聴するユーザーの広告頻度を調整する
+ **完了率:** ユーザーの過去のコンテンツ完了パターンに基づくターゲット
+ **デバイスタイプ:** デバイスを表示するための広告形式を最適化する (テレビ、モバイル、タブレット)

## SGAI VOD 設定のテスト
<a name="sgai-vod-testing"></a>

以下の検証ステップで SGAI VOD の設定を確認します。

1. **テストマニフェストの生成**

   さまざまなコンテンツタイプの SGAI VOD マニフェスト URLsをリクエストし、適切な広告挿入ガイダンスに従ってキャッシュ可能なコンテンツを返すことを確認します。

1. **CDN キャッシュの検証**

   CDN が設定された TTL 値に従って SGAI マニフェストをキャッシュし、高いキャッシュヒット率を達成していることを確認します。

1. **広告挿入をテストする**

   さまざまな VOD コンテンツの SGAI マニフェストで提供されているガイダンスを使用して、プレイヤーが広告を正常に挿入できることを確認します。

1. **シーク操作をテストする**

   VOD 内で探すコンテンツが広告時間枠全体で正しく動作し、適切な再生位置が維持されていることを確認します。

1. **パフォーマンスのモニタリング**

   CloudWatch メトリクスを使用して、オリジン負荷の低減、キャッシュヒット率の向上、広告挿入率の成功を検証します。

### 主要なテストシナリオ
<a name="sgai-vod-testing-scenarios"></a>

これらの特定の VOD シナリオをテストします。
+ **人気コンテンツ:** 頻繁にアクセスされる VOD アセットの高いキャッシュヒット率を検証する
+ **ロングフォームコンテンツ:** 複数の広告時間枠がある映画やロングエピソードでの広告挿入をテストする
+ **シリーズコンテンツ:** シリーズのエピソード間で一貫した広告ターゲティングを検証する
+ **さまざまなジャンル: **コンテンツのメタデータとジャンルに基づいて広告ターゲティングをテストする

## VOD SGAI 最適化のベストプラクティス
<a name="sgai-vod-optimization"></a>

SGAI VOD 実装を最適化してパフォーマンスを最大化します。

### キャッシュの最適化
<a name="sgai-vod-cache-optimization"></a>
+ **TTL 値を最大化する:** コンテンツが変更されないため、VOD マニフェストのキャッシュ期間を長くする
+ **キャッシュキーの最小化:** キャッシュキーのバリエーションを減らしてヒット率を向上させる
+ **一般的なコンテンツを事前ウォーミングする:** トレンドまたは注目の VOD コンテンツのキャッシュマニフェスト
+ **キャッシュパフォーマンスのモニタリング:** キャッシュヒット率を追跡し、使用パターンに基づいて最適化する

### コンテンツ配信の最適化
<a name="sgai-vod-content-optimization"></a>
+ **一貫した URL パターン:** 予測可能な URL 構造を使用してキャッシュを改善する
+ **メタデータの標準化:** 信頼性の高い広告ターゲティングのために一貫したコンテンツメタデータを確保する
+ **広告時間枠の配置:** 自然なコンテンツ移行のために広告時間枠の配置を最適化する
+ **品質バリアント:** SGAI が VOD コンテンツのすべてのビットレートバリアントで機能することを確認する

# MediaTailor 広告サーバー統合要件
<a name="vast"></a>

広告サーバーを と統合するには AWS Elemental MediaTailor、広告サーバーが VAST および VMAP のサポートされているバージョンの IAB 仕様に準拠する XML を送信する必要があります。タグが整形式であることを確認にするには、公開されている VAST バリデータを使用できます。

AWS Elemental MediaTailor は、広告決定サーバーからの VAST および VMAP レスポンスをサポートします。 は、クライアント側の広告挿入用のクライアント側のレポート API を介した VPAID メタデータのプロキシ AWS Elemental MediaTailor もサポートしています。クライアント側のレポートについては、「[クライアント側の広告追跡](ad-reporting-client-side.md)」を参照してください。

MediaTailor は、以下の VAST、VMAP、および VPAID バージョンをサポートしています。
+ [VAST 4.3](https://iabtechlab.com/standards/vast/) まで 

  MediaTailor は VAST 4.3 経由のレスポンスバージョンを受け入れますが、VAST 4.0 以降の一部の高度な機能はサポートされていません。
+ [VMAP 1.0](https://www.iab.com/guidelines/digital-video-multiple-ad-playlist-vmap-1-0-1/)
+ [VPAID 2.0](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/)

## VAST 要件
<a name="vast-integration"></a>

広告サーバーの VAST レスポンスには、IAB 準拠の `TrackingEvents` 要素と、`impression` のような標準のイベントタイプが含まれている必要があります。標準以外の追跡イベントを含めると、 は VAST レスポンス AWS Elemental MediaTailor を拒否し、表示の広告を提供しません。

VAST 3.0 では、一連の順次的なリニア広告の配信である広告ポッドのサポートが導入されました。広告ポッド内の特定の広告が利用できない場合、 は ADS のインタラクションログに CloudWatch のエラー AWS Elemental MediaTailor を記録します。その後、ポッド内の次の広告の挿入を試行します。MediaTailor はこのように、使用できる広告が見つかるまでポッド内の広告を繰り返し表示します。

### ターゲティング
<a name="targeting"></a>

特定のプレイヤーを広告のターゲットにするには、広告のタグと URL 用のテンプレートを作成できます。詳細については、「[ADS リクエストの MediaTailor 動的広告変数](variables.md)」を参照してください。

AWS Elemental MediaTailor は、広告サーバーの VAST リクエストを送信するとき`user-agent`、およびサーバー側の追跡呼び出しを行うときに、プレイヤーの および `x-forwarded-for`ヘッダーをプロキシします。広告サーバーがこれらのヘッダーを処理できることを確認してください。または、`[session.user_agent]` または `[session.client_ip]` を使用して、広告タグと広告 URL のクエリ文字列でこれらの値を渡すこともできます。詳細については、「[ADS リクエストの MediaTailor セッション変数](variables-session.md)」を参照してください。

### 広告呼び出し
<a name="ad-calls"></a>

AWS Elemental MediaTailor は、設定で定義されているように VAST 広告 URL を呼び出します。広告呼び出しを実行するときは、プレーヤー固有またはセッション固有のパラメータを置き換えます。MediaTailor は VAST レスポンスで最大 7 レベルの VAST ラッパーとリダイレクトをフォローします。ライブストリーミングのシナリオの場合、MediaTailor は、接続されているプレイヤーの ad avail 開始と同時に広告呼び出しを実行します。実際には、ジッターのため、これらの広告呼び出しには数秒間に渡って行われる場合があります。広告サーバーが、このタイプの呼び出しに必要な同時接続数に対応できることを確認してください。MediaTailor は、ライブワークフローの VAST レスポンスのプリフェッチをサポートしています。詳細については、「[広告のプリフェッチ](prefetching-ads.md)」を参照してください。

### クリエイティブの処理
<a name="creative-handling"></a>

が ADS VAST レスポンス AWS Elemental MediaTailor を受信すると、クリエイティブごとにトランスコード`MediaFile`の最高ビットレートを識別し、これをソースとして使用します。このファイルをon-the-flyトランスコーダーに送信して、プレイヤーの多変量プレイリストのビットレートと解像度に適合するレンディションに変換します。最良の結果を得るには、最大ビットレートのメディアファイルが高品質の MP4 アセットであり、そのマニフェストプリセットが有効であることを確認してください。マニフェストプリセットが無効な場合、トランスコードジョブが失敗し、広告は配信されません。無効なプリセットの例には、ProRes などのサポートされていない入力ファイル形式、および解像度 855 x 481 などの特定のレンディション仕様などがあります。

メディアファイル入力でサポートされている形式のリストについては、*AWS Elemental MediaConvert 「 ユーザーガイド*」の「サポートされている入力形式の **MP4** 行」を参照してください。 [https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html)

**クリエイティブインデックス作成**  
AWS Elemental MediaTailor は、 `<Creative>`要素で指定された`id`属性の値で各クリエイティブを一意にインデックス化します。クリエイティブの ID が指定されていない場合、MediaTailor はインデックスにメディアファイル URL を使用します。

以下の宣言例はクリエイティブ ID を示しています。

```
<Creatives>
        <Creative id="57859154776" sequence="1">
```

独自のクリエイティブ ID を定義する場合は、各クリエイティブに新しい一意の ID を使用してください。クリエイティブ IDs再利用しないでください。 は、繰り返し使用するためにクリエイティブコンテンツ AWS Elemental MediaTailor を保存し、インデックス付き ID でそれぞれを検索します。新しいクリエイティブを受信すると、サービスはまずその ID をインデックスと照合します。ID が存在する場合、MediaTailor は受信コンテンツを再度処理する代わりに、保存されているコンテンツを使用します。クリエイティブ ID が再利用されると、MediaTailor は保存されている古い広告を使用し、新しい広告を再生しません。

**広告提供パートナーが提供する VAST 拡張機能**  
クリエイティブ IDs との衝突を防ぐために、広告提供パートナーが提供する拡張機能を VAST レスポンスに使用できます。MediaTailor は SpringServe、Publica、FreeWheel からの拡張機能をサポートしています。VAST 拡張オーバーライドを有効にすると、MediaTailor はデフォルトのクリエイティブ ID を拡張値に置き換えます。

この機能を有効にするには、[AWS サポートチケットを送信](https://console.aws.amazon.com/support/home#/)して、VAST 拡張機能ベースのクリエイティブ IDsの有効化をリクエストします。サポートチケットに次の情報を含めます。
+ AWS リージョン
+ AWS アカウント ID
+ MediaTailor 再生設定名

アカウントで VAST 拡張機能ベースのクリエイティブ IDs が有効になっていることを検証するには、ステージングまたはテスト再生設定で`RAW_ADS_RESPONSE`ログ記録を有効にすることもリクエストすることをお勧めします。ログ記録を使用すると、ADS が受信した元の VAST レスポンスを表示し、正しいクリエイティブ IDs が使用されていることを確認することができます。

## VPAID 要件
<a name="vpaid"></a>

VPAID は、公開者がインタラクティブ性の高い動画広告を配信したり、収益化されたストリームのビューアビリティメトリクスを提供したりすることを可能にします。VPAID の詳細については、「[VPAID 仕様](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/)」を参照してください。

AWS Elemental MediaTailor は、server-side-stitched VAST MP4 リニア広告とclient-side-inserted VPAID インタラクティブクリエイティブを同じ広告表示で組み合わせます。VAST レスポンス内での表示順序も保持します。MediaTailor は、最大 7 レベルのラッパーを通じて VPAID リダイレクトに従います。クライアント側のレポートのレスポンスには、ラップされていない VPAID メタデータが含まれています。

VPAID を使用するには、以下のガイドラインに従ってください。
+ VPAID creatives の MP4 スレートを設定します。 は、設定されたスレートで VPAID 広告スロットを AWS Elemental MediaTailor 埋め、クライアントプレーヤーがインタラクティブ広告の実行に使用する VPAID 広告メタデータを提供します。スレートが設定されていない場合、MediaTailor は VPAID 広告が表示されるときに、通常どおりクライアント側のレポートを通じて広告メタデータを渡します。また、欠落しているスレートに関するエラーを CloudWatch にログします。詳細については、「[MediaTailor スレート広告挿入](slate-management.md)」と「[MediaTailor 再生設定の作成](configurations-create.md)」を参照してください。
+ クライアント側のレポートを使用します。 は、クライアント側のレポート API を通じて VPAID AWS Elemental MediaTailor をサポートします。詳細については、「[クライアント側の広告追跡](ad-reporting-client-side.md)」を参照してください。

  理論的には、VPAID でデフォルトのサーバー側のレポートモードを使用することが可能です。ただし、サーバー側のレポートを使用する場合は、VPAID 広告の存在に関する情報および関連するメタデータが失われます。それらの情報はクライアント側の API を介してのみ使用可能であるためです。
+ ライブシナリオでは、 で示される広告表示が`EXT-X-CUE-OUT: Duration`、VPAID でのユーザーのインタラクティブ性に対応するのに十分な長さであることを確認します。例えば、VAST XML で 30 秒長の VPAID 広告が指定されている場合は、広告表示を 30 秒を超えるように設定することを検討してください。この追加時間により、ユーザーは広告を操作する機会が増えます。時間を追加しないと、広告表示の残りの期間が VPAID 広告に対応するのに十分な長さではないため、VPAID メタデータが失われる可能性があります。



# MediaTailor 再生設定の管理
<a name="working-with-configurations"></a>

このセクションでは、 AWS Elemental MediaTailor 再生設定を管理するための主要なタスクについて説明します。新しい設定を作成してコンテンツストリームを設定し、再生デバイスへのアクセスを提供する方法、既存の設定の詳細を表示する方法、設定を編集してオリジンサーバーや広告決定サーバーなどの設定を更新する方法、不要になった設定を削除する方法について説明します。

**Topics**
+ [MediaTailor 再生設定の作成](configurations-create.md)
+ [MediaTailor 設定の詳細の表示](configurations-view.md)
+ [MediaTailor 設定の編集](configurations-edit.md)
+ [MediaTailor 設定の削除](configurations-delete.md)

# MediaTailor 再生設定の作成
<a name="configurations-create"></a>

このトピックでは、 でコンテンツストリームの受信を開始する設定を作成する方法について説明します AWS Elemental MediaTailor。また、ダウンストリーム再生デバイスがコンテンツをリクエストするためのアクセスポイントを提供する方法も示します。

 AWS Elemental MediaTailor コンソール、 AWS Command Line Interface (AWS CLI)>、または MediaTailor API を使用して設定を作成できます。 AWS CLI または MediaTailor API を使用して設定を作成する方法については、 [https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html)を参照してください。

設定を作成するときは、**設定名**フィールドなどの自由形式のフィールドに機密の識別情報を入れないでください。識別情報には、顧客アカウント番号などが含まれる場合があります。また、MediaTailor コンソール、REST API、、または AWS SDKs で作業するときは AWS CLI、識別情報を使用しないでください。MediaTailor に入力されるデータは、いずれも診断ログ、または Amazon CloudWatch Events に取り込まれる可能性があります。

**設定を追加する (コンソール)**

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. [**設定**] ページで、[**Create configuration (設定の作成)**] を選択します。

1. 以下のトピックで説明するように、設定フィールドと追加設定フィールドに入力します。
   +  [必須の設定](#configurations-create-main) 
   +  [オプションの設定](#configurations-create-addl) 

1. **[設定を作成]** を選択します。

   AWS Elemental MediaTailor は、設定ページの テーブルに新しい**設定**を表示します。

1. (推奨) マニフェストリクエストとレポートリクエスト AWS Elemental MediaTailor の CDN を でセットアップします。CDN 設定の設定再生 URLs を使用できます。マニフェストとレポートのリクエスト用の CDN の設定については、「[CDN を使用して MediaTailor の広告パーソナライゼーションとコンテンツ配信を最適化する](integrating-cdn.md)」を参照してください。

## 必須の設定
<a name="configurations-create-main"></a>

設定を作成するときは、次の必須の設定を含める必要があります。

**名前**  
設定を説明する一意の名前を入力します。名前は設定の主な識別子です。許容される最大長は 512 文字です。

**コンテンツソース**  
 このストリームのマニフェストの URL プレフィックス (アセット ID を除く) を入力します。最大長は 512 文字です。  
たとえば、URL プレフィックス`http://origin-server.com/a/`は の HLS 多変量プレイリスト URL `http://origin-server.com/a/main.m3u8`と の DASH MPD URL に対して有効です`http://origin-server.com/a/dash.mpd`。あるいは、`http://origin-server.com` などの短いプレフィックスを入力できますが、プレイヤーのコンテンツリクエストでアセット ID に `/a/` を含める必要があります。  
コンテンツオリジンが HTTPS を使用している場合、その証明書は既知の認証機関からのものであることが必要です。自己署名証明書にすることはできません。自己署名証明書を使用する場合、 はコンテンツオリジンへの接続に AWS Elemental MediaTailor 失敗し、プレイヤーのリクエストに応じてマニフェストを提供できません。

**広告決定サーバー**  
 広告決定サーバー (ADS) の URL を入力します。これは、「[ステップ 3: ADS リクエスト URL とクエリパラメータを設定する](getting-started-ad-insertion.md#getting-started-configure-request)」で説明されている変数を含む URL、またはテスト目的で使用している静的 VAST URL です。最大長は 25,000 文字です。  
ADS が HTTPS を使用している場合、その証明書は既知の認証機関からのものであることが必要です。自己署名証明書にすることはできません。ADS から返されるメザニン広告の URL についても同様です。自己署名証明書を使用する場合、 AWS Elemental MediaTailor はコンテンツオリジンからマニフェストに広告を取得してステッチすることはできません。

## オプションの設定
<a name="configurations-create-addl"></a>

オプションで、**MediaTailor コンソール、MediaTailor API、または () で設定エイリアス**、**パーソナライゼーションの詳細**、**詳細を設定できます**AWS CLI。 MediaTailor AWS Command Line Interface 

### 設定エイリアス
<a name="configurations-configuration-aliases"></a>

以下は、MediaTailor コンソールまたは MediaTailor API で設定できるオプションの設定エイリアスです。

**プレイヤーパラメータ変数**  
セッションの初期化中に動的ドメイン設定を行うには、1 つ以上のプレイヤーパラメータ変数を追加します。  
ドメインを動的に設定するためのプレイヤーパラメータ変数の使用に関する詳細については、「[複数のコンテンツソースの MediaTailor ドメイン変数](variables-domains.md)」を参照してください。

### ログ設定
<a name="configurations-log-configurations"></a>

以下は、ログの設定です。

**有効な割合**  
MediaTailor が CloudWatch Logs に書き込む再生設定セッションログの割合を設定します。例えば、再生設定に 1,000 個の広告挿入セッションがあり、有効な割合の値を **60** に設定する場合、MediaTailor は 600 個のセッションログを CloudWatch Logs に書き込みます。  
 このオプションを有効にすると、MediaTailor は、CloudWatch Logs アカウントでのセッションログの書き込みと管理を MediaTailor に許可するサービスリンクロールを自動的に作成します。詳細については、「[MediaTailor 向けのサービスリンクロールの使用](using-service-linked-roles.md)」を参照してください。

**ログ記録戦略**  
MediaTailor が出力するログの収集に使用される方法を示します。CloudWatch Logs に直接ログを送信するには、 を選択します`LEGACY_CLOUDWATCH`。CloudWatch Logs にログを送信するには、 を選択します`VENDED_LOGS`。サポートされている送信先は、CloudWatch Logs ロググループ、Amazon S3 バケット、Amazon Data Firehose ストリームです。  
提供されたログには、追加のセットアップが必要です。セットアップについては、「」を参照してください[販売ログの使用](vended-logs.md)。

**ADS インタラクションログのオプトインイベント**  
MediaTailor が、この設定で初期化されたセッションの`RAW_ADS_RESPONSE`ログを出力することを示します。  
`RAW_ADS_RESPONSE` ログイベントには、ADS からの VAST または VMAP レスポンス全体が含まれます。そのため、ログは広範囲に及ぶ可能性があり、ログ記録のコストが増加する可能性があります。

**ADS インタラクションログ除外イベント**  
MediaTailor が ADS とのやり取りを記述するログで選択したイベントを出力しないことを示します。  
ADS ログイベントの説明については、「」を参照してください[ADS ログ](ads-log-format.md)。

**マニフェストサービスインタラクションログ除外イベント**  
MediaTailor がマニフェストサービスとのインタラクションを記述する選択したイベントをログに出力しないことを示します。  
マニフェストサービスログイベントの説明については、「」を参照してください[マニフェストログ](log-types.md)。

### 広告のコンディショニング
<a name="configurations-ad-conditioning"></a>

以下はMediaTailor がコンテンツストリームに広告をステッチする前に条件付けするために実行するアクションを決定します。

**ストリーミングメディアファイルのコンディショニング**  
MediaTailor がどの広告をステッチするかを決定する際に使用するロジックを決定します。  
+ **ストリーミングメディアファイルのコンディショニング**が **Transcode** に設定されている場合、MediaTailor はメディアファイルを`progressive`配信でトランスコードし、マニフェストにステッチします。`progressive` 配信メディアファイルを含む十分な広告がない場合、MediaTailor はそれらをトランスコードして`streaming`配信に使用します。
+ **ストリーミングメディアファイルのコンディショニング**が **None** に設定されている場合、MediaTailor は`streaming`、配信メディアファイルをトランスコードせずにマニフェストに広告をステッチします。`streaming` 配信メディアファイルを含む十分な広告がない場合、MediaTailor はそれらをトランスコードして`progressive`配信に使用します。

### パーソナライゼーションの詳細
<a name="configurations-personalization-details"></a>

以下は、MediaTailor コンソールまたは MediaTailor API で設定できるパーソナライゼーションの詳細です。

**スレート広告**  
MediaTailor が未入力の広告時間を埋めるために使用する高品質の MP4 アセットの URL を入力します。スレート設定はほとんどのワークフローではオプションですが、VPAID 広告では必須です。スレートの動作、設定要件、スレートが表示されるタイミングに関する包括的な情報については、「」を参照してください[MediaTailor スレート広告挿入](slate-management.md)。

**スタートバンパー**  
スタートバンパーアセットの場所の URL です。バンパーは、広告ブレークの開始時または終了前に再生される短時間の動画クリップまたはオーディオクリップです。これらは Amazon の S3、または別のストレージサービスに保存できます。バンパーの詳細については、「[MediaTailor バンパー広告挿入](bumpers.md)」を参照してください。

**エンドバンパー**  
エンドバンパーアセットの場所の URL です。バンパーは、広告ブレークの開始時または終了前に再生される短時間の動画クリップまたはオーディオクリップです。これらは Amazon の S3、または別のストレージサービスに保存できます。バンパーの詳細については、「[MediaTailor バンパー広告挿入](bumpers.md)」を参照してください。

**パーソナライズしきい値**  
スレート広告と組み合わせて使用する場合にのみ適用されます。MediaTailor がパーソナライゼーションを中止し、基盤となるコンテンツを表示するまでに、広告時間枠で許容される不足広告時間 (秒単位) の最大期間を定義します。この機能は基盤となるコンテンツストリームに依存するため、広告挿入ではなく、ライブストリームと VOD ストリームでの広告置換に適用されます。詳細な動作シナリオと包括的な情報については、「」を参照してください[パーソナライゼーションしきい値の仕組み](slate-management.md#personalization-threshold-scenarios)。

**ライブプレロール広告決定サーバー**  
メインコンテンツの再生開始前の、ライブストリームの開始時点に広告を挿入するには、広告決定サーバー (ADS) からの広告プレロールの URL を入力します。これは、「[ステップ 3: ADS リクエスト URL とクエリパラメータを設定する](getting-started-ad-insertion.md#getting-started-configure-request)」で説明されている変数を含む URL、またはテスト目的で使用している静的 VAST URL です。最大長は 25,000 文字です。  
ADS が HTTPS を使用している場合、その証明書は既知の認証機関からのものであることが必要です。自己署名証明書にすることはできません。ADS から返されるメザニン広告の URL についても同様です。自己署名証明書を使用する場合、 AWS Elemental MediaTailor はコンテンツオリジンからマニフェストに広告を取得してステッチすることはできません。
プレロールの仕組みについては、「[MediaTailor プリロール広告挿入](ad-behavior-preroll.md)」を参照してください。

**ライブプレロールの最大許容時間**  
ライブストリームの開始時点に広告を挿入している場合は、プレロール ad avail の最大許容継続時間を入力します。MediaTailor は、広告の挿入時にこの時間を超過しません。ADS からのレスポンスにこの継続時間に収まらない広告が含まれている場合、MediaTailor は継続時間を超過せずに、可能な限り多くの広告で avail を埋めます。MediaTailor が avail を埋める方法の詳細については、「[ライブ広告ステッチング動作](ad-behavior.md#ad-behavior-live)」を参照してください。

**Avail 抑制モード**  
モードを avail 抑制 (広告抑制とも呼ばれます) に設定します。デフォルトでは、広告抑制はオフになっており、MediaTailor はすべての広告またはスレートを埋めます。モードを に設定すると`BEHIND_LIVE_EDGE`、広告抑制はアクティブになり、MediaTailor はマニフェストルックバックウィンドウの有効抑制値時刻以降、広告ブレークを埋めません。モードが に設定されている場合`AFTER_LIVE_EDGE`、広告抑制はアクティブになります。MediaTailor は、有効抑制期間の前後の広告時間枠を埋めません。これは、ライブエッジに有効抑制値とバッファ時間を加えたものです。

**Avail 抑制値**  
Avail 抑制値は、`HH:MM:SS` 形式のライブエッジオフセット時刻です。MediaTailor は、マニフェストルックバックウィンドウのこの時刻以前の広告ブレークを埋めません。

**挿入モード**  
Insertion Mode は、プレイヤーがステッチド広告挿入とガイド付き広告挿入のどちらを使用できるかを制御します。デフォルトの は`STITCHED_ONLY`、すべてのプレイヤーセッションにスティッチド (サーバー側) 広告挿入を使用するように強制します。InsertionMode を に設定する`PLAYER_SELECT`と、プレイヤーはセッション初期化時にステッチまたはガイド付き広告挿入を選択できます。挿入モードを指定しないプレイヤーのデフォルトはステッチされます。

### 詳細設定
<a name="configurations-advanced-settings"></a>

以下は、オプションの設定の詳細です。これらは、MediaTailor コンソール、 AWS Command Line Interface (AWS CLI)、または MediaTailor API を使用して設定できます。

**CDN コンテンツセグメントプレフィックス**  
 AWS Elemental MediaTailor コンテンツセグメントの CDN パスへの URLsを使用してマニフェストを作成できるようにします。この手順を実行する前に、CDN でオリジンサーバーからセグメントをプルするためのルールを設定します。[**CDN content segment prefix (CDN コンテンツセグメントプレフィックス)**] に CDN プレフィックスパスを入力します。  
MediaTailor と CDN の統合の詳細については、「[CDN を使用して MediaTailor の広告パーソナライゼーションとコンテンツ配信を最適化する](integrating-cdn.md)」を参照してください。

**CDN 広告セグメントプレフィックス**  
 AWS Elemental MediaTailor が広告セグメントの独自の CDN パスへの URLsを持つマニフェストを作成できるようにします。デフォルトで、MediaTailor はデフォルトのキャッシュ設定を使用して、内部 Amazon CloudFront ディストリビューションからの広告セグメントを提供します。[**CDN ad segment prefix (CDN 広告セグメントプレフィックス)**] フィールドに入力する前に、CDN で以下のオリジンから広告セグメントをプルするためのルールを設定する必要があります。以下に例を示します。  

```
https://segments.mediatailor.<region>.amazonaws.com
```
[**CDN ad segment prefix (CDN 広告セグメントプレフィックス)**] に、設定の CDN プレフィックスの名前を入力します。  
MediaTailor と CDN の統合の詳細については、「[CDN を使用して MediaTailor の広告パーソナライゼーションとコンテンツ配信を最適化する](integrating-cdn.md)」を参照してください。

**DASH オリジンマニフェストタイプ**  
オリジンサーバーがシングルピリオド DASH マニフェストを生成する場合は、ドロップダウンリストを開き、[**SINGLE\$1PERIOD**] を選択します。デフォルトで、MediaTailor は DASH マニフェストをマルチピリオドマニフェストとして処理します。詳細については、「[MPEG-DASH ソースの統合](manifest-dash.md)」を参照してください。

**DASH mpd の場所**  
(DASH の必要に応じてオプション) メディアプレゼンテーションの説明 (mpd) の場所。次の状況では **DISABLED** を選択します。  
+ MediaTailor マニフェストにアクセスするための CDN ルーティングルールを設定します。
+ クライアント側のレポートを使用するか、プレイヤーがスティッキー HTTP リダイレクトをサポートします。
**[Location]** (ロケーション) 機能の詳細については、「[DASH のロケーション機能](dash-location-feature.md)」を参照してください。

**トランスコードプロファイル名**  
この設定をカスタムトランスコードプロファイルに関連付ける名前です。この名前は、MediaTailor の動的トランスコードのデフォルトを上書きします。このフィールドは、AWS Support の協力を得てカスタムプロファイルを既にセットアップしている場合にのみ入力します。

**広告マーカーのパススルー**  
HLS に対して、広告マーカーのパススルーを有効または無効にします。広告マーカーのパススルーが有効になっている場合、MediaTailor はオリジンマニフェストからの `EXT-X-CUE-IN`、`EXT-X-CUE-OUT`、および `EXT-X-SPLICEPOINT-SCTE35` 広告マーカーを MediaTailor のパーソナライズされたマニフェストにパススルーします。広告マーカーの値にロジックは適用されません。これらは、オリジンマニフェストからパーソナライズされたマニフェストにそのまま渡されます。例えば、オリジンマニフェストの `EXT-X-CUE-OUT` の値が `60` になっているのに広告が配置されていないという場合でも、MediaTailor はパーソナライズされたマニフェストの値を `0` に変更しません。

# MediaTailor 設定の詳細の表示
<a name="configurations-view"></a>

設定を作成したときに指定した値に加えて、 AWS Elemental MediaTailor では設定の名前、再生エンドポイント、関連するアクセス URL が表示されます。設定を表示するには、以下の手順を実行します。



 **設定を表示する** 

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. **[Configurations]** (設定) ページで、表示する設定の **[Configuration name]** (設定名) を選択します。

# MediaTailor 設定の編集
<a name="configurations-edit"></a>

設定を編集して、オリジンサーバーと広告決定サーバー (ADS) マッピングを更新するか、 がコンテンツ配信ネットワーク (CDN) と AWS Elemental MediaTailor やり取りする方法を変更できます。



 **設定を編集する** 

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. [**設定**] ページで、編集する設定の名前を選択します。

1. 設定の詳細ページで [**Edit (編集)**] を選択し、必要に応じて設定の内容を見直します。設定名を編集することはできません。設定の属性については、「[MediaTailor 再生設定の作成](configurations-create.md)」を参照してください。

1. **[保存]** を選択します。

# MediaTailor 設定の削除
<a name="configurations-delete"></a>

設定を削除して、 で再生できないようにすることができます AWS Elemental MediaTailor。



 **設定を削除する** 

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. [**設定**] ページで、以下のいずれかを実行します。
   + 削除する設定の名前を選択します。
   + [**設定名**] 列で、名前の横にあるオプションを選択してから [**Delete (削除)**] を選択します。

1. [**Delete (削除)**] 確認ボックスに「**Delete**」と入力し、[**Delete (削除)**] を選択します。

# MediaTailor 広告挿入用のコンテンツソースの統合
<a name="integrating-origin"></a>

このトピックでは、さまざまなタイプの動画コンテンツソースと MediaTailor の統合について説明します。MediaTailor は、ライブコンテンツとオンデマンドコンテンツの HLS ストリーミングプロトコルと DASH ストリーミングプロトコルの両方をサポートしています。このサービスは、指定された広告時間枠中に広告の挿入または置換を実行することができ、これらの機能を有効にするために入力ビデオマニフェストの構造とフォーマットに関する特定の要件があります。以下のトピックでは、HLS および DASH コンテンツを MediaTailor と統合してパーソナライズされた広告エクスペリエンスを実現するための入力ソースの要件と手順について詳しく説明します。

**Topics**
+ [MediaTailor 広告挿入の入力ソース要件](stream-reqmts.md)
+ [HLS ソースの統合](manifest-hls.md)
+ [MPEG-DASH ソースの統合](manifest-dash.md)
+ [SigV4 との AWS Elemental MediaTailor オリジンインタラクションの保護](origin-sigv4.md)

# MediaTailor 広告挿入の入力ソース要件
<a name="stream-reqmts"></a>

MediaTailor で入力ソースを機能させるには、ソースが以下の要件を満たしている必要があります。
+ Apple HLS (HTTP Live Streaming) または MPEG DASH (Dynamic Adaptive Streaming over HTTP) を使用する
+ ライブストリーミングまたはビデオオンデマンド (VOD) を使用する
+ パブリックインターネットでのアクセスが可能であり、パブリック IP アドレスがある
+ 標準の HTTP ポート (ポート 80) または HTTPS ポート (ポート 443) を使用します。MediaTailor は、オリジンサーバー通信用のカスタムポートをサポートしていません。
+ [MediaTailor 広告挿入入門チュートリアルで説明されているいずれかの形式で広告](getting-started-ad-insertion.md#getting-started-prep-stream)マーカーを含める 

# HLS ソースの統合
<a name="manifest-hls"></a>

AWS Elemental MediaTailor は、ライブストリーミングとビデオオンデマンド (VOD) の `EXT-X-VERSION``3`以上の `.m3u8` HLS マニフェストをサポートします。MediaTailor が広告ブレークに到達すると、コンテンツのタイプに基づいて広告の挿入または置き換えを試みます。その継続時間を埋めるために十分な広告がない場合、MediaTailor は基盤となるコンテンツストリーム、または設定されたスレートを表示します。コンテンツのタイプに基づいた HLS 広告動作の詳細については、「[AWS Elemental MediaTailor 広告挿入動作について](ad-behavior.md)」を参照してください。

以下のセクションでは、Mediatailor が HLS マニフェストを処理する方法について詳しく説明します。

**Topics**
+ [HLS 対応の広告マーカー](hls-ad-markers.md)
+ [広告マーカーパススルーの有効化](ad-marker-passthrough.md)
+ [HLS マニフェストタグの処理](manifest-hls-tags.md)
+ [HLS マニフェストの例](manifest-hls-example.md)

# HLS 対応の広告マーカー
<a name="hls-ad-markers"></a>

AWS Elemental MediaTailor は、サポートされている広告マーカーの入力マニフェストを解析することで、HLS マニフェスト内の広告表示境界を識別します。以下のセクションでは、MediaTailor が使用するマーカーについて説明します。

## EXT-X-ASSET
<a name="hls-ad-markers-asset"></a>

`EXT-X-ASSET` タグには、視聴者のコンテンツをパーソナライズするために広告決定サーバー (ADS) により使用されるメタデータが含まれています。`EXT-X-ASSET` パラメータは、カンマで区切られたキーと値のペアです。

このタグを使用するには、以下の要件を満たしている必要があります。
+ オリジンマニフェストの `EXT-X-ASSET` *値*を URL エンコードする必要があります。次の例は、キーと URL エンコードされた値を持つ `EXT-X-ASSET` タグを示しています。

  ```
              #EXT-X-ASSET:GENRE=CV,CAID=12345678,EPISODE="Episode%20Name%20Date",SEASON="Season%20Name%20and%20Number",SERIES="Series%2520Name"
  ```
+ MediaTailor ADS 設定には、動的 `[asset.]` 変数と*キー*を含める必要があります。以下は、動的 `[asset.]` 変数とキーを使用した MediaTailor ADS 設定の例です。

  ```
              https://myads.com/stub?c=[asset.GENRE]&g=[asset.CAID]&e=[asset.EPISODE]&s=[asset.SEASON]&k=[asset.SERIES]
  ```

**VAST リクエストの例**  
次の例は、ADS に対する VAST `GET` リクエストを示しています。

```
            https://myads.com/stub?c=CV&g=12345678&e=Episode%20Name%20Date&s=Season%20Name%20and%20Number&k=Series%2520Name
```

## EXT-X-CUE-OUT および EXT-X-CUE-IN
<a name="hls-ad-markers-cue"></a>

このタイプの広告マーカーは最も一般的です。次の例は、このようなキューマーカーのオプションを示しています。

```
#EXT-X-CUE-OUT:DURATION=120
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT:30.000
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT
    ...
    #EXT-X-CUE-IN
```

## EXT-X-DATERANGE
<a name="hls-ad-markers-range"></a>

`EXT-X-DATERANGE` 広告マーカータグでは、`SCTE35-OUT` 属性を使用して、ad avail のタイミングを指定します。

**注記**  
AWS Elemental MediaTailor は、`EXT-X-DATERANGE`広告マーカーに指定された`START-DATE`属性を無視します。

Ad avail は、次のいずれかの方法で指定できます。
+ `SCTE35-OUT` および `DURATION` 仕様の `EXT-X-DATERANGE` タグ。

  例

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
  ```
+ ペアリングされた `EXT-X-DATERANGE` タグ (`SCTE35-OUT` 仕様と `SCTE35-IN` 仕様)。

  例

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```
+ 以前のオプションの組み合わせ。仕様が `SCTE35-OUT` と `DURATION` の `EXT-X-DATERANGE` タグ、その後に`SCTE35-IN` 仕様の `EXT-X-DATERANGE` タグが続きます。この場合、MediaTailor は 2 つの仕様のうち最も早いキューイン設定を使用します。

  例

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```

## EXT-X-SPLICEPOINT-SCTE35
<a name="hls-ad-markers-splice"></a>

SCTE-35 ペイロードを含む `EXT-X-SPLICEPOINT-SCTE35` 広告マーカータグを base64 エンコードのバイナリで追加します。デコードされたバイナリで、プロバイダー配置機会を開始するキューアウトマーカー `0x34` と、プロバイダー配置機会を終了するキューインマーカー `0x35` を含む SCTE-35 `splice_info_section` を示す必要があります。

次の例は、キューアウトマーカーとキューインマーカーを指定する base64 エンコードのバイナリペイロードを含むスプライスポイントの仕様を示しています。

```
    #EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
    ...
    #EXT-X-SPLICEPOINT-SCTE35:/DA4AAAAAAAAAP/wBQb+tTeaawAiAiBDVUVJAAAKqH+/DBFNRFNOQjAwMTEzMjIxOTJfTjUAAIiGK1s=
```

# 広告マーカーパススルーの有効化
<a name="ad-marker-passthrough"></a>

HLS の場合、デフォルトで MediaTailor のパーソナライズされたマニフェストにオリジンマニフェストからの SCTE-35 広告マーカーが含まれません。広告マーカーのパススルーが有効になっていると、MediaTailor がオリジンマニフェストからの以下の広告マーカーをパーソナライズされたマニフェストにパススルーします。
+ EXT-X-CUE-IN
+ EXT-X-CUE-IN
+ EXT-X-SPLICEPOINT-SCTE35

 広告マーカーのパススルーはオプションの設定です。広告マーカーのパススルーは、MediaTailor のパーソナライズされたマニフェストに SCTE 広告マーカーを含めたい場合に使用します。一般的なユースケースには以下が含まれます。
+ コンテンツ置換 - コンテンツの置き換え、またはコンテンツの制限を実行します。
+ 広告追跡 - 1 つ、または複数の広告マーカーの存在または欠如に基づいて、広告追跡情報をトリガーします。
+ プレイヤー設定 - 広告マーカーの存在または欠如に基づいて、プレイヤーの UI でスクラブ機能またはカウントダウンタイマー機能を有効にします。

**注記**  
MediaTailor は、これらのマーカーの値を変更しません。例えば、オリジンマニフェストの `EXT-X-CUE-OUT` の値が `60` になっているのに広告が配置されていないという場合でも、MediaTailor はパーソナライズされたマニフェストの値を `0` に変更しません。

## 広告マーカーのパススルーを有効にする
<a name="enable-ad-marker-passthrough"></a>

広告マーカーのパススルーは、 AWS マネジメントコンソール または AWS Command Line Interface () を使用して有効にできますAWS CLI。

**コンソールを使用して広告マーカーのパススルーを有効にする**

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1.  **[New Configuration]** (新しい設定) または **[Edit Configuration]** (設定を編集) をクリックします。

1. **[Advanced Settings]** (アドバンスト設定) セクションで、ドロップダウンメニューから **[Enable]** (有効) を選択します。

**AWS Command Line Interface (AWS CLI) を使用して広告マーカーのパススルーを有効にするには**  
[put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html) コマンドを使用します。

# HLS マニフェストタグの処理
<a name="manifest-hls-tags"></a>

このセクションでは、 がパーソナライズされた出力マニフェストでタグ AWS Elemental MediaTailor を管理する方法について説明します。

## EXT-X-CUE タグ
<a name="manifest-hls-tags-cue"></a>

MediaTailor は、入力マニフェスト内の `EXT-X-CUE-OUT`、`EXT-X-CUE-OUT-CONT`、および `EXT-X-CUE-IN` タグを、出力マニフェスト内の `EXT-X-DISCONTINUITY` タグに置き換えます。`DISCONTINUITY` タグは次の境界をマークします。
+ メインコンテンツが広告に移行する場所
+ ある広告から別の広告に遷移する場所
+ 広告がメインコンテンツに戻る場所

## EXT-X-DATERANGEタグ
<a name="manifest-hls-tags-daterange"></a>

MediaTailor は、入力マニフェストからの `EXT-X-DATERANGE` タグを出力マニフェストにパススルーします。MediaTailor は、`DATERANGE` タグに対応する `EXT-X-DISCONTINUITY` タグも挿入します。`DISCONTINUITY` タグは次の境界をマークします。
+ メインコンテンツが広告に移行する場所
+ ある広告から別の広告に遷移する場所
+ 広告がメインコンテンツに戻る場所

## EXT-X-KEYタグ
<a name="manifest-hls-tags-key"></a>

MediaTailor は、入力マニフェストからの `EXT-X-KEY` タグをパススルーします。これらのタグは、メインコンテンツが暗号化されていることを示します。広告は暗号化されていないため、MediaTailor は ad avail の開始時点に `EXT-X-KEY:METHOD=NONE` を挿入します。再生がメインコンテンツに戻ると、MediaTailor は、暗号化タイプとして定義された `METHOD` 値と共に `EXT-X-KEY` タグを挿入して暗号化を再度有効にします。

## 認識されないタグ
<a name="manifest-hls-tags-unknown"></a>

MediaTailor は、入力マニフェストからのすべての不明なタグとカスタムタグを出力マニフェストにパススルーします。

# HLS マニフェストの例
<a name="manifest-hls-example"></a>

以下のセクションでは、HLS オリジンマニフェストとパーソナライズされたマニフェストの例を示します。これらの例を理解することは、MediaTailor ワークフローの設定とトラブルシューティングに役立ちます。

クエリパラメータを HLS マニフェストとセグメントに適用する方法については、「」を参照してください[MediaTailor HLS 暗黙的なセッションの初期化](manifest-query-parameters-hls-implicit-session-initialization.md)。

## HLS プレイリストタイプについて
<a name="hls-playlist-overview"></a>

HTTP Live Streaming (HLS) は、主に 2 種類のプレイリストを使用します。

マルチバリアントプレイリスト  
多変量プレイリストは、コンテンツの使用可能なすべてのレンディションを一覧表示する最上位インデックスファイルです。メディアプレイリストへの参照が含まれていますが、メディアセグメント自体は含まれません。このプレイリストにより、プレイヤーはネットワーク条件、デバイス機能、またはユーザー設定に基づいて最適なレンディションを選択できます。  
このプレイリストタイプは、マスタープレイリスト、マスターマニフェスト、プライマリプレイリスト、メインプレイリスト、インデックスファイル、マスター M3U8 など、さまざまなコンテキストの他のいくつかの名前でも知られています。  
MediaTailor ワークフローでは、多変量プレイリストは再生リクエストのエントリポイントであり、広告パーソナライゼーションが開始される場所です。

メディアプレイリスト  
メディアプレイリストには、コンテンツの特定のレンディション (品質レベル) の実際のメディアセグメント情報が含まれます。これには、1 つのレンディションの再生に必要なタイミング情報、セグメント URLs、およびその他のメタデータが含まれます。  
このプレイリストタイプは、メディアプレイリスト、子マニフェスト、チャンクリスト、メディア M3U8、レンディションプレイリストとも呼ばれます。  
MediaTailor ワークフローでは、メディアプレイリストは、コンテンツセグメントと広告セグメントの両方を適切なシーケンスに含めるようにパーソナライズされます。

HLS プレイリストタイプの詳細については、「」を参照してください[HLS プレイリストタイプ](hls-playlist-types.md)。

## HLS オリジンマニフェストの例
<a name="manifest-hls-ex-origin"></a>

次の例は、HLS が AWS Elemental MediaTailor コンテンツオリジンから受信した HLS マルチバリアントプレイリストを示しています。

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:BANDWIDTH=2665726,AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_1.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=3956044,AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_2.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=995315,AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,FRAME-RATE=29.970,CODECS="avc1.4D401E,mp4a.40.2",SUBTITLES="subtitles"
    index_3.m3u8
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="caption_1",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="eng",URI="index_4_0.m3u8"
```

この多変量プレイリストの例:
+ `#EXT-X-STREAM-INF` タグは、解像度とビットレートが異なるさまざまなレンディションを定義します。
+ 各レンディションはメディアプレイリストを参照します ( など`index_1.m3u8`)
+ `#EXT-X-MEDIA` タグは字幕トラックを定義します

次の例は、コンテンツオリジンから HLS が AWS Elemental MediaTailor 受信した HLS メディアプレイリストを示しています。この例では、`EXT-X-CUE-OUT` タグと `EXT-X-CUE-IN` タグを使用して、ad avail 機会を表しています。

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXTINF:6.006,
    index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    index_1_8779959.ts?m=1566416212
    #EXT-OATCLS-SCTE35:/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXT-X-CUE-OUT:20.020
    #EXTINF:0.634,
    index_1_8779960.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=0.634,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779961.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=6.640,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779962.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=12.646,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779963.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=18.652,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:1.368,
    index_1_8779964.ts?m=1566416212
    #EXT-X-CUE-IN
    #EXTINF:4.638,
    index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779968.ts?m=1566416212
```

このメディアプレイリストの例:
+ `#EXTINF` タグは各セグメントの期間を指定します
+ `#EXT-X-CUE-OUT` タグは広告時間枠の開始を示します
+ `#EXT-X-CUE-OUT-CONT` タグは、進行中の広告時間枠に関する情報を提供します。
+ `#EXT-X-CUE-IN` タグは広告時間枠の終了を示します

## HLS のパーソナライズされたマニフェストの例
<a name="manifest-hls-ex-personalized"></a>

次の例は、パーソナライズされた AWS Elemental MediaTailor HLS マルチバリアントプレイリストを示しています。

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/3.m3u8",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665726
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=3956044
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/1.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.4D401E,mp4a.40.2",AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=995315
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/2.m3u8
```

MediaTailor がメディアプレイリスト URLs を変更して、パーソナライズされた広告挿入を可能にするセッション固有の情報を含める方法に注目してください。

次の例は、パーソナライズされた AWS Elemental MediaTailor メディアプレイリストを示しています。

```
#EXTM3U
    #EXT-X-VERSION:6
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXT-X-DISCONTINUITY-SEQUENCE:0
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779959.ts?m=1566416212
    #EXT-X-DISCONTINUITY
    #EXTINF:3.066667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779960
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779961
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779962
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779963
    #EXTINF:2.966667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779964
    #EXT-X-DISCONTINUITY
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779963.ts?m=1566416212
    #EXTINF:1.368,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779964.ts?m=1566416212
    #EXTINF:4.638,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779968.ts?m=1566416212
```

このパーソナライズされたメディアプレイリストの例:
+ MediaTailor がコンテンツセグメント間に広告セグメントを挿入しました
+ `#EXT-X-DISCONTINUITY` タグはコンテンツと広告間の遷移をマークします
+ コンテンツセグメントはオリジンサーバーから提供されます (この例では MediaPackage)
+ 広告セグメントは MediaTailor の広告セグメントストレージから提供されます

## パーソナライズされたマニフェストの主な違い
<a name="manifest-hls-key-differences"></a>

MediaTailor が HLS マニフェストをパーソナライズすると、いくつかの重要な変更が行われます。

多変量プレイリストの変更  
+ バリアントプレイリスト URLsは、セッション情報を含む MediaTailor が管理する URLsられます。
+ タグの順序は、最適な再生のために再編成できます。

バリアントプレイリストの変更  
+ 広告マーカー (`EXT-X-CUE-OUT`、`EXT-X-CUE-IN`) は実際の広告セグメントに置き換えられます
+ コンテンツ/広告の境界に不連続マーカー (`EXT-X-DISCONTINUITY`) が追加される
+ コンテンツセグメント URLsがオリジンまたは CDN を指すように書き換えられる
+ MediaTailor URLs広告セグメントストレージを指すように広告セグメント URL が追加されます

これらの変更を理解することで、MediaTailor ワークフローの問題をトラブルシューティングし、CDN とプレイヤーを適切に設定することができます。

## 関連トピック
<a name="manifest-hls-related-topics"></a>

HLS マニフェストと MediaTailor の詳細については、以下のトピックを参照してください。
+ [HLS プレイリストタイプ](hls-playlist-types.md) - HLS プレイリストタイプの詳細な説明
+ [CDN を使用して MediaTailor の広告パーソナライゼーションとコンテンツ配信を最適化する](integrating-cdn.md) - MediaTailor での CDN の使用に関する情報
+ [MediaTailor 広告挿入の仕組み](what-is-flow.md) - MediaTailor 広告挿入の仕組みの概要

# MPEG-DASH ソースの統合
<a name="manifest-dash"></a>

AWS Elemental MediaTailor は、DASH 動的プロファイルのガイドラインに従った`.mpd`ライブおよびビデオオンデマンド (VOD) マニフェストをサポートしています。MediaTailor は、マルチピリオドおよびシングルピリオドの DASH 準拠のマニフェスト入力を受け入れ、マルチピリオドの DASH 準拠のマニフェスト出力を配信します。

入力マニフェストには次のものが必要です。
+ `splice insert ` または ` time signal` のスプライス情報設定を含む SCTE-35 イベントストリーム。設定は、平文の XML または base64 エンコードのバイナリで指定できます。
+ `segment timelines` を伴う `Segment templates`。

公開されたマニフェストの場合、MediaTailor はオリジンサーバーからの更新で以下を変更しないことを要求します。
+ `start` 属性で指定されたピリオド開始時間。
+ ピリオド表現のセグメントテンプレート内の `presentationTimeOffset` の値。

ベストプラクティスとして、広告表示にコンテンツストリーム期間と同じ `AdaptationSet`および `Representation`設定を与えます。 AWS Elemental MediaTailor は、これらの設定を使用してコンテンツストリームに合わせて広告をトランスコードし、両者をスムーズに切り替えます。

以下のセクションでは、MediaTailor が DASH マニフェストで広告を処理する方法について詳しく説明します。

**Topics**
+ [DASH 広告マーカー](dash-ad-markers.md)
+ [DASH の ad avail 継続時間](dash-ad-avail-duration.md)
+ [DASH マニフェストセグメントの番号付け](dash-manifest-segment-numbering.md)
+ [DASH MPD の例](manifest-dash-example.md)
+ [DASH のロケーション機能](dash-location-feature.md)

# DASH 広告マーカー
<a name="dash-ad-markers"></a>

MediaTailor 

AWS Elemental MediaTailor は SCTE-35 キューアウトマーカーを使用して、次のロジックを使用して DASH マニフェスト内の広告表示を識別します。
+ **複数期間 DASH**: MediaTailor は、 `SpliceInsert`または `TimeSignal`キューアウトマーカー`Period`を含む各 `Event` の最初の の広告を挿入します。MediaTailor は、 内の追加の`Event`マーカーを無視します`Period`。
+ **単一期間 DASH**: MediaTailor は、 `SpliceInsert`または`TimeSignal`キューアウトマーカーを含む広告`Period`をそれぞれ `Event` に挿入します。

デフォルトでは、 は DASH マニフェストを複数期間のマニフェストとして AWS Elemental MediaTailor 管理します。オリジンサーバーからシングルピリオド DASH マニフェストを処理するように設定を変更することができます。詳細については、「[MediaTailor 再生設定の作成](configurations-create.md)」を参照してください。

以下のセクションでは、DASH 広告マーカーの処理に関する詳細と、オリジンからのデコレーションされたマニフェストについて説明します。

## DASH オリジンマニフェスト XML 要件
<a name="dash-ad-markers-examples"></a>

MediaTailor が広告ブレークを識別するには、オリジンからの DASH マニフェストの広告マーカーが適切にフォーマットされている必要があります。以下のトピックでは、クリア XML でのこれらのフォーマット要件について説明します。

### `SpliceInsert` クリア XML で
<a name="dash-splice-xml"></a>

`SpliceInsert` クリア XML の広告マーカーには、以下が含まれている必要があります。
+ `EventStream` には次の属性が必要です。 `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event` は を保持する必要があります `scte35:SpliceInfoSection` 
+ `scte35:SpliceInfoSection` は を保持する必要があります `scte35:SpliceInsert` 
+ `scte35:SpliceInsert` には次の属性が必要です。 `outOfNetworkIndicator="true"`

**Example `SpliceInsert` XML での**  
次の例では、必要な SCTE マーカーは太字です。  

```
<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>
  .
  .
  .
</Period>
```

### `TimeSignal` クリア XML で
<a name="dash-signal-xml"></a>

`TimeSignal` クリア XML の広告マーカーには、以下が含まれている必要があります。
+ `EventStream` には次の属性が必要です。 `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event` は を保持する必要があります `scte35:SpliceInfoSection`
+ `scte35:SpliceInfoSection` は を保持する必要があります `scte35:TimeSignal`
+ `scte35:SpliceInfoSection` も保持する必要があります `scte35:SegmentationDescriptor`
+ `scte35:SegmentationDescriptor` には次の属性が必要です。この値は有効な です[キューアウト番号](#dash-signal-xml-values)。 `segmentationTypeId="xx"`
+ `scte35:SegmentationDescriptor` は を保持する必要があります `scte35:SegmentationUpid` 
<a name="dash-signal-xml-values"></a>
**キューアウト番号**  
以下は、 でサポートされているキューアウト番号です`segmentationTypeId`。


| セグメンテーションメッセージ | segmentationTypeId 値 | 16 進値 | 
| --- | --- | --- | 
| ディストリビューター広告の終了 | 51 | 0x51 | 
| ディストリビューターのアドバタイズ開始 | 50 | 0x32 | 
| ディストリビューター配置の機会の終了 | 55 | 0x37 | 
| ディストリビューター配置の機会の開始 | 54 | 0x36 | 
| 終了ブレーク | 35 | 0x23 | 
| プロバイダー広告の終了 | 49 | 0x31 | 
| プロバイダーアドバタイズ開始 | 48 | 0x30 | 
| プロバイダーオーバーレイ配置の機会の終了 | 57 | 0x39 | 
| プロバイダーオーバーレイ配置の機会の開始 | 56 | 0x38 | 
| プロバイダー配置オポチュニティの終了 | 53 | 0x35 | 
| プロバイダー配置の機会の開始 | 52 | 0x34 | 
| 開始時間枠 | 34 | 0x22 | 

**Example `TimeSignal` XML での**  
次の例では、必要な SCTE マーカーは太字です。  

```
<Period start="PT346530.250S" id="178443" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
         </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1414668" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
            <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
            <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

## DASH オリジンマニフェスト base64 でエンコードされたバイナリ要件
<a name="dash-base64"></a>

MediaTailor が広告ブレークを識別するには、オリジンからの DASH マニフェストの広告マーカーが適切にフォーマットされている必要があります。以下のトピックでは、base64 でエンコードされたバイナリにおけるこれらのフォーマット要件について説明します。

base64 でエンコードされたマニフェストの `TimeSignal`と の両方の`SpliceInsert`広告マーカーには、以下が含まれている必要があります。
+ `EventStream` には次の属性が必要です。 `urn:scte:scte35:2014:xml+bin`
+ `Event` は を保持する必要があります `scte35:Signal`
+ `scte35:Signal` は、base64 でエンコードされたバイナリ`scte35:Binary`を含む を保持する必要があります。

デコードされたバイナリ`splice_info_section`は、クリア XML 広告マーカーに必要な情報と同じ情報を に提供する必要があります。
+ コマンドタイプは、 `splice_insert()`または のいずれかである必要があります。 `time_signal()`
+ 追加設定は、[`TimeSignal` クリア XML で](#dash-signal-xml)「」および「」で説明されている設定に準拠している必要があります[`SpliceInsert` クリア XML で](#dash-splice-xml)。

 デコードされたバイナリで、平文の XML が `scte35:SpliceInfoSection` 要素で提供する情報と同じ一連の情報を含む `splice_info_section` を指定する必要があります。コマンドタイプは `splice_insert()` または `time_signal()` で、平文 XML 配信のために、追加設定は前述の内容に準拠している必要があります。

このオプションの例を以下に示します。必要なマーカーは太字で表示されています。

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
    <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
      <Event presentationTime="1541436240" duration="24" id="29">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</scte35:Binary>
        </scte35:Signal>
      </Event>
      <Event presentationTime="1541436360" duration="24" id="30">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</scte35:Binary>
        </scte35:Signal>
      </Event>
  .
  .
  .
</Period>
```

以下は、前の例に表示されている最初のイベントのデコードされたバイナリです。`splice_command_type` の設定は 5 です。これは、`splice_insert` を表します。

```
{
        "table_id": 252,
        "section_syntax_indicator": false,
        "private_indicator": false,
        "section_length": 33,
        "protocol_version": 0,
        "encrypted_packet": false,
        "encryption_algorithm": 0,
        "pts_adjustment": 0,
        "cw_index": 0,
        "tier": "0xFFF",
        "splice_command_length": 16,
        "splice_command_type": 5,
        "splice_command": {
          "splice_event_id": 448,
          "splice_event_cancel_indicator": false,
          "out_of_network_indicator": true,
          "program_splice_flag": true,
          "duration_flag": true,
          "splice_immediate_flag": false,
          "utc_splice_time": {
            "time_specified_flag": false,
            "pts_time": null
          },
          "component_count": 0,
          "components": null,
          "break_duration": {
            "auto_return": false,
            "duration": {
              "pts_time": 2160000,
              "wall_clock_seconds": 24.0,
              "wall_clock_time": "00:00:24:00000"
            }
          },
          "unique_program_id": 49152,
          "avail_num": 0,
          "avails_expected": 0
        },
        "splice_descriptor_loop_length": 0,
        "splice_descriptors": null,
        "Scte35Exception": {
          "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
          "error_messages": [],
          "table_id": 252,
          "splice_command_type": 5
        }
      }
```

# DASH の ad avail 継続時間
<a name="dash-ad-avail-duration"></a>

再生中、 が広告表示 AWS Elemental MediaTailor を検出すると、その表示の一部またはすべてが広告に置き換えられます。MediaTailor は、ad avail の開始時点で広告置換を開始し、広告を以下のように含めます。
+ ad avail が継続時間を指定する場合、MediaTailor は、後続のコンテンツを上書きすることなく、継続時間範囲内に収まる数の広告を含めます。
+ 継続時間が指定されていない場合、MediaTailor は ad avail の終了時点に到達するまで広告を含めます。マルチピリオドマニフェストの場合は、これがピリオドの終了時点です。シングルピリオドマニフェストの場合は、これがイベントの終了時点です。MediaTailor は、ad avail の終了時点を超えて広告を再生しません。Mediatailor が終了時点に到達すると、後続のコンテンツを上書きするのではなく、現行の広告をカットします。

**が広告表示期間 AWS Elemental MediaTailor を検索する方法**  
AWS Elemental MediaTailor は、次の順序で期間設定を検索します。

1. `Event` `duration`

1. スプライス挿入の場合は、`scte35:BreakDuration` `duration`

1. タイムシグナルの場合は `scte35:SegmentationDescriptor` `segmentationDuration`

 AWS Elemental MediaTailor でこれらの設定が見つからない場合は、期間なしで広告インクルードを管理します。

以下は、`Event` が含まれる `duration` の例です。

```
  <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>
              ...
```

以下の例は、継続時間が指定されていない ad avail を示します。この `Event` には `duration` が指定されておらず、`scte35:SpliceInsert` 要素に `scte35:BreakDuration` 子要素は含まれません。

```
  <Period start="PT444836.720S" id="123597" duration="PT12.280S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event>
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531856" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5675385600"/></scte35:Program>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
            ...
```

# DASH マニフェストセグメントの番号付け
<a name="dash-manifest-segment-numbering"></a>

MediaTailor は、`<SegmentTimeline>` および `media` 属性を使用して定義された `<SegmentTemplate>` 内のメディアセグメントをサポートします。`media` 属性のメディアセグメントリストを指定するには、`$Number$` 識別子または `$Time$` 識別子を使用します。

 以下は、`SegmentTemplate` 識別子を使用する `media` 属性設定の `$Number$` の例です。

```
        <SegmentTemplate initialization="index_subtitles_4_0_init.mp4?m=1532451703" media="index_subtitles_4_0_$Number$.mp4?m=1532451703" presentationTimeOffset="1062336677920" startNumber="2349899" timescale="90000">
                <SegmentTimeline>
                  <S d="540540" r="2" t="1062338840080"/>
                  <S d="69069" t="1062340461700"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

 以下は、`SegmentTemplate` 識別子を使用する `media` 属性設定の `$Time$` の例です。

```
        <SegmentTemplate initialization="asset_720p_8000K_9_init.mp4" media="asset_720p_8000K_9_$Time$.mp4" startNumber="1" timescale="90000">
                <SegmentTimeline>
                  <S d="180000" r="2" t="0"/>
                  <S d="147000" t="540000"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

# DASH MPD の例
<a name="manifest-dash-example"></a>

以下のセクションでは、DASH オリジン MPDs とパーソナライズMPDs の例を示します。これらの例を理解することは、MediaTailor ワークフローの設定とトラブルシューティングに役立ちます。

クエリパラメータを DASH マニフェストとセグメントに適用する方法については、「」を参照してください[MediaTailor DASH 暗黙的なセッションの初期化](manifest-query-parameters-dash-implicit-session-initialization.md)。

## DASH MPD 構造について
<a name="dash-mpd-overview"></a>

Dynamic Adaptive Streaming over HTTP (DASH) は、メディアプレゼンテーション説明 (MPD) マニフェストを使用してストリーミングコンテンツを配信します。MPD は、メディアコンテンツの構造と可用性を説明する XML ドキュメントです。

MPD (メディアプレゼンテーションの説明)  
MPD は、メディアコンテンツの構造と可用性を説明する DASH ストリーミングのプライマリマニフェストファイルです。ストリーミングコンテンツを構成する期間、適応セット、表現、セグメントに関する情報が含まれています。  
このマニフェストタイプは、DASH マニフェスト、DASH MPD、マスターマニフェスト (HLS と比較した場合）、プレゼンテーションマニフェストなど、さまざまなコンテキストの他のいくつかの名前でも知られています。  
MediaTailor ワークフローでは、MPD は再生リクエストのエントリポイントであり、広告パーソナライゼーションが開始される場所です。

Period  
Period は、DASH プレゼンテーションの一時的なセクションです。各期間には 1 つ以上の適応セットが含まれ、メディア時間の範囲を表します。広告挿入ワークフローでは、通常、個別の期間を使用してコンテンツと広告を区別します。  
MediaTailor ワークフローでは、期間を使用してメインコンテンツを広告コンテンツから分離し、各広告は通常独自の期間で表されます。

AdaptationSet  
AdaptationSet は、1 つまたは複数のメディアコンテンツコンポーネントの交換可能なエンコードされたバージョンのセットをグループ化します。たとえば、1 つの AdaptationSet には複数のビデオ品質レベルが含まれ、もう 1 つの AdaptationSet には複数のオーディオ言語オプションが含まれる場合があります。  
MediaTailor ワークフローでは、コンテンツと広告の間で一貫したメディアタイプを維持するために、広告挿入中に AdaptationSets が保持されます。

表記  
表現は、AdaptationSet 内のメディアコンテンツの特定のエンコードされたバージョンです。各表現は通常、ビットレート、解像度、またはその他のエンコーディングパラメータが異なるため、クライアントはネットワーク条件とデバイス機能に基づいて最適なバージョンを選択できます。  
MediaTailor ワークフローでは、広告期間の表現は、コンテンツ期間の表現と可能な限り一致させて、スムーズな視聴体験を実現します。

DASH マニフェストタイプの詳細については、「」を参照してください[DASH マニフェストタイプ](dash-manifest-types.md)。

での DASH マニフェストの構造と設定の詳細については AWS Elemental MediaPackage、DASH の概要に関する MediaPackage ユーザーガイドセクションを参照してください。

## Live DASH MPD の例
<a name="dash-manifest-live-examples"></a>

このセクションでは、ライブ DASH MPDs。各例では、オリジンサーバーから受信した MPD と、MediaTailor が広告で MPD をパーソナライズした後の MPD を一覧表示します。

### DASH MPD スプライス挿入の例
<a name="dash-manifest-splice-insert-example"></a>

**スプライス挿入の DASH オリジン MPD の例**  
MPD の次の例は、コンテンツオリジンから DASH が受信したマニフェストの広告表示を示しています。この例では、 `SpliceInsert`マーカーを使用して広告表示を示します。

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="9450000"/>
        </scte35:SpliceInsert>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001">
        <SegmentTimeline>
          <S t="16633452289" d="96256" r="3"/>
          <S t="16633837313" d="95232"/>
          <S t="16633932545" d="96256" r="4"/>
          <S t="16634413825" d="95232"/>
          <S t="16634509057" d="96256" r="5"/>
          <S t="16635086593" d="95232"/>
          <S t="16635181825" d="96256" r="4"/>
          <S t="16635663105" d="95232"/>
          <S t="16635758337" d="96256" r="5"/>
          <S t="16636335873" d="71680"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

このオリジン MPD の例:
+ `<EventStream>` 要素には、広告表示を示す SCTE-35 マーカーが含まれています
+ `<scte35:SpliceInsert>` 要素は、広告表示の詳細を提供します。
+ `<scte35:BreakDuration>` 要素は、広告時間枠の期間を指定します。
+ `<AdaptationSet>` 要素は、使用可能なビデオストリームとオーディオストリームを定義します。

**スプライス挿入の DASH パーソナライズされた MPD の例**  
AWS Elemental MediaTailor は、広告仕様を使用して広告表示をパーソナライズします。パーソナライズには、プレーヤーから受信した視聴者データと現在進行中の広告キャンペーンが反映されます。

次の例は、 が AWS Elemental MediaTailor パーソナライズした後の広告表示を示しています。

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
    <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280">
      <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

このパーソナライズされた MPD の例:
+ MediaTailor が広告コンテンツの新しい期間を作成しました
+ `<BaseURL>` 要素は広告コンテンツの場所を指します
+ `<AdaptationSet>` 要素はコンテンツと同様の構造を維持します。
+ `<Representation>` 要素は、広告コンテンツにさまざまな品質レベルを提供します。

### DASH MPD タイムシグナルの例
<a name="dash-manifest-time-signal-example"></a>

**時間信号の DASH オリジン MPD の例**  
MPD の次の例は、コンテンツオリジンから DASH が受信したマニフェストの広告表示を示しています。この例では、 `TimeSignal`マーカーを使用して広告表示を示します。

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="7835775000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

このオリジン MPD の例:
+ `<scte35:TimeSignal>` 要素が の代わりに使用される `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>` は、広告表示に関する追加情報を提供します。

**タイムシグナルの DASH パーソナライズされた MPD の例**  
AWS Elemental MediaTailor は、広告仕様を使用して広告表示をパーソナライズします。パーソナライズには、プレーヤーから受信した視聴者データと現在進行中の広告キャンペーンが反映されます。

次の例は、 が AWS Elemental MediaTailor パーソナライズした後の広告表示を示しています。

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

時間信号のパーソナライズされた MPD は、スプライス挿入の MPD と似ており、MediaTailor は広告コンテンツの新しい期間を作成します。

## VOD DASH MPD の例
<a name="dash-manifest-vod-examples"></a>

このセクションでは、ビデオオンデマンド (VOD) DASH MPDs。各例では、オリジンサーバーから受信した MPD と、MediaTailor が広告で MPD をパーソナライズした後の MPD を一覧表示します。

VOD DASH MPDsライブ MPDs と同じ構造に従いますが、通常は MPD 要素に `type="static"` 属性があり、異なるコンテンツセグメントに複数の期間が含まれる場合があります。

VOD DASH MPDs の例については、 の MediaTailor ドキュメントを参照してください[DASH 広告マーカー](dash-ad-markers.md)。

## パーソナライズMPDs の主な違い
<a name="dash-manifest-key-differences"></a>

MediaTailor が DASH MPDs をパーソナライズすると、いくつかの重要な変更が行われます。

期間処理  
+ 広告コンテンツ用に新しい期間が作成されます
+ タイムラインの継続性を維持するために、期間の開始時刻が調整されます
+ SCTE-35 マーカーを持つ EventStream 要素が処理および削除されます

AdaptationSet と表現の処理  
+ 広告期間の AdaptationSets は、コンテンツ AdaptationSets と一致するように作成されます。
+ 広告コンテンツのさまざまな品質レベルに対して表現が作成されます。
+ SegmentTemplate 要素は、広告コンテンツを指すように更新されます

これらの変更を理解することは、MediaTailor ワークフローの問題をトラブルシューティングし、CDN とプレイヤーの適切な設定を確保するのに役立ちます。

## 関連トピック
<a name="dash-manifest-related-topics"></a>

DASH MPDs と MediaTailor の詳細については、以下のトピックを参照してください。
+ [DASH マニフェストタイプ](dash-manifest-types.md) - DASH マニフェストタイプの詳細な説明
+ [CDN を使用して MediaTailor の広告パーソナライゼーションとコンテンツ配信を最適化する](integrating-cdn.md) - MediaTailor での CDN の使用に関する情報
+ [MediaTailor 広告挿入の仕組み](what-is-flow.md) - MediaTailor 広告挿入の仕組みの概要
+ DASH マニフェスト構造と MediaPackage 設定に関する包括的な情報については、DASH 概要の MediaPackage ユーザーガイドセクションを参照してください。

# DASH のロケーション機能
<a name="dash-location-feature"></a>

このセクションでは、DASH のロケーション機能に関する情報を提供します。この機能は AWS Elemental MediaTailorでデフォルトで有効になっています。MediaTailor マニフェストにアクセスするためのコンテンツ配信ネットワーク (CDN) ルーティングルールを作成する場合は、このセクションをお読みください。スティッキー HTTP リダイレクトをサポートしていないプレイヤーでサーバー側のレポートを使用する場合も、このセクションをお読みください。

**ロケーション機能とは**  
ロケーション機能を使用すると、スティッキー HTTP リダイレクトをサポートしていないプレイヤーでも、マニフェスト更新リクエストでスティッキー動作が可能になります。

AWS Elemental MediaTailor はセッションレス初期化を使用し、プレイヤーからのスティッキー HTTP リダイレクト動作が必要です。サーバー側のレポートでは、プレイヤーが MediaTailor に対してマニフェスト更新のリクエストを行うと、サービスが一時的な 302 リダイレクトを発行して、プレイヤーをパーソナライズされたマニフェスト用のエンドポイントに誘導します。MediaTailor は、セッション ID をクエリパラメータとしてレスポンスに含めます。この目的は、セッション全体でプレイヤーにこの URL を使用させることですが、スティッキー HTTP リダイレクトをサポートしていないプレイヤーはリダイレクトをドロップして元の URL に戻ります。プレイヤーが元の URL に戻ると、MediaTailor は元のセッションを維持するのではなく、新しいリクエストごとに新しいセッションを作成します。これは、マニフェストが破損する原因になる場合があります。

DASH 仕様は、 AWS Elemental MediaTailor 設定でデフォルトで有効になっているロケーション機能でこの問題の解決策を提供します。この機能が有効になっていると、MediaTailor がマニフェストの `<Location>` タグに絶対 URL を追加します。スティッキー HTTP リダイレクトをサポートしていないプレイヤーは、`<Location>` で指定されている URL を使用してマニフェストの更新をリクエストできます。

**設定でロケーション機能を無効にする必要がありますか?**  
ロケーション機能は、 AWS Elemental MediaTailor マニフェストへのアクセス用に設定した CDN ルーティングルールを上書きするため、無効にすることが必要になる場合があります。ロケーション機能はコンテンツまたは広告セグメントの CDN キャッシュに影響しません。

以下のリストから該当する状況を見つけて、設定でロケーション機能を無効にする必要があるかどうか、その機能をどのように扱うかを判断します。
+  AWS Elemental MediaTailor マニフェストにアクセスするための CDN ルーティングルールが設定されていない場合は、ロケーション設定を有効のままにします。
+ それ以外の場合は、以下のルールを使用します。
  + サーバー側のレポートを使用しない場合、またはすべてのプレイヤーがスティッキー HTTP リダイレクトをサポートしている場合は、ロケーション機能を無効にします。コンソールでこの操作を行う方法については、「[MediaTailor 再生設定の作成](configurations-create.md)」を参照してください。
  + それ以外については、[AWS Support](https://aws.amazon.com/premiumsupport/) までお問い合わせください。

**ロケーション機能を使用する必要がありますか?**  
スティッキー HTTP リダイレクトをサポートしていないプレイヤーには、 ロケーション機能を使用する必要があります。`<Location>` タグに指定されている URL をすべてのマニフェスト更新リクエストに使用します。

**例**  
URL と `<Location>` タグの例:
+   
**Example 例: 初期リクエスト URL**  

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd
  ```
+   
**Example 例: リダイレクト 302 レスポンス**  

  ```
  /v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6
  ```
+   
**Example 例: マニフェストのロケーションタグ**  

  ```
  <Location>https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6</Location>
  ```

# SigV4 との AWS Elemental MediaTailor オリジンインタラクションの保護
<a name="origin-sigv4"></a>

署名バージョン 4 (SigV4) は、HTTPS 経由でサポートされているオリジンへの MediaTailor リクエストを認証するために使用される署名プロトコルです。MediaTailor は HTTPS 通信のみをサポートし、HTTP 接続は許可しません。SigV4 署名では、MediaTailor は MediaTailor Channel Assembly、Amazon S3、および AWS Elemental MediaPackage バージョン 2 への HTTPS オリジンリクエストに署名付き認可ヘッダーを含めます。

オリジンで SigV4 を使用して、マニフェストリクエストが MediaTailor から送信され、署名付き認可ヘッダーが含まれている場合にのみ満たされるようにできます。これにより、不正な MediaTailor 再生設定がオリジンコンテンツにアクセスできなくなります。署名付きの認可ヘッダーが有効である場合は、オリジンがリクエストに対応します。有効でない場合は、リクエストが失敗します。

以下のセクションでは、サポートされているオリジンに MediaTailor SigV4 署名を使用するための要件について説明します。

## MediaTailor チャネルアセンブリの要件
<a name="origin-sigv4-ca"></a>

SigV4 を使用して MediaTailor Channel Assembly オリジンを保護する場合、MediaTailor がマニフェストにアクセスするには、次の要件を満たす必要があります。
+ MediaTailor 設定のオリジンベース URL は、次の形式のチャネルアセンブリチャネルである必要があります。 `channel-assembly.mediatailor.region.amazonaws.com`
+ オリジンは HTTPS を使用するように設定する必要があります。MediaTailor は HTTPS 通信のみをサポートし、HTTP 接続は許可しません。オリジンで HTTPS が有効になっていない場合、MediaTailor はリクエストに署名しません。
+ チャネルには、以下を含むオリジンアクセスポリシーが必要です。
  + MediaTailor がチャネルにアクセスするためのプリンシパルアクセス。**mediatailor.amazonaws.com** へのアクセスを許可します。
  + MediaTailor 設定で参照されるすべての多変量プレイリストを読み取るための IAM アクセス許可 **mediatailor:GetManifest**。

  チャネルでポリシーを設定する方法については、「」を参照してください[MediaTailor コンソールを使用してチャネルを作成する](channel-assembly-creating-channels.md)。

**Example MediaTailor 設定アカウントを対象とする Channel Assembly のオリジンアクセスポリシー**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "777788889999"}
    }
}
```

**Example MediaTailor 再生設定を対象とする Channel Assembly のオリジンアクセスポリシー**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:777788889999:playbackConfiguration/test"}
    }
}
```

## Amazon S3 の要件
<a name="origin-sigv4-s3"></a>

SigV4 を使用して Amazon S3 オリジンを保護する場合、MediaTailor がマニフェストにアクセスするには、次の要件を満たす必要があります。
+ MediaTailor 設定のオリジンベース URL は、次の形式の S3 バケットである必要があります。 `s3.region.amazonaws.com`
+ オリジンは HTTPS を使用するように設定する必要があります。MediaTailor は HTTPS 通信のみをサポートし、HTTP 接続は許可しません。オリジンで HTTPS が有効になっていない場合、MediaTailor はリクエストに署名しません。
+ チャネルには、以下を含むオリジンアクセスポリシーが必要です。
  + MediaTailor がバケットにアクセスするためのプリンシパルアクセス。**mediatailor.amazonaws.com へのアクセスを許可します。**

    IAM でアクセスを設定する方法については、AWS Identity and [Access Management](https://docs.aws.amazon.com/) ユーザーガイドの「アクセス管理」を参照してください。 *AWS Identity and Access Management * 
  + MediaTailor 設定で参照されるすべての最上位マニフェストを読み取るための IAM アクセス許可 **s3:GetObject**。

 Amazon S3 向けの SigV4 に関する一般的な情報については、*Amazon S3 API リファレンス*の「[リクエストの認証 (AWS 署名バージョン 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) トピック」を参照してください。

**Example MediaTailor アカウントを対象とする Amazon S3 のオリジンアクセスポリシー**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "111122223333"}
    }
}
```

**Example MediaTailor 再生設定を対象とする Amazon S3 のオリジンアクセスポリシー**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:111122223333:playbackConfiguration/test”}
    }
}
```

## MediaPackage の要件
<a name="origin-sigv4-mp"></a>

SigV4 を使用して MediaPackage v2 オリジンを保護する場合、MediaTailor がマニフェストにアクセスするには、次の要件を満たす必要があります。
+ MediaTailor 設定のオリジンベース URL は、次の形式の MediaPackage v2 エンドポイントである必要があります。 `mediapackagev2.region.amazonaws.com`
+ オリジンは HTTPS を使用するように設定する必要があります。MediaTailor は HTTPS 通信のみをサポートし、HTTP 接続は許可しません。オリジンで HTTPS が有効になっていない場合、MediaTailor はリクエストに署名しません。
+ チャネルには、以下を含むオリジンアクセスポリシーが必要です。
  + MediaTailor がエンドポイントにアクセスするためのプリンシパルアクセス。**mediatailor.amazonaws.com へのアクセスを許可します。**
  + MediaTailor 設定で参照されるすべての多変量プレイリストを読み取るための IAM アクセス許可 **mediapackagev2:GetObject**。

 MediaPackage v2 用 SigV4 の一般的な情報については、*MediaPackage v2 API リファレンス*の[「リクエストの認証 (AWS 署名バージョン 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)」トピックを参照してください。

**Example MediaTailor アカウントを対象とする MediaPackage v2 のオリジンアクセスポリシー**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "444455556666"}
    }
}
```

**Example MediaTailor 再生設定を対象とする MediaPackage v2 のオリジンアクセスポリシー MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:444455556666:playbackConfiguration/test”"}
    }
}
```

# Google 広告マネージャー AWS Elemental MediaTailor との統合
<a name="gam-integration"></a>

MediaTailor を [Google 広告マネージャー](https://admanager.google.com/home/) (Ad Manager) と統合すると、広告インプレッションをリアルタイムで購入および販売できるオンラインの入札主導型マーケットプレイスにプログラムでアクセスできます。Ad Manager でアカウントを設定する必要があります。次に、次の方法で Ad Manager と統合できます。
+ SSL 証明書を使用したサーバー側の統合。
+ プログラムアクセスライブラリ (PAL) SDK を使用したクライアント側のプレイヤー統合。この統合は、オープン入札トランザクションタイプを使用する場合に必要です。

プログラムによるトランザクションタイプの Ad Manager のサポートは、使用している統合のタイプによって異なります。使用可能なオプションのリストについては、[「トランザクションタイプ](https://support.google.com/admanager/answer/2805834?hl=en)」を参照するか、Google アカウントチームにお問い合わせください。

以下のセクションでは、これらの統合について詳しく説明します。

**Topics**
+ [サーバー側の統合](gam-integration-ssl.md)
+ [クライアント側の統合](gam-integration-pal.md)

# Google 広告マネージャーとのサーバー側の AWS Elemental MediaTailor 統合
<a name="gam-integration-ssl"></a>

Google 広告マネージャー (Ad Manager) へのサーバー側の広告リクエストには、プログラムによるトランザクションを承認するために、広告マネージャーが MediaTailor に発行した SSL 証明書を含める必要があります。

**Ad Manager にサーバー側の広告リクエストを行うには**

1. [サポートチケットを送信 AWS](https://console.aws.amazon.com/support/home#/)して、SSL 証明書の有効化をリクエストします。サポートチケットに次の情報を含めます。
   + AWS リージョン
   + AWS アカウント ID
   + MediaTailor 再生設定名

   SSL 証明書を有効にしない場合、Ad Manager は ADS インタラクションログイベントタイプの HTTP 401 エラーコードで MediaTailor `ERROR_ADS_INVALID_RESPONSE` 広告リクエストに応答します。

1. SSL 証明書を有効にしたら、ADS の URL とパラメータを更新し、再生設定で ADS をプリロールします。再生設定を更新または作成するには、「」を参照してください[MediaTailor 再生設定の管理](working-with-configurations.md)。

   Ad Manager の VAST 広告リクエスト URL パラメータに関する公式ガイダンスについては、Ad Manager [サーバー側の実装ガイドを参照してください。](https://support.google.com/admanager/answer/10668760)更新には、次の変更が含まれます。
   + 基本 URL を から `pubads.g.doubleclick.net`に変更します`serverside.doubleclick.net`。
   + `ssss=mediatailor` パラメーターを追加します。これは、MediaTailor がサーバー側のステッチングソースであることを示します。
   + `IP` パラメータを削除します。MediaTailor は、 `X-Forwarded-For`ヘッダーを使用してエンドユーザー IP アドレスを自動的に渡します。
   + `ss_req=1` パラメータを削除します。

   更新および完全な VAST URL ガイダンスについては、[サーバー側の実装ガイド](https://support.google.com/admanager/answer/10668760)を参照するか、Google アカウントチームにお問い合わせください。

# Google 広告マネージャーとのクライアント側の AWS Elemental MediaTailor 統合
<a name="gam-integration-pal"></a>

Google 広告マネージャープログラムアクセスライブラリ (PAL) SDKs を使用するには、MediaTailor クライアント側の統合が必要です。この統合は、Ad Manager のオープン入札トランザクションタイプを使用する場合に必要です。

PAL SDKs は、再生セッションのコンテンツ、デバイス、ユーザーデータに関する情報を提供します。PAL SDK を通じて、この情報を Google 広告マネージャーに提供できます。これにより、表示するターゲット広告をより的確に判断できます。SDKsは、Android、iOS、HTML5、および Cast で使用できます。PAL SDKs[「Google 広告マネージャー PAL SDK](https://developers.google.com/ad-manager/pal)」を参照してください。

**Ad Manager とのクライアント側の統合を作成するには**

1. PAL SDK を使用してノンスを生成します。

   nonce は、PAL がストリームリクエスト用に生成する暗号化された文字列です。各リクエストには一意の nonce が必要です。ノンスの設定については、[Google Ad Manager PAL SDK から SDK](https://developers.google.com/ad-manager/pal) を選択します。

1. ADS リクエストで `givn`パラメータを使用して、nonce 値を渡します。これを行うには、ADS URL を更新して を含めます`&givn=[player_params.givn]`。手順については、「[クライアント側の追跡の有効化](ad-reporting-client-side.md#ad-reporting-client-side-enabling)」を参照してください。

**Datazoom SDKs**  
MediaTailor は Datazoom と提携し、Ad Manager PAL で提供されているような SDKs との統合を容易にする無料プレイヤー SDKs を提供しています。Datazoom と MediaTailor のパートナーシップの詳細については、「」を参照してください[Datazoom フリープレイヤー SDKs](ad-reporting-client-side-ad-tracking-integrations.md#ad-reporting-client-side-ad-tracking-integrations-dz)。

Datazoom プレイヤー SDKs にアクセスするには、[Datazoom with AWS](https://www.datazoom.io/partner-aws) サイトの連絡先情報を使用します。

# 広告ブレーク抑制による広告ブレーク動作のカスタマイズ
<a name="ad-rules"></a>

で設定を作成するときに AWS Elemental MediaTailor、広告ブレークの抑制を設定する機能など、広告ブレークの動作を管理するオプションの広告ブレーク設定を指定できます。これにより、特定の要件を満たすように動画コンテンツの広告ブレークエクスペリエンスを調整できます。

**互換性の制限**  
以下では広告ブレーク抑制を使用できません。
+  VOD および live-to-VOD ワークフロー。ライブワークフローのみがサポートされています。
+ サーバーガイド広告挿入 (SGAI) メソッド。サーバーガイド方式は広告決定を異なる方法で処理し、抑制設定を必要としません。

**Topics**
+ [広告ブレーク抑制の設定](#ad-suppression)

## 広告ブレーク抑制の設定
<a name="ad-suppression"></a>

ライブコンテンツ用の広告ブレークのパーソナライゼーションをスキップするように MediaTailor を設定できます。これは、*広告ブレーク抑制*、または*表示抑制*と呼ばれます。このトピックでは、 の使用方法と、広告時間枠抑制の設定の仕組みについても説明します。

広告ブレーク抑制は、次のユースケースに使用できます。
+ **長いマニフェストルックバックウィンドウ** - 視聴者がマニフェストのライブエッジで再生を開始するが、ルックバックウィンドウが長いという場合は、視聴者による視聴の開始後のみに広告を挿入することが推奨されます。または、マニフェストのルックバックウィンドウ全体の一部に広告を挿入します。広告抑制は、MediaTailor がライブエッジより前の指定時間、または指定時間範囲内の広告ブレークをパーソナライズするように設定できます。
+ **ブレーク中の参加** – 視聴者が広告ブレークの途中でライブビデオストリームの視聴を開始した場合、そのユーザーはチャネルを変更して広告を視聴しない可能性が高くなります。広告抑制を使用すると、視聴者がストリームに参加する前に広告時間枠が開始された場合に、広告時間枠のパーソナライズをスキップできます。

### 広告抑制の設定
<a name="working-with-ad-suppression"></a>

広告抑制を使用するには、次の方法で **avail 抑制モード**、**avail 抑制値**、**avail 抑制フィルポリシー**を設定します。
+ MediaTailor コンソールで
+  AWS Command Line Interface (AWS CLI) の使用
+ MediaTailor API を使用するか、クライアントの再生セッションリクエストのパラメータとして使用する

パラメータを使用した設定の詳細については、「」を参照してください[広告抑制パラメータの設定 – 再生セッションリクエスト](#configuring-ad-suppression-parameters-playback-session-request)。

#### 広告抑制設定パラメータ
<a name="ad-suppression-configuration-parameters"></a>

広告抑制のオンとオフを選択できます。広告抑制を有効にする場合は、その抑制がライブ再生エッジの後か、ライブストリームのライブ再生エッジの前かを指定します。いずれの場合も、MediaTailor が広告をパーソナライズしないライブエッジを基準にした時間も指定します。表示抑制を有効にすると、セッションが中断の途中で開始したときに MediaTailor が部分的な広告ブレークフィルに使用する表示抑制ポリシーを指定できます。

広告抑制の設定パラメータは次のとおりです。
+ **[Avail suppression mode]** (Avail 抑制モード) – 広告抑制モードを設定します。広告抑制は、デフォルトで無効になっています。**使用できる値**: `OFF`、`BEHIND_LIVE_EDGE`、または `AFTER_LIVE_EDGE`。
  + `OFF`: 広告抑制はなく、MediaTailor はすべての広告ブレークをパーソナライズします。
  + `BEHIND_LIVE_EDGE`: MediaTailor は、ライブエッジより前に開始する広告ブレークを、**Avail 抑制値を**引いてパーソナライズしません。これは、個々の広告表示だけでなく、広告時間枠全体に影響します。
  + `AFTER_LIVE_EDGE`: MediaTailor は、ライブエッジ内の広告ブレークに **Avail 抑制値**を加えたパーソナライズを行いません。これは、広告時間枠全体に影響を与えるか、広告表示の部分的なフィルを許可するように設定できます。
+ **Avail suppression value** (Avail 抑制値) – ライブストリーム内のライブエッジに相対する時間。**使用できる値**: `HH:MM:SS` 形式の時間値。
+ **Avail suppression fill policy** – MediaTailor が **Avail suppression モード**に適用するポリシー を定義します。**許容値**: `PARTIAL_AVAIL`、`FULL_AVAIL_ONLY`。
  + `BEHIND_LIVE_EDGE` モードは常に`FULL_AVAIL_ONLY`抑制ポリシーを使用します。
  + `AFTER_LIVE_EDGE` モードを使用すると、セッションがブレークの途中で開始したときに`PARTIAL_AVAIL`広告ブレークフィルを呼び出すことができます。

#### 広告抑制設定の例
<a name="ad-suppression-settings-examples"></a>

[広告抑制設定パラメータ](#ad-suppression-configuration-parameters)が相互にやり取りする方法により、ライブストリームのライブエッジの前、とき、または後に広告抑制と表示フィルを処理するいくつかの異なる方法を指定できます。このセクションでは、これらのやり取りの一部を示す例を示します。これらの例を使用して、特定の状況の設定パラメータを設定します。

以下は、広告抑制設定の例です。

**Example 1: 広告抑制なし**  
**表示抑制モード**が の場合`OFF`、広告抑制はなく、MediaTailor はすべての広告ブレークをパーソナライズします。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームまたはパーソナライズされた広告ブレークのコンテンツが再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。ライブエッジの前に 2 つの広告ブレークが発生し、ライブエッジで別の広告ブレークが進行中です。図に示すように、表示抑制モードが の場合`OFF`、MediaTailor はタイムラインのライブエッジの前に発生するすべての広告ブレークをパーソナライズします。MediaTailor は、ライブエッジで進行中の広告ブレークもパーソナライズします。  

![\[表示抑制モードを に設定して MediaTailor 広告ブレークのパーソナライゼーションを行いますOFF。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/no_ad_suppression.png)


**Example 2: ライブエッジと同期した値を持つ`BEHIND_LIVE_EDGE`広告抑制**  
**avail 抑制モード**が に設定`BEHIND_LIVE_EDGE`され、**avail 抑制値が** に設定されている場合`00:00:00`、avail 抑制値はライブエッジと同期されます。MediaTailor は、ライブエッジまたはその前に開始される広告ブレークをパーソナライズしません。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームのコンテンツ、パーソナライズされた広告時間枠、またはパーソナライズされていない広告時間枠が再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。に設定された表示抑制値を表す別の点線は`00:00:00`、ライブエッジの点線と重複しています。ライブエッジの前に 2 つの広告ブレークが発生し、ライブエッジの後に別の広告ブレークが発生します。図に示すように、avail 抑制モードを に設定し`BEHIND_LIVE_EDGE`、avail 抑制値を に設定`00:00:00`してライブエッジと同期させると、MediaTailor はタイムラインのライブエッジの前に発生する広告ブレークをパーソナライズしません。MediaTailor は、ライブエッジの*後に*発生する広告ブレークをパーソナライズします。  

![\[MediaTailor 広告ブレークのパーソナライゼーション。avail 抑制モードを に設定BEHIND_LIVE_EDGEし、avail 抑制値を に設定します00:00:00。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad_supp_value_sync_live_edge.png)


**Example 3: ライブエッジの背後にある値を持つ`BEHIND_LIVE_EDGE`広告抑制**  
**表示抑制モード**が に設定されている場合`BEHIND_LIVE_EDGE`、MediaTailor はその時間以前に広告時間枠をパーソナライズしません。この例では、MediaTailor はライブエッジから最大 45 分遅れて開始する広告ブレークをパーソナライズします。MediaTailor *は、ライブエッジから 45 分以上遅れて開始する広告ブレークを*パーソナライズしません。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームのコンテンツ、パーソナライズされた広告時間枠、またはパーソナライズされていない広告時間枠が再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。に設定された表示抑制値を表す別の点線は、ライブエッジの点線に関してタイムラインの 45 分前に`00:45:00`発生します。点線の間の 45 分間は、表示抑制期間を表します。広告時間枠は、表示抑制期間の開始時に進行中です。その他の 2 つの広告時間枠は、表示抑制期間中に発生します。図に示すように、表示抑制モードを に設定し`BEHIND_LIVE_EDGE`、表示抑制値をライブエッジの`00:45:00`背後に設定すると、MediaTailor は表示抑制期間内に発生した広告ブレークをパーソナライズします。MediaTailor *は、表示抑制期間の開始時に進行中の広告ブレークを*パーソナライズしません。  

![\[MediaTailor 広告ブレークのパーソナライゼーション。avail 抑制モードを に設定BEHIND_LIVE_EDGEし、avail 抑制値を に設定します00:45:00。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad_supp_value_offset_live_edge.png)


**Example 4: 表示抑制期間中に`AFTER_LIVE_EDGE`広告中断が発生しない広告抑制**  
**avail 抑制モード**が に設定`AFTER_LIVE_EDGE`され、**avail 抑制値が** 0 より大きい場合、MediaTailor はセッションの経過時間がその値に達するまで広告ブレークをパーソナライズしません。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームまたはパーソナライズされた広告ブレークのコンテンツが再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。に設定された表示抑制値を表す別の点線は、ライブエッジの点線に関してタイムラインの 30 分後に`00:30:00`発生します。セッションの初期化を表す 3 番目の点線は、ライブエッジの点線に関してタイムラインの前半で発生します。ライブエッジ時間と avail-suppression-value 時間の間の 30 分の期間は、avail 抑制期間を表します。広告時間枠は、表示抑制期間の後に発生します。図に示すように、avail 抑制モードが に設定されている場合`AFTER_LIVE_EDGE`、avail 抑制値はライブエッジ`00:30:00`の後に に設定され、セッションの初期化はライブエッジの前に行われます。MediaTailor は、avail 抑制期間*後に*発生する広告ブレークをパーソナライズします。  

![\[MediaTailor 広告ブレークのパーソナライゼーション。avail 抑制モードを に設定しAFTER_LIVE_EDGE、avail 抑制値を に設定し00:30:00、ライブエッジの前にセッションを初期化します。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad_supp_after_no_ad_break.png)


**Example 5: `PARTIAL_AVAIL` フィルポリシーによる`AFTER_LIVE_EDGE`広告抑制と、表示抑制期間の終了時に進行中の広告ブレーク**  
**avail 抑制モード**が に設定`AFTER_LIVE_EDGE`され、**avail 抑制値が** 0 より大きい場合、MediaTailor はセッションの経過時間がその値に達するまで広告ブレークをパーソナライズしません。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームのコンテンツ、パーソナライズされた広告時間枠、またはパーソナライズされていない広告時間枠が再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。に設定された表示抑制値を表す別の点線は、ライブエッジの点線に関してタイムラインの 30 分後に`00:30:00`発生します。セッションの初期化を表す 3 番目の点線は、ライブエッジの点線に関してタイムラインの前半で発生します。ライブエッジ時間と avail-suppression-value 時間の間の 30 分の期間は、avail 抑制期間を表します。広告時間枠は、表示抑制期間の終了時に進行中です。図に示すように、avail 抑制モードが に設定されている場合`AFTER_LIVE_EDGE`、avail 抑制値はライブエッジ`00:30:00`の後に に設定され、avail 抑制フィルポリシーは に設定され`PARTIAL_AVAIL`、セッションの初期化はライブエッジの前に行われます。MediaTailor は、avail 抑制期間*後に*発生する広告ブレークをパーソナライズします。表示抑制期間の終了時に進行中の広告ブレークの場合、MediaTailor は表示抑制期間の*後に*発生する広告ブレークの部分をパーソナライズしますが、**表示抑制期間中に発生する広告ブレークの部分はパーソナライズしません。  

![\[avail 抑制モードを に設定しAFTER_LIVE_EDGE、avail 抑制値を に設定し00:30:00、avail 抑制フィルポリシーを に設定しPARTIAL_AVAIL、ライブエッジの前にセッション初期化を行い、avail 抑制期間の終了時に広告ブレークが進行中の MediaTailor 広告ブレークパーソナライゼーション。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad_supp_after_ending_ad_break.png)


**Example 6: `PARTIAL_AVAIL`フィルポリシーによる`AFTER_LIVE_EDGE`広告抑制と、セッションの初期化前から表示抑制期間終了後まで進行中の広告ブレーク**  
**avail 抑制モード**が に設定`AFTER_LIVE_EDGE`され、**avail 抑制値が** 0 より大きい場合、MediaTailor はセッションの経過時間がその値に達するまで広告ブレークをパーソナライズしません。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームのコンテンツ、パーソナライズされた広告時間枠、またはパーソナライズされていない広告時間枠が再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。に設定された表示抑制値を表すもう 1 つの点線は`00:30:00`、ライブエッジの点線に関してタイムラインの 30 分後に発生します。セッションの初期化を表す 3 番目の点線は、ライブエッジの点線に関してタイムラインの早い段階で発生します。ライブエッジ時間と avail-suppression-value 時間の間の 30 分の期間は、avail 抑制期間を表します。広告ブレークは、セッションの初期化前から表示抑制期間の後まで進行中です。図に示すように、avail 抑制モードが に設定されている場合`AFTER_LIVE_EDGE`、avail 抑制値はライブエッジ`00:30:00`の後に に設定され、avail 抑制フィルポリシーは に設定され`PARTIAL_AVAIL`、セッションの初期化はライブエッジの前に行われます。MediaTailor は、avail 抑制期間*後に*発生する広告ブレークをパーソナライズします。表示抑制期間の前後に進行中の広告ブレークの場合、MediaTailor は表示抑制期間の*後に*発生する広告ブレークの部分をパーソナライズしますが、表示抑制期間の*前後**に*発生する広告ブレークの部分はパーソナライズしません。  

![\[MediaTailor 広告ブレークパーソナライゼーションでは、avail 抑制モードを に設定しAFTER_LIVE_EDGE、avail 抑制値を に設定し00:30:00、avail 抑制フィルポリシーを に設定しPARTIAL_AVAIL、ライブエッジの前にセッションの初期化を行い、avail 抑制期間の前、最中、後に広告ブレークを進行中にします。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad_supp_after_ad_break_throughout.png)


**Example 7: 表示抑制期間の開始時に`AFTER_LIVE_EDGE`広告ブレークが進行中の広告抑制**  
**avail 抑制モード**が に設定`AFTER_LIVE_EDGE`され、**avail 抑制値が** 0 より大きい場合、MediaTailor はセッションの経過時間がその値に達するまで広告ブレークをパーソナライズしません。  
次の図では、さまざまなブロックが、左から右に進行するタイムラインに沿って水平に配置されています。各ブロックは、ライブストリームまたはパーソナライズされていない広告時間枠のコンテンツが再生される時間の一部を表します。点線は、ライブストリームの現在のライブエッジを表します。に設定された表示抑制値を表すもう 1 つの点線は`00:30:00`、ライブエッジの点線に関してタイムラインの 30 分後に発生します。セッションの初期化を表す 3 番目の点線は、ライブエッジの点線に関してタイムラインの早い段階で発生します。ライブエッジ時間と avail-suppression-value 時間の間の 30 分の期間は、avail 抑制期間を表します。広告ブレークは、セッションの初期化前の時点から表示抑制期間内の時点まで進行中です。図に示すように、avail サプレッションモードが に設定されている場合`AFTER_LIVE_EDGE`、avail サプレッション値はライブエッジの`00:30:00`後に に設定され、セッションの初期化はライブエッジ時間より前ですが、広告ブレークの開始後に行われるため、MediaTailor はその広告ブレークをパーソナライズしません。  

![\[MediaTailor 広告ブレークパーソナライゼーションでは、avail 抑制モードを に設定しAFTER_LIVE_EDGE、avail 抑制値を に設定し00:30:00、セッションの初期化はライブエッジの前に発生し、広告ブレークは、avail 抑制期間前から終了まで進行中です。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad_supp_after_beginning_ad_break.png)


#### 広告抑制パラメータの設定 – 再生セッションリクエスト
<a name="configuring-ad-suppression-parameters-playback-session-request"></a>

広告抑制は、MediaTailor に対するサーバー側またはクライアント側の*最初の*再生セッションリクエスト内のパラメータを使用して設定できます。MediaTailor コンソールまたは AWS Elemental MediaTailor API を介して広告抑制設定を既に設定している場合、これらのパラメータはそれらの設定を上書きします。

広告抑制を機能させるには、avail 抑制モードと avail 抑制値の両方が必要です。これらのパラメータを異なるソースから設定することはできません。例えば、MediaTailor コンソールで 1 つのパラメータを設定し、クエリパラメータで別のパラメータを設定することはできません。

MediaTailor は、以下の広告抑制パラメータをサポートします。


| 名前 | 説明 | 使用できる値 | 
| --- | --- | --- | 
| availSuppressionMode |  広告抑制のモードを設定します。デフォルトでは、広告抑制は です`OFF`。に設定すると`BEHIND_LIVE_EDGE`、MediaTailor は広告時間枠を`aws.availSuppressionValue`時間外に埋めません。に設定すると`AFTER_LIVE_EDGE`、MediaTailor は表示抑制期間の前後の広告時間枠を埋めません。表示抑制期間は、ライブエッジ時間から`aws.availSuppressionValue`時間、および追加のバッファ時間までです。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-rules.html)  | 
| availSuppressionValue | ライブストリームのライブエッジからの相対的な時間。 | の UTF-8 URL エンコードされたタイムコードHH:MM:SS。例えば、1 時間と 30 分は 01%3A30%3A00 になります。 | 
| availSuppressionFillPolicy | avail 抑制モードに適用するポリシーを定義します。 BEHIND\$1LIVE\$1EDGEは常に完全な avail 抑制ポリシーを使用します。 AFTER\$1LIVE\$1EDGE は、セッションが中断の途中で開始したときに部分的な広告ブレークフィルを呼び出すために使用できます。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-rules.html)  | 

##### サーバー側の設定
<a name="server-side-query"></a>

基本となるクエリパラメータは `aws.availSuppression` で、その後にオプションのパラメータ名と値のペアが続きます。クエリを作成するには、MediaTailor に対する再生セッションリクエストの最後に `aws.availSuppression=` を付加し、その後にパラメータ名と値を追加します。サーバー側の再生セッションリクエストを作成する方法の詳細については、「[MediaTailor サーバー側の広告の追跡とレポート](ad-reporting-server-side.md)」を参照してください。

**例**: HLS

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/index.m3u8?aws.availSuppressionMode=BEHIND_LIVE_EDGE&aws.availSuppressionValue=00%3A00%3A21
```

以下の表は、サーバー側のクエリ構文のリストです。


| クエリ文字列コンポーネント | 説明 | 
| --- | --- | 
| ? | クエリの先頭を示す制限された文字。 | 
| aws. | 名前と値のペアで構成されたパラメータが続くベースクエリ。すべての使用可能なパラメータのリストについては、「[広告抑制パラメータの設定 – 再生セッションリクエスト](#configuring-ad-suppression-parameters-playback-session-request)」を参照してください。 | 
| = | パラメータ名を値に関連付けます。例えば、aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE などです。 | 
| & | クエリパラメータを連結します。例えば、aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE および aws.availSuppressionValue=00:30:00&aws.availSuppressionFillPolicy=FULL\$1AVAIL\$1ONLY> などです。 | 

##### クライアント側の設定
<a name="client-side-configuration"></a>

MediaTailor に対するクライアントの POST リクエストに `availSuppression` パラメータを含めます。クライアント側の再生セッションリクエストを作成する方法の詳細については、「[クライアント側の広告追跡](ad-reporting-client-side.md)」を参照してください。

**例**: HLS

```
POST parent.m3u8
    {
       "availSuppression": {
          "mode": "BEHIND_LIVE_EDGE",
          "value": "00:00:21",
          "fillPolicy": "FULL_AVAIL_ONLY"
       }
    }
```

# MediaTailor バンパー広告挿入
<a name="bumpers"></a>

バンパーは、広告時間枠の開始時または終了前に再生される、スキップ不可能な短いビデオクリップまたはオーディオクリップです AWS Elemental MediaTailor。

 バンパーには、以下の条件が適用されます。
+ バンパーは 10 秒以下である必要があります。
+ バンパーは、広告ブレークの開始時、広告ブレークの終了直前、またはその両方に挿入できます。
+ バンパーは、プレロールが設定されている場合を除き、再生セッションのすべての広告ブレーク中に再生されます。プレロールが設定されている場合、バンパーはプレロールブレーク中に再生されませんが、プレロール後のすべての後続ブレークで再生されます。
+ HLS の場合、SCTE-35 `EXT-X-CUE-OUT` タグのそれぞれに `duration` 属性を含める必要があります。
+ バンパーは、ソースコンテンツに一致するようにトランスコードされます。
+ バンパーに対する料金は発生しません。

## バンパーの設定
<a name="configuring-bumpers"></a>

バンパーを使用するには、MediaTailor コンソール、MediaTailor API、または AWS Command Line Interface () MediaTailor を使用してバンパー URLs を設定しますAWS CLI。スタートバンパー、エンドバンパー、またはその両方を設定できます。バンパーは、Amazon Simple Storage Service (Amazon S3) などのサーバーに保存されます。バンパー URL は、バンパーアセットが保存されている場所を示します。

スタートバンパーとエンドバンパーの URL 例:

スタートバンパー URL: `https://s3.amazonaws.com/startbumperad`

エンドバンパー URL: `https://s3.amazonaws.com/endbumperad`

### 例
<a name="example"></a>

以下は、バンパー広告動作の例です。

**Example 例 1: 開始バンパーと終了バンパー**  
この例では、スタートバンパーとエンドバンパーが有効になっています。広告決定サーバーには、70 秒の広告ブレークを埋めるための 50 秒のパーソナライズされた広告があります。広告ブレークの開始時に 10 秒のスタートバンパーが再生され、続いて 50 秒の広告が再生されから、10 秒のエンドバンパーが再生されます。

![\[スタートバンパー、エンドバンパー、および広告で埋められた広告ブレークを表す図。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/bumpers.png)


# MediaTailor プリロール広告挿入
<a name="ad-behavior-preroll"></a>

**注記**  
設定可能なプレロール広告は、ライブワークフローでのみ使用できます。VOD での広告挿入 (プリロールを含む) の仕組みの詳細については、「」を参照してください[VOD に対する広告ステッチ動作](ad-behavior.md#ad-behavior-vod)。

AWS Elemental MediaTailor は、メインコンテンツを開始する前に、再生セッションの開始時に広告を挿入できます。これらが*プレロール*広告です。

プレロール広告を挿入するには、[オプションの設定](configurations-create.md#configurations-create-addl) の説明にあるように、設定の **[Additional** (追加) 設定で **[Live pre-roll ad decision server]** (ライブプレロール広告決定サーバー) と **[Live pre-roll maximum allowed duration]** (ライブプレロールの最大許容継続時間) の各フィールドに入力します。

1. MediaTailor は、再生リクエストを受信すると、MediaTailor 再生設定の次のフィールドに基づいて、プリロール広告のリクエストを ADS に送信します。
   + **[Live pre-roll ad decision server]** (ライブプレロール広告決定サーバー) は、MediaTailor がプレロール広告のリクエストを送信する広告決定サーバー (ADS) の URL です。
   + **[Live pre-roll maximum allowed duration]** (ライブプレロールの最大許容継続時間) は、プレロール広告の最大合計時間です。MediaTailor は、最大許容継続時間に基づいて以下のアクションを実行します。
     + ADS レスポンス内の広告の合計継続時間が **[Live pre-roll maximum allowed duration]** (ライブプレロールの最大許容継続時間) で指定された値よりも*短い*場合、MediaTailor はすべての広告を挿入します。最後の広告の再生が終了すると、MediaTailor は直ちに基盤となるコンテンツに戻ります。
     + ADS レスポンス内の広告の合計継続時間が **[Live pre-roll maximum allowed duration]** (ライブプレロールの最大許容継続時間) で指定された値よりも*長い*場合、MediaTailor は、その継続時間を超過することなく時間内に収まる一連の広告を挿入します。MediaTailor は、これらの広告をトリミングしたりカットしたりすることなく挿入します。MediaTailor は、選択された最後の広告の再生が終了すると、基盤となるコンテンツに戻ります。

1. MediaTailor が ADS からプレロールレスポンスを受信すると、マニフェストを操作してプレロール広告へのリンクを追加します。MediaTailor は、プレロール広告ブレークの開始時間を以下のように計算します。
   + DASH の場合、式は `(publishTime - availabilityStartTime) - max(suggestedPresentationDelay, minBufferTime)` です。
   + HLS の場合、式は `max(2*EXT-X-TARGETDURATION, EXT-X-START:TIMEOFFSET)` です。

1. プレロールではない広告ブレークに対して実行するアクションは、MediaTailor が決定します。プレロールが他の広告ブレークと重複する場合、MediaTailor は広告ブレークの重複部分をパーソナライズしません。

# MediaTailor スレート広告挿入
<a name="slate-management"></a>

**注記**  
Slate は、ライブワークフローと live-to-VOD ワークフローでのみ使用できます。

を使用すると AWS Elemental MediaTailor、広告時間枠の*スレート*広告を指定できます。スレートは、ストリームに挿入されるデフォルトの MP4 アセット (静止画像やループビデオなど) で、ライブコンテンツの代わりに再生されます。

AWS Elemental MediaTailor は、以下の特定の状況で広告時間枠中にスレートを表示します。
+ パーソナライズされた広告に置き換えられていない休憩の残り時間を埋めるには
+ 広告決定サーバー (ADS) が空の VAST または VMAP レスポンスで応答する場合
+ ADS タイムアウトや ADS からの HTTP 500 エラーなどのエラー条件の場合
+ MediaTailor が広告を挿入できない場合 (トランスコードが完了していない場合など)

スレートを設定しない場合、MediaTailor は上記の条件のいずれかが満たされると、デフォルトで基盤となるコンテンツストリームになります。

## スレートの設定
<a name="configuring-the-slate"></a>

スレートは、[MediaTailor コンソール](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin)の **[additional configuration]** (追加の設定) ペインで指定します。MediaTailor は、ユーザー指定の URL からスレートをダウンロードして、それをコンテンツと同じレンディションにトランスコードします。スレートが表示される最大時間は、MediaTailor コンソールの **[personalization threshold]** (パーソナライゼーションのしきい値) 設定オプションを使用して制御できます。詳細については、「[パーソナライゼーションしきい値の仕組み](#personalization-threshold-scenarios)」を参照してください。

スレートは、音声と動画の両方が含まれた高品質 MP4 アセットである必要があります。スレートの設定は VPAID 以外の設定ではオプションですが、VPAID ワークフローでは必須です。

**注記**  
スレートをホストするサーバーが HTTPS を使用している場合、その証明書は既知の認証機関からのものであることが必要です。自己署名証明書にすることはできません。自己署名証明書を使用する場合、 AWS Elemental MediaTailor はコンテンツオリジンからマニフェストにスレートを取得してステッチすることはできません。

## パーソナライゼーションしきい値の仕組み
<a name="personalization-threshold-scenarios"></a>

パーソナライゼーションしきい値は、広告時間枠で許容される不足広告時間 (秒単位) の最大期間を定義します。この機能は、基盤となるコンテンツストリームに依存するため、広告挿入ではなくライブストリームと VOD ストリームの広告置換に特に適用されます。

動作は 3 つのシナリオによって異なります。

1. **パーソナライゼーションが無効になっている場合:**

   1. スレートは、未入力時間の全期間挿入されます。

   1. 開始/終了バンパーは設定時に挿入されます (詳細については、「」を参照してください[MediaTailor バンパー広告挿入](bumpers.md))。

   1. 広告は通常どおり挿入されます

1. **パーソナライゼーションが有効で、しきい値がブレーク期間より短い場合:**

   1. 未入力時間がパーソナライゼーションのしきい値を超えた場合:

      1. MediaTailor が広告時間枠のパーソナライゼーションを中止する

      1. 基盤となるコンテンツが表示されます

      1. 広告、スレート、バンパーが挿入されない

   1. 未入力時間がパーソナライゼーションのしきい値より短い場合:

      1. 広告とスレートが挿入される

      1. バンパーは設定されている場合に挿入されます

1. **パーソナライゼーションが有効で、しきい値がブレーク期間より大きい場合:**

   1. 広告が挿入されます

   1. スレートは広告時間枠の残り時間の間挿入されます

   1. 設定されている場合、バンパーは挿入されます

次の表は、HLS プロトコルと DASH プロトコルの両方における特定のシナリオの詳細な動作を示しています。


**詳細な動作マトリックス**  

| シナリオ | パーソナライゼーションが無効 | パーソナライゼーションがブレーク期間未満で有効 | パーソナライゼーションがブレーク期間よりも長い時間有効 | 
| --- | --- | --- | --- | 
| 空の VAST または VMAP | スレートが挿入されました | スレートが挿入されていない | スレートが挿入されました | 
| ADS タイムアウト | スレートが挿入されました | スレートが挿入されていない | スレートが挿入されました | 
| 広告は利用できません (Vast 404) | スレートが挿入されました | スレートが挿入されていない | スレートが挿入されました | 
| 広告の期間が広告時間枠よりも長い | 挿入された広告 | 広告が挿入されていない | 挿入された広告 | 
| 広告置換で完全に使用されていない時間を入力する | スレートが挿入されました | パーソナライゼーションのしきい値が未入力時間より大きい場合: 広告/スレートは挿入されず、それ以外の場合: 広告とスレートは挿入されます | スレートが挿入されました | 
| 空の VAST でプリロールする | スレート挿入、プリロール挿入なし | スレートは挿入されず、プリロールは挿入されません | スレート挿入、プリロール挿入なし | 
| ADS タイムアウトによるプリロール | スレート挿入、プリロール挿入なし | スレートは挿入されず、プリロールは挿入されません | スレート挿入、プリロール挿入なし | 
| 広告が利用できない場合のプリロール (Vast 404) | スレート挿入、プリロール挿入なし | スレートは挿入されず、プリロールは挿入されません | スレート挿入、プリロール挿入なし | 
| VAST が空のバンパー | スレート挿入、バンパー挿入 | スレートは挿入されず、バンパーは挿入されません | スレート挿入、バンパー挿入 | 
| ADS タイムアウトのバンパー | スレート挿入、バンパー挿入 | スレートは挿入されず、バンパーは挿入されません | スレート挿入、バンパー挿入 | 
| 広告が利用できない場合のバンパー (Vast 404) | スレート挿入、バンパー挿入 | スレートは挿入されず、バンパーは挿入されません | スレート挿入、バンパー挿入 | 
| 広告置換で完全に使用されていない時間を入力するバンパー | スレート挿入、バンパー挿入、広告挿入 | パーソナライゼーションしきい値が未入力時間より大きい場合: bumpers/ads/slatesは挿入されず、それ以外の場合: bumpers/ads/slates挿入されません | スレート挿入、バンパー挿入、広告挿入 | 

**重要な考慮事項**  
スレートとパーソナライゼーションのしきい値を使用する場合は、次の点に注意してください。
+ この動作は、HLS プロトコルと DASH プロトコルの両方で一貫しています。
+ パーソナライゼーションしきい値機能は、スレートが設定されている場合にのみ適用されます。
+ スレートが設定されていて、パーソナライゼーションのしきい値が設定されていない場合、スレートは完全なオリジン表示期間または広告の入力後の残り時間のいずれかで再生されます。
+ VPAID 広告の場合、MediaTailor は VPAID 広告の期間中スレートを挿入し、ビデオプレーヤーが挿入する広告のスペースを保持します。

## スレート設定と VPAID
<a name="vpaid-requirements"></a>

**重要**  
VPAID 広告を使用する場合、スレート設定は必須です。MediaTailor はスレートを挿入して、ビデオプレーヤーが挿入する VPAID 広告のスペースを保持します。ユーザーのインタラクティブ性に対応するため、スレート期間は VPAID 広告期間よりもわずかに長くなる場合があります。

次に、ビデオプレーヤーは、「」で説明されているように、MediaTailor が返すクライアント側のレポートメタデータに基づいて VPAID 広告を処理します[VPAID 要件](vast.md#vpaid)。クライアント側のレポートについては、「[クライアント側の広告追跡](ad-reporting-client-side.md)」を参照してください。

# 広告のプリフェッチ
<a name="prefetching-ads"></a>

ライブストリームの AWS Elemental MediaTailor 広告プリフェッチを使用すると、広告決定サーバー (ADS) のピーク負荷を軽減し、各広告ブレークの開始時にマニフェスト配信レイテンシーを短縮できます。プリフェッチスケジュールを定義すると、MediaTailor はスケジュールに従って ADS から広告を取得し、広告時間枠に必要な前に広告挿入の準備をします。ライブストリーム中、プリフェッチは、広告リクエストやトランスコーディングのタイムアウトやその他のネットワーク遅延による広告フィル率の低下や収益機会の損失を軽減するのに役立ちます。

**注記**  
広告プリフェッチは、従来のサーバーガイドや HLS インタースティシャルなど、サーバーガイド広告挿入 (SGAI) メソッドでは機能しません。SGAI メソッドでは、プレイヤーが再生する広告のみをフェッチし、MediaTailor が個々のセッションリクエストを表示せずに CDNs がマニフェストを提供できるため、プリフェッチは必要ありません。

広告のプリフェッチをセットアップするには、再生設定で 1 つ、または複数の*プリフェッチスケジュール*を作成します。プリフェッチスケジュールは、今後の広告ブレークのための広告をいつ、どのように取得して準備するのかを MediaTailor に伝えます。
+ イベントに予測可能なスケジュールの広告表示がある場合は、1 *つのプリフェッチスケジュール*を使用します。各 1 つのプリフェッチスケジュールは、MediaTailor が 1 つの広告表示に配置する 1 つの広告セットを定義します。単一のプリフェッチスケジュールを使用するときに複数の広告表示の広告をプリフェッチするには、各広告表示に関連する複数のプリフェッチスケジュール (広告表示の 24 時間前まで) を作成する必要があります。
+ イベントに予測可能なスケジュールにない広告表示がある場合は、*定期的なプリフェッチスケジュール*を使用します。定期的なプリフェッチスケジュールは、スケジュールを自動的に作成し、イベントの各広告時間枠の前に広告をプリフェッチします。定期的なプリフェッチスケジュールは、定義された期間 (イベントが終了する最大 24 時間前) 内のすべての広告表示の広告を取得します。広告表示ごとにスケジュールを作成する必要はありませんが、単一のプリフェッチが提供するタイミング制御の一部が失われます。

以下のトピックでは、広告プリフェッチについて詳しく説明します。

**Topics**
+ [プリフェッチの仕組み](understanding-prefetching.md)
+ [プリフェッチスケジュールの作成](creating-prefetch-schedules.md)
+ [TPS ベースのトラフィックシェーピング](tps-traffic-shaping.md)
+ [プリフェッチスケジュールの削除](deleting-prefetch-schedules.md)

# プリフェッチの仕組み
<a name="understanding-prefetching"></a>

クライアントが MediaTailor に対してマニフェストリクエストを行うと、サービスが再生設定に関連付けられているすべてのプリフェッチスケジュールを評価します。MediaTailor に一致するプリフェッチスケジュールがない場合、サービスは通常の広告挿入に戻り、広告をプリフェッチしません。

MediaTailor が一致するプリフェッチスケジュールを検出すると、サービスは取得と消費の 2 つのコンポーネントに基づいてスケジュールを評価します。各コンポーネントの設定は、以下のセクションで説明するように、単一のプリフェッチスケジュールと定期的なプリフェッチスケジュールによって異なります。

## 単一のプリフェッチスケジュールフロー
<a name="understanding-prefetching-single"></a>

**取得**  
これは、MediaTailor が ADS から広告をプリフェッチする時間範囲である*取得時間枠*を定義します。広告時間枠の前に、必ずこのウィンドウをスケジュールしてください。以下は、MediaTailor が単一のプリフェッチスケジュールを処理する方法の概要です。  
コンソールで 1 つのプリフェッチスケジュールを作成する手順については、「」を参照してください[プリフェッチスケジュールの作成](creating-prefetch-schedules.md)。API の手順については、 API *AWS Elemental MediaTailor リファレンス*の[PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)」を参照してください。  
指定された*取得ウィンドウ*中に、MediaTailor は ADS にリクエストを送信して、再生セッションに後で挿入するための広告を取得して準備します。  
+ MediaTailor は、オプションでトラフィックシェーピングを使用して、一度に ADS へのリクエストの数を制限します。次の 2 つのアプローチから選択できます。

  *タイムウィンドウトラフィックシェーピング* - MediaTailor は、すべてのセッションのリクエストを一度に送信するのではなく、指定された秒数にわたってリクエストを分散します。この分散トラフィック分散は、ADS が過負荷になり、タイムアウトが発生し、広告フィルレートが低下するのを防ぐのに役立ちます。

  *TPS ベースのトラフィックシェーピング* - MediaTailor は、1 秒あたりのトランザクション (TPS) と同時ユーザーに基づいてリクエストを制限します。このアプローチは、ADS 容量制限に基づいてより直感的な設定を提供します。詳細については、「[TPS ベースのトラフィックシェーピング](tps-traffic-shaping.md)」を参照してください。
+ *動的変数*を設定すると、MediaTailor は ADS へのリクエストにこれらの変数を含めます。MediaTailor は、これらの変数を使用して広告表示を照合し、消費ウィンドウ中にスケジュールをプリフェッチします。詳細については、次の*消費*セクションを参照してください。

**Example**  
ライブイベントは午前 7 時 45 分から10AM 時まで続き、広告時間枠は午前 8 時 15 分です。MediaTailor は、午前 7 時 45 分から8AM 時までの広告を取得するように設定し、トラフィックシェーピングウィンドウは 60 秒です。同時ユーザー数が 500,000 人の場合、MediaTailor はすべてのリクエストを同時に送信するのではなく、1 秒あたり約 8,333 トランザクションの平均レートを 60 秒間 (500,000 ユーザー/60 秒=1 秒あたり 8,333 リクエスト) 達成するように ADS リクエストを分散します。  
取得設定には、動的変数キー`scte.event`と値 が含まれます`1234`。MediaTailor は ADS へのリクエストにこの変数を含め、特定のアドバタイザーをイベント ID 1234 にターゲットにするために使用できます。

**消費**  
MediaTailor が消費ウィンドウ中に SCTE-35 広告ブレークマーカーを検出すると、プリフェッチされた広告が広告ブレークに配置されます。  
+ 表示マッチング基準を設定しなかった場合、MediaTailor は消費ウィンドウの最初の時間枠に広告を挿入します。
+ *可用性**マッチング**基準*に*動的変数キー*を設定した場合、MediaTailor は取得ウィンドウで設定した動的変数に対してこれらの基準を評価します。広告ブレークは、表示マッチング基準を満たしている場合にのみ、プリフェッチされた広告挿入の対象となります。MediaTailor は、条件を満たす最初の時間枠に広告を挿入します。

  サポートされている avail-matching 条件のリストについては、 の表の*「広告プリフェッチに使用可能*」列を参照してください[ADS リクエストの MediaTailor セッション変数](variables-session.md)。

**Example continued**  
消費の開始時刻を午前 8 時 15 分に設定し、終了時刻を午前 8 時 17 分に設定します。キー`scte.event_id`の を有効一致条件に含めます。  
MediaTailor が午前 8 時 15 分から午前 8 時 17 分に遭遇する広告時間枠ごとに、各広告時間枠のSCTEイベント ID を評価します。各再生セッションで、MediaTailor はイベント ID が 1234 (取得動的変数で定義) の最初の広告ブレークにプリフェッチされた広告を挿入します。正しいイベント ID が含まれていない広告時間枠の場合、MediaTailor は標準広告挿入を実行します。

## 定期的なプリフェッチスケジュールフロー
<a name="understanding-prefetching-recurring"></a>

**取得**  
これは、MediaTailor がライブイベントの広告をプリフェッチして挿入する時間範囲 (最大 24 時間) である*定期的な取得ウィンドウ*を定義します。以下は、MediaTailor が定期的なプリフェッチスケジュールを処理する方法の概要です。  
コンソールで定期的なプリフェッチスケジュールを作成する手順については、「」を参照してください[プリフェッチスケジュールの作成](creating-prefetch-schedules.md)。API の手順については、 API *AWS Elemental MediaTailor リファレンス*の[PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)」を参照してください。  
指定された定期的なプリフェッチウィンドウ中に、MediaTailor は最大 24 時間のライブイベントの広告を取得して挿入します。ウィンドウ内の広告時間枠ごとに、MediaTailor は次の広告時間枠の広告を自動的に取得します。  
+ *表示終了後に遅延*を設定すると、MediaTailor は次の広告時間枠の次の広告セットを取得する前に、指定された時間待機します。
+ MediaTailor は、オプションでトラフィックシェーピングを使用して、一度に ADS へのリクエストの数を制限します。次の 2 つのアプローチから選択できます。

  *タイムウィンドウトラフィックシェーピング* - MediaTailor は、すべてのセッションのリクエストを一度に送信するのではなく、指定された秒数にリクエストを分散します。この分散トラフィック分散は、ADS が過負荷になり、タイムアウトが発生し、広告フィルレートが低下するのを防ぐのに役立ちます。

  *TPS ベースのトラフィックシェーピング* - MediaTailor は、1 秒あたりのトランザクション (TPS) と同時ユーザーに基づいてリクエストを制限します。このアプローチは、ADS 容量制限に基づいてより直感的な設定を提供します。詳細については、「[TPS ベースのトラフィックシェーピング](tps-traffic-shaping.md)」を参照してください。
+ *動的変数*を設定すると、MediaTailor は ADS へのリクエストにこれらの変数を含めます。MediaTailor は、これらの変数を使用して広告表示を照合し、消費ウィンドウ中にスケジュールをプリフェッチします。詳細については、次の*消費*セクションを参照してください。

**Example**  
ライブイベントは7PM 時から午後 8 時 45 分まで続き、その間に 4 回の広告時間枠があります。広告時間枠は予測可能なスケジュールではありません。定期的なプリフェッチを7PM 時から午後 8 時 45 分まで設定し、10 分の遅延とトラフィックシェーピングウィンドウを 60 秒に設定します。各表示の後、MediaTailor は次の広告時間枠の広告を取得します。表示が終了してから 10 分後、MediaTailor は ADS への取得リクエストの送信を開始します。トラフィックシェーピングウィンドウが 60 秒、同時ユーザー数が 500,000 人の場合、MediaTailor は ADS リクエストを分散して、すべてのリクエストを同時に送信するのではなく、1 秒あたり約 8,333 トランザクション (500,000 ユーザー/60 秒=1 秒あたり 8,333 リクエスト) の平均レートを実現します。  
取得設定には、動的変数キー`scte.event`と値 が含まれます`1234`。MediaTailor は ADS へのリクエストにこの変数を含め、特定のアドバタイザーをイベント ID 1234 にターゲットにするために使用できます。

**消費**  
MediaTailor は SCTE-35 広告ブレークマーカーを検出すると、プリフェッチされた広告を広告ブレークに配置します。  
+ *取得した広告の有効期限*を設定した場合、プリフェッチされた広告は、指定された有効期限まで挿入できます。
+ 表示マッチング基準を設定しなかった場合、MediaTailor は消費ウィンドウの最初の時間枠に広告を挿入します。
+ *可用性**マッチング**基準*に*動的変数キー*を設定した場合、MediaTailor は取得ウィンドウで設定した動的変数に対してこれらの基準を評価します。広告ブレークは、表示マッチング基準を満たしている場合にのみ、プリフェッチされた広告挿入の対象となります。MediaTailor は、条件を満たす最初の時間枠に広告を挿入します。

  サポートされている avail-matching 条件のリストについては、 の表の*「広告プリフェッチに使用可能*」列を参照してください[ADS リクエストの MediaTailor セッション変数](variables-session.md)。

**Example continued**  
消費では、キー`scte.event_id`の を有効一致条件に含めます。  
MediaTailor が遭遇する広告時間枠ごとに、各広告時間枠のSCTEイベント ID を評価します。各再生セッションで、MediaTailor はイベント ID が 1234 (取得動的変数で定義) の各広告ブレークにプリフェッチされた広告を挿入します。正しいイベント ID が含まれていない広告時間枠の場合、MediaTailor は標準広告挿入を実行します。  
取得した広告を 45 分間挿入できるように、広告の有効期限を 2700 秒に設定します。
次の図は、広告時間枠を表す小さな四角形の例を示しています。定期的なプリフェッチスケジュール設定は、イベントタイムラインに沿って示されています。  

![\[定期的なプリフェッチスケジュール設定を含むライブイベントの図。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/recurring_prefetch_timeline.png)


## プリフェッチコストについて
<a name="billing"></a>

広告取り出しリクエストの作成に料金はかかりません。ただし、プリフェッチ広告の取得には、MediaTailor がトランスコードするプリフェッチ広告の標準トランスコードレートで課金されます。プリフェッチ広告の消費については、MediaTailor が広告ブレークに配置するプリフェッチされた広告の広告挿入に対する標準料金が請求されます。トランスコーディングと広告挿入のコストについては、[AWS Elemental MediaTailor 「 料金](https://aws.amazon.com/mediatailor/pricing/)表」を参照してください。

# プリフェッチスケジュールの作成
<a name="creating-prefetch-schedules"></a>

以下は、MediaTailor コンソールを使用してプリフェッチスケジュールを作成する方法を説明する手順です。MediaTailor API を使用してプログラムでプリフェッチスケジュールを作成および管理する方法の詳細については、 *AWS Elemental MediaTailor API リファレンス*の[PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)」を参照してください。

**注記**  
MediaTailor でプリフェッチスケジュールを設定するときは、さまざまなタイプの変数がどのように処理されるかを理解することが重要です。  

**利用可能な一致基準**  
スケジュールで avail マッチング基準を使用する場合は、まず再生設定の ADS URL テンプレートを[動的セッション変数](variables-session.md)で設定してください。そうしないと、 avail マッチング基準は効果がありません。動的セッション変数の操作については、MediaTailor [ステップ 3: ADS リクエスト URL とクエリパラメータを設定する](getting-started-ad-insertion.md#getting-started-configure-request) 広告挿入の開始方法」トピックの「」を参照してください。

**プリフェッチスケジュールのプレイヤー変数**  
プリフェッチスケジュールを作成するときは、プレイヤー変数をプリフェッチ設定で動的変数として定義しないでください。代わりに、セッション開始時と同じようにプレイヤー変数を渡します。変数が ADS テンプレート URL にマッピングされている場合、MediaTailor はこれらの変数をプリフェッチ広告リクエストに自動的に含めます。

**コンソールを使用して新しいプリフェッチスケジュールを作成する**

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. ナビゲーションペインで **[Configurations]** (設定) をクリックします。プリフェッチスケジュールを作成する再生設定を選択します。

1. **[Prefetch schedules]** (プリフェッチのスケジュール) タブで、**[Add prefetch schedule]** (プリフェッチスケジュールを追加) をクリックします。

1. **[Prefetch schedule details]** (プリフェッチスケジュールの詳細) ペインで、以下を実行します。
   + **[Name]** (名前) には、プリフェッチスケジュールの識別子 (**my-prefetch-schedule** など) を入力します。
   + **[Stream ID]** (ストリーム ID) には、オプションで一意の ID を入力します。オリジンに複数の再生ストリームが含まれている場合は、この ID を使用して、特定のストリームに広告を配置するよう MediaTailor に指示することができます。たとえば、再生設定にスポーツストリームとテレビ番組ストリームがある場合、ストリーム ID を使用してプリフェッチスケジュールを作成し、スポーツストリームを対象とした広告を挿入できます。ストリーム ID 値は、クライアントのセッション開始またはマニフェストリクエストで MediaTailor に渡します。詳細については、以下の例を参照してください。
     + *サーバー側の追跡*の場合は、MediaTailor エンドポイントに対するクライアントの `GET HTTP` リクエストに `?aws.streamId` クエリパラメータと値を含めます。サーバー側の追跡に関する一般情報については、「[MediaTailor サーバー側の広告の追跡とレポート](ad-reporting-server-side.md)」を参照してください。ストリーム ID が含まれた HLS エンドポイントに対するマニフェストリクエストは以下のようになります。`myStreamId` はストリーム ID の名前です。

       ```
       GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.streamId=myStreamId
       ```
     + *クライアント側の追跡*の場合は、**MediaTailor /v1/Session** エンドポイントに対するクライアントの `POST HTTP` セッション開始リクエストボディに `streamId` キーと値を含めます。クライアント側の追跡に関する一般情報については、「[クライアント側の広告追跡](ad-reporting-client-side.md)」を参照してください。ストリーム ID が含まれたセッション開始リクエストは以下のようになります。`myStreamId` はストリーム ID の名前です。

       ```
       POST <mediatailorURL>/v1/session/<hashed-account-id>/<origin-id>/<asset-id>
       {
           'streamId': 'myStreamId',
           'reportingMode': 'client'
       }
       ```

1. **プリフェッチタイプ**では、選択し、対応するセクションを選択して、追加のフィールドについてサポートします。
   + イベントで 1 つの広告時間枠に対して 1 つのプリフェッチスケジュールを作成する場合は、**シングル** を選択します。
   + イベントの各広告ブレークの前に広告を自動的にプリフェッチするスケジュールを作成する場合は、**繰り返し**を選択します。

## 単一のプリフェッチスケジュール
<a name="single-prefetch"></a>

イベントで 1 つの広告表示の前に広告をプリフェッチするスケジュールを作成するには。

1. **[Retrieval]** (取得) ペインで、使用する取得設定を指定します。これらの設定は、MediaTailor が ADS から広告をプリフェッチするタイミングを決定します。また、ADS へのリクエストに含める動的セッション変数があれば決定します。
   + **[Start time]** (開始時間) には、MediaTailor がこの広告ブレーク用のプリフェッチ取得を開始できる時刻を入力します。MediaTailor は、この時刻以降にクライアントによって行われるマニフェストリクエストのための広告のプリフェッチを試みます。デフォルト値は現在の時刻です。値を指定しない場合、サービスは可能な限り速やかにプリフェッチ取得を開始します。
   + **[End time]** (終了時間) には、MediaTailor がこの広告ブレーク用のプリフェッチ取得を停止する時刻を入力します。MediaTailor は、この時刻以前に行われるマニフェストリクエストのための広告のプリフェッチを試みます。取得時間枠は、消費時間枠と重複させることができます。
   + 必要に応じて、一度に ADS へのリクエスト数を制限するようにトラフィックシェーピングを設定します。次のいずれかのアプローチを選択します。

     *タイムウィンドウアプローチ*: **トラフィックシェーピングウィンドウ期間**には、MediaTailor が ADS にリクエストを配信する秒数を入力します。詳細については、[「シングルプリフェッチスケジュールの取得の説明](understanding-prefetching.md#avail-matching-criteria-retr)」を参照してください。

     *TPS ベースのアプローチ*: **ピーク TPS** と**ピーク同時ユーザー**を設定し、1 秒あたりのトランザクションと同時ユーザーに基づいてリクエストを制限します。詳細については、「[TPS ベースのトラフィックシェーピング](tps-traffic-shaping.md)」を参照してください。
   + [**動的変数**](variables.md) セクションに、最大 100 個の動的セッション変数を入力します。MediaTailor は、ADS に送信するプリフェッチリクエストでの代入にこれらの変数を使用します。動的セッション変数を入力しない場合、MediaTailor は [ADS URL ](configurations-create.md#configurations-create-main)に含まれる動的変数の値を補間するよう最善を尽くします。
     + **[Add dynamic variable]** (動的変数を追加) をクリックします。
     + Key には****、 などの動的セッション変数キーを入力します`scte.event_id`。これには、MediaTailor がサポートする任意の動的変数を使用できます。動的セッション変数の詳細については、「」を参照してください[ADS リクエストの MediaTailor セッション変数](variables-session.md)。
     + **[Value]** (値) には、*my-event* などの動的変数値を入力します。
     + 別の動的変数を追加するには、**[Add dynamic variable]** (動的変数を追加) をクリックします。

1. **[Consumption]** (消費) ペインで、消費時間枠に使用する設定を指定します。これらの設定は、MediaTailor が広告ブレークに広告を配置するタイミングを決定します。また、使用する avail 使用条件も決定します。
   + **[Start time]** (開始時間) には、MediaTailor がプリフェッチされた広告の広告ブレークへの配置を開始する時刻を入力します。デフォルト値は現在の時刻です。時刻を指定しない場合、サービスは可能な限り速やかにプリフェッチ消費を開始します。
   + **[End time]** (終了時間) には、MediaTailor がプリフェッチされた広告の広告ブレークへの配置を停止する時刻を入力します。MediaTailor は、この時刻以前に行われるクライアントのマニフェストリクエストのための広告のプリフェッチを試みます。終了時刻は、開始時刻の後、かつ現時点から 1 日未満の時刻にする必要があります。消費時間枠は、取得時間枠と重複させることができます。
   + [**[Avail matching criteria]**](variables.md) (Avail 一致条件) セクションで **[Add avail criteria]** (avail 条件を追加) をクリックし、スケジュールに最大 5 個の avail 一致条件を追加します。その後、**[Dynamic variable key]** (動的変数キー) で、`scte.event_id` などの動的変数キーを追加します。MediaTailor は、クライアントが MediaTailor に渡す動的変数値、または MediaTailor がセッションデータなどの情報から推測する動的変数値で定義された基準を満たしている*場合にのみ*MediaTailor 、プリフェッチされた広告を広告ブレークに配置します。広告時間枠が指定された一致基準を満たしていない場合、MediaTailor はその時間枠のプリフェッチをスキップします。詳細については、[「 Single prefetch schedule consumption explanation](understanding-prefetching.md#avail-matching-criteria)」を参照してください。

1. **[Add avail criteria]** (Avail 条件を追加) をクリックします。

プリフェッチスケジュールは、消費時間枠の終了時間後、自動的に期限が切れます。これらは、診断目的のために少なくとも 7 日間表示された後、MediaTailor によって自動的に削除されます。また、プリフェッチスケジュールはいつでも手動で削除できます。プリフェッチスケジュールを手動で削除する方法については、以下の「[プリフェッチスケジュールの削除](deleting-prefetch-schedules.md)」セクションを参照してください。

### クライアントが CreatePrefetchSchedule API を呼び出す頻度の決定
<a name="how-often"></a>

広告ブレークが配信される正確なタイミングをユーザーが把握している場合、クライアントは 1 日 1 回 [CreatePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreatePrefetchSchedule.html) API をプログラム的に呼び出して、取得と消費をセットアップできます。クライアントは、一日中何度も API を呼び出して、取得と消費を定義することもできます。API コールの頻度を選択するときは、[アクティブなプリフェッチスケジュールの最大数](quotas.md#prefetch-schedules-limit)と、プリフェッチスケジュールの作成後に広告時間枠スケジュールが変更される可能性を考慮してください (複数可）。プリフェッチスケジュールの作成後に広告ブレークスケジュールが変更される可能性が高い場合は、API をより頻繁に呼び出すことをお勧めします。

## 定期的なプリフェッチスケジュール
<a name="recurring-prefetch"></a>

イベントの各広告表示の前に広告をプリフェッチするスケジュールを作成するには。

1. **定期的な取得**ペインで、使用する取得設定を指定します。これらの設定は、MediaTailor が ADS から広告をプリフェッチするタイミングを決定します。また、ADS へのリクエストに含める動的セッション変数があれば決定します。
   + **定期的なプリフェッチウィンドウ**には、MediaTailor がこの広告時間枠のプリフェッチ取得を開始できる時間を入力します。MediaTailor は、この時刻以降にクライアントによって行われるマニフェストリクエストのための広告のプリフェッチを試みます。デフォルト値は現在の時刻です。値を指定しない場合、サービスは可能な限り速やかにプリフェッチ取得を開始します。
   + **表示終了後の遅延**には、次の表示の広告をプリフェッチする前に MediaTailor が表示終了後に待機する秒数を入力します。値を指定しない場合、MediaTailor はデフォルトで遅延なしになります。
   + 必要に応じて、一度に ADS へのリクエスト数を制限するようにトラフィックシェーピングを設定します。次のいずれかのアプローチを選択します。

     *タイムウィンドウアプローチ*: **トラフィックシェーピングウィンドウ期間**には、MediaTailor が ADS にリクエストを配信する秒数を入力します。詳細については、[「定期的なプリフェッチスケジュールの取得の説明](understanding-prefetching.md#avail-matching-criteria-recurring-retr)」を参照してください。

     *TPS ベースのアプローチ*: **ピーク TPS** と**ピーク同時ユーザー**を設定し、1 秒あたりのトランザクションと同時ユーザーに基づいてリクエストを制限します。詳細については、「[TPS ベースのトラフィックシェーピング](tps-traffic-shaping.md)」を参照してください。
   + [**動的変数**](variables.md)セクションには、最大 100 個の動的セッション変数を入力します。MediaTailor は、ADS に送信するプリフェッチリクエストでの代入にこれらの変数を使用します。動的セッション変数を入力しない場合、MediaTailor は [ADS URL ](configurations-create.md#configurations-create-main)に含まれる動的変数の値を補間するよう最善を尽くします。
     + **[Add dynamic variable]** (動的変数を追加) をクリックします。
     + **Key** には、 などの動的セッション変数キーを入力します`scte.event_id`。これには、MediaTailor がサポートする任意の動的変数を使用できます。動的セッション変数の詳細については、「」を参照してください[ADS リクエストの MediaTailor セッション変数](variables-session.md)。
     + **[Value]** (値) には、*my-event* などの動的変数値を入力します。
     + 別の動的変数を追加するには、**[Add dynamic variable]** (動的変数を追加) をクリックします。

1. **[Consumption]** (消費) ペインで、消費時間枠に使用する設定を指定します。これらの設定は、MediaTailor が広告ブレークに広告を配置するタイミングを決定します。また、使用する avail 使用条件も決定します。
   + **取得済み広告の有効期限**については、取得後広告を挿入できる期間を指定します。
   + [**[Avail matching criteria]**](variables.md) (Avail 一致条件) セクションで **[Add avail criteria]** (avail 条件を追加) をクリックし、スケジュールに最大 5 個の avail 一致条件を追加します。その後、**[Dynamic variable key]** (動的変数キー) で、`scte.event_id` などの動的変数キーを追加します。MediaTailor は、クライアントが MediaTailor に渡す動的変数値、または MediaTailor がセッションデータなどの情報から推測する動的変数値で定義された基準を満たしている*場合にのみ*MediaTailor 、プリフェッチされた広告を広告ブレークに配置します。広告時間枠が指定された一致基準を満たしていない場合、MediaTailor はその時間枠のプリフェッチをスキップします。詳細については、[「定期的なプリフェッチスケジュールの消費の説明](understanding-prefetching.md#avail-matching-criteria-recur)」を参照してください。

1. **[Add avail criteria]** (Avail 条件を追加) をクリックします。

プリフェッチスケジュールは、消費時間枠の終了時間後、自動的に期限が切れます。これらは、診断目的のために少なくとも 7 日間表示された後、MediaTailor によって自動的に削除されます。また、プリフェッチスケジュールはいつでも手動で削除できます。プリフェッチスケジュールを手動で削除する方法については、以下の「[プリフェッチスケジュールの削除](deleting-prefetch-schedules.md)」セクションを参照してください。

# TPS ベースのトラフィックシェーピング
<a name="tps-traffic-shaping"></a>

AWS Elemental MediaTailor には、一度に ADS へのリクエスト数を制限するための 2 つのオプションのトラフィックシェーピングアプローチが用意されています。TPS ベースのトラフィックシェーピングは、プリフェッチスケジュールのタイムウィンドウベースのトラフィックシェーピングに代わる方法を提供します。このアプローチでは、時間計算ではなく、1 秒あたりのトランザクション (TPS) と予想される同時ユーザー数の観点から広告決定サーバー (ADS) 容量を指定できるため、より直感的な設定が可能になります。

## TPS ベースのトラフィックシェーピングの仕組み
<a name="tps-how-it-works"></a>

取得ウィンドウの期間を指定する代わりに、次のパラメータを指定します。

ピーク TPS  
ADS が処理できる 1 秒あたりのリクエストの最大数。このパラメータにはデフォルト値はありません。

ピーク同時ユーザー  
コンテンツの同時ビューワーの予想されるピーク数。このパラメータにはデフォルト値はありません。

MediaTailor は、同時セッションの数に関係なく、指定した TPS 制限内に収まるように、プリフェッチリクエストを一定期間にわたって自動的に分散します。

**Example TPS ベースの設定例**  
ADS は 500 TPS を処理でき、ピーク時に 100,000 人の同時視聴者を想定します。以下を設定します。  
+ ピーク TPS: 500
+ ピーク同時ユーザー: 100,000
MediaTailor は、同時セッションの数に関係なく、指定した TPS 制限内に収まるように、プリフェッチリクエストを一定期間にわたって自動的に分散します。

# プリフェッチスケジュールの削除
<a name="deleting-prefetch-schedules"></a>

以下は、MediaTailor コンソールを使用してプリフェッチスケジュールを削除する方法を説明する手順です。MediaTailor API を使用してプログラムでプリフェッチスケジュールを削除する方法については、 API *AWS Elemental MediaTailor リファレンス*の[DeletePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_DeletePrefetchSchedule.html)」を参照してください。

**注記**  
削除はリアルタイムでは行われません。MediaTailor がプリフェッチスケジュールを削除する間に遅延が発生する場合があり、その間はプリフェッチの取得と消費がバックグラウンドで引き続き実行されます。

**コンソールを使用してスケジュールされたアクションを削除する**

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. ナビゲーションペインで **[Configurations]** (設定) をクリックします。削除するプリフェッチスケジュールが含まれている再生設定を選択します。

1. **[Prefetch schedules]** (プリフェッチスケジュール) タブで、削除するプリフェッチスケジュールを選択します。その後、**[Delete]** (削除) をクリックします。

# での前提条件付き広告の使用 AWS Elemental MediaTailor
<a name="precondition-ads"></a>

[一般的な広告挿入ワークフロー](what-is-flow.md)では、MediaTailor はコンテンツストリームに合わせて広告を動的にトランスコードし、保存して、ライブストリームに広告をステッチします。このプロセスは、MediaTailor が広告決定サーバー (ADS) から VAST レスポンスで広告を受信した後にのみ行われるため、広告がスティッチング可能になるまでに遅延が発生します。広告ステッチングワークフローに追加のレイテンシーが発生した場合 (ADS タイムアウトやその他のコンテンツやネットワークの問題が原因）、MediaTailor は部分的に表示を埋めたり、広告時間枠を完全に見逃したりする可能性があります。

コンテンツに広告をステッチするのに必要な時間を短縮するために、前提条件付き広告を使用できます。前提条件付き広告は、MediaTailor 広告挿入で使用する前にトランスコードする広告です。ADS に無条件広告URLs を提供する代わりに、前提条件付き広告の URLs を指定します。MediaTailor リクエストに対する VAST レスポンスで、ADS には前提条件付き広告への直接リンクが含まれています。広告ステッチングのトランスコード部分を削除することで、MediaTailor は広告を保存してコンテンツストリームにステッチするだけで済みます。事前条件付き広告を使用した広告ステッチングプロセスにより、MediaTailor が VAST レスポンスを通じて広告を認識してから、広告がコンテンツにステッチされるまでの時間が短縮されます。

または、広告プリフェッチを使用することもできます。これは、広告時間枠が必要になる前に、スケジュールされた時刻に広告ステッチングプロセスを実行するように MediaTailor を設定する場合です。広告プリフェッチの詳細については、「」を参照してください[広告のプリフェッチ](prefetching-ads.md)。

## 前提条件付き広告の要件
<a name="precondition-ads-req"></a>

以下は、前提条件付き広告で広告ステッチングワークフローを設定する際に考慮すべき要件です。

### `MediaFiles` の要件
<a name="precondition-ads-req-vast"></a>

広告サーバーが MediaTailor に送信する VAST レスポンスには`MediaFiles`、以下の要件を満たすものを含める必要があります。

広告 (`Creative`) には、コンテンツストリームのビットレートバリアントに準拠するバリアントが必要です。*VAST レスポンスで適切な広告バリアントを使用してテンプレートマニフェストを照合するのはお客様の責任です。 *

前提条件付き広告を使用すると、広告挿入の効率を高めることができますが、MediaTailor では、広告のメディアファイルがコンテンツマニフェスト仕様と互換性があることを保証するトランスコードプロセスを管理する機能はありません。広告がコンテンツストリームと一致しない場合、MediaTailor が挿入を見逃したり、一致しないと再生デバイスがエラーになる可能性があります。

さらに、MediaTailor トランスコードなしでコンテンツストリームにステッチインするには、 が次の要件を満たしている`MediaFile`必要があります。
+ MediaTailor がダウンロードできるようにするには、パブリックインターネットでアクセス可能である必要があります。
+ VAST レスポンス`delivery="streaming"`で として示されているストリーミング配信を使用する必要があります。
+ (HLS `.m3u8`の場合) または `.mpd` (DASH の場合) ファイルである必要があります。

**Example VAST レスポンス**  
次の VAST レスポンスの例から、MediaTailor は次の URL `MediaFile`で を挿入します。 URLs  
+ HLS ストリームの場合、MediaTailor は を使用します`https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8`。これは、ストリーミング配信とサポートされているファイル拡張子 (.`m3u8`) `MediaFile`を持つ最初の です。
+ DASH ストリームの場合、MediaTailor は を使用します`https://example-ad-origin.amazonaws.com/ad1/index.mpd`。これは、ストリーミング配信とサポートされているファイル拡張子 (.`mpd`) `MediaFile`を持つ最初の です。

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0">
    <Ad id="ad1">
        <InLine>
            <AdSystem>ExampleAdSystem</AdSystem>
            <AdTitle>ad1</AdTitle>
            <Impression><![CDATA[https://example-impression.amazonaws.com]]></Impression>
            <AdServingId>de8e0d33-9c72-4d77-bb3a-f7e566ffc605</AdServingId>
            <Creatives>
                <Creative id="creativeId1" sequence="1">
                    <Linear skipoffset="00:00:05">
                        <Duration>00:00:30</Duration>
                        <MediaFiles>
                            <MediaFile delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/ad1.mp4]]></MediaFile>
                            <MediaFile delivery="streaming" width="1280" height="720" type="application/dash+xml" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index.mpd]]></MediaFile>
                            <MediaFile delivery="streaming" width="640" height="360" type="application/x-mpegURL" bitrate="262" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8]]></MediaFile>
                            <MediaFile delivery="streaming" width="2560" height="1440" type="application/x-mpegURL" bitrate="1066" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_high.m3u8]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
        </InLine>
    </Ad>
</VAST>
```

### 広告マニフェストの要件
<a name="precondition-ads-req-ads"></a>

前提条件付き広告を使用するには、親広告マニフェストと子広告マニフェストが次の要件を満たしている必要があります。
+ VAST レスポンスの `Creative`セクションにリンクされているマニフェストは、親広告マニフェストである必要があります。
+ 子広告マニフェストURLs は相対パスである必要があります。
+ 子広告マニフェストは、親マルチバリアントプレイリストと同じディレクトリに同じレベルで存在する必要があります。子マニフェストをサブディレクトリやその他の場所に配置することはできません。

**Example サポートされている親多変量プレイリスト**  
次の親広告マルチバリアントプレイリストには、子広告メディアプレイリストの相対 URLs が含まれています。子プレイリストも親マルチバリアントプレイリストと同じディレクトリにあります。  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
index_3.m3u8
```

**Example サポートされていない親マルチバリアントプレイリスト: サブディレクトリ**  
次の親広告多変量プレイリストには、親多変量プレイリストに関連するサブディレクトリにある子プレイリストが含まれています。これは、前提条件付き広告でサポートされているプレイリストではありません。  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
child/index_3.m3u8
```

**Example サポートされていない親多変量プレイリスト: URLs**  
次の親広告マルチバリアントプレイリストには、絶対 URLs を持つ子プレイリストが含まれています。これは、前提条件付き広告でサポートされているプレイリストではありません。  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_3.m3u8
```

## 前提条件付き広告ワークフロー
<a name="precondition-ads-setup"></a>

以下は、MediaTailor での広告ステッチングワークフローにおける前提条件付き広告の仕組みの基本的な説明です。ワークフローの最初の部分は、前提条件付き広告を使用するようにセットアップするために実行する必要があるアクションです。2 番目のパートでは、MediaTailor が広告を処理する方法について説明します。

**パート 1: 前提条件付き広告のセットアップ**  
MediaTailor で前提条件付き広告を使用するワークフローを設定するには、次のステップを実行します。

1. などのトランスコーダーサービスを使用して、テンプレートマニフェストのさまざまなビットレート、解像度、コーデックをサポートするバリアントにクリエイティブを AWS Elemental MediaConvert条件付けします。

1. VAST レスポンスで使用するため、事前にトランスコードされたメディアファイルの URLs を ADS に提供します。

1. MediaTailor [で再生設定を作成します](configurations-create.md)。事前条件付き広告を使用するには、設定のストリーミングメディアファイルの条件設定で**「なし**」を選択します。 ****

1. 通常どおり、コンテンツ配信のセットアップを続行します。

**パート 2: MediaTailor 広告処理**  
MediaTailor の広告ステッチングは、「」の説明に従って完了します[MediaTailor 広告挿入の仕組み](what-is-flow.md)。MediaTailor は、ADS から VAST レスポンスを受信すると、次のロジックを使用して、広告に対して実行するアクションを決定します。このロジックは、再生設定の**ストリーミングメディアファイルの条件**設定によって決まります。
+ **ストリーミングメディアファイルのコンディショニング**が **Transcode** に設定されている場合、MediaTailor はメディアファイルを`progressive`配信でトランスコードし、マニフェストにステッチします。`progressive` 配信メディアファイルを含む十分な広告がない場合、MediaTailor はそれらをトランスコードして`streaming`配信に使用します。
+ **ストリーミングメディアファイルのコンディショニング**を **None** に設定すると、MediaTailor は`streaming`、配信メディアファイルをトランスコードせずにマニフェストに広告をステッチします。`streaming` 配信メディアファイルを含む十分な広告がない場合、MediaTailor はそれらをトランスコードして`progressive`配信に使用します。

# ADS リクエストの MediaTailor 動的広告変数
<a name="variables"></a>

AWS Elemental MediaTailor は動的広告変数を使用して、表示セッションから広告決定サーバー (ADS) に情報を渡します。この情報は、ADS がビューワーに最も関連性の高い広告を選択するのに役立ちます。

このセクションでは、動的広告変数の概要と、特定の実装ガイドへのリンクについて説明します。step-by-stepの設定手順については、以下の個々のトピックを参照してください。

**動的変数タイプ**  
MediaTailor は、次の 4 種類の動的変数をサポートしています。
+ **セッション変数** – セッション ID や SCTE-35 データなど、自動的に生成された値。「[ADS リクエストの MediaTailor セッション変数](variables-session.md)」を参照してください。
+ **プレイヤー変数** – ビデオプレイヤーによって送信されるカスタムパラメータ。「[ADS リクエストの MediaTailor プレイヤー変数](variables-player.md)」を参照してください。
+ **設定エイリアス**を持つ**ドメイン変数** – マルチオリジン設定の動的 URL ドメイン。
+ **設定エイリアス** – 動的変数置換の事前定義されたマッピング。「[設定エイリアス](configuration-aliases-overview.md)」を参照してください。

**一般的なユースケース**  
動的広告変数を使用して以下を行います。
+ ビューワーの属性と設定を ADS に渡す
+ 地理的位置に基づいて異なるオリジンにリクエストをルーティングする
+ MediaPackage 統合でタイムシフト表示を有効にする
+ A/B テストとフェイルオーバーのシナリオを実装する

以下のセクションでは、MediaTailor での動的広告変数の使用について詳しく説明します。

**Topics**
+ [セッション変数](variables-session.md)
+ [プレイヤー変数](variables-player.md)
+ [ドメイン変数](variables-domains.md)
+ [設定エイリアス](configuration-aliases-overview.md)
+ [ADS パラメータを渡す](passing-paramters-to-the-ads.md)
+ [パラメータルーティング](parameter-routing-behavior.md)
+ [MediaPackage の統合](mediapackage-integration-param.md)
+ [セッションの動作](parameter-session-behavior.md)
+ [パラメータリファレンス](parameter-comprehensive-reference.md)
+ [パラメータのトラブルシューティング](parameter-troubleshooting.md)
+ [エイリアスのトラブルシューティング](configuration-aliases-troubleshooting.md)

パラメータのフォーマット要件とトラブルシューティングについては、[MediaTailor パラメータのリファレンスと制限事項](parameter-comprehensive-reference.md)「」および「」を参照してください[MediaTailor パラメータのトラブルシューティングガイド](parameter-troubleshooting.md)。

# ADS リクエストの MediaTailor セッション変数
<a name="variables-session"></a>

AWS Elemental MediaTailor テンプレート ADS URL のこのセクションに記載されている 1 つ以上の変数を指定する AWS Elemental MediaTailor ように を設定すると、 はセッションデータを広告決定サーバー (ADS) に送信します。個々の変数を使用する、および複数の変数を連結して単一の値を作成することが可能です。MediaTailor は一部の値を生成し、マニフェスト、およびプレイヤーのセッション開始リクエストといったソースから残りの値を取得します。

次の表は、テンプレート ADS リクエスト URL 設定で使用できるセッションデータ変数を示しています。表に記載されているセクション番号は、米国ケーブル電気通信技術者協会 (SCTE)-35 仕様の 2019 年版、[デジタルプログラム挿入キューイングメッセージに対応しています。広告プリフェッチの詳細については、](https://account.scte.org/standards/library/catalog/scte-35-digital-program-insertion-cueing-message/)「」を参照してください[広告のプリフェッチ](prefetching-ads.md)。


| 名前 | 広告プリフェッチに使用可能 | SCTE-35 仕様セクション | [Description] (説明) | 
| --- | --- | --- | --- | 
| [avail.index] | はい |  | インデックス内の広告表示の位置を表す数値。再生セッションの開始時に、MediaTailor はマニフェスト内のすべての ad avail のインデックスを作成し、セッションが継続する間そのインデックスを保存します。MediaTailor が avail を埋めるために ADS に対してリクエストを行うときは、そのリクエストに ad avail インデックス番号を含めます。このパラメータにより、ADS は、競合相手の除外や頻度の上限設定などの機能を使用して広告の選択を改良できます。 | 
| [avail.random] | はい |  | MediaTailor が ADS へのリクエストごとに生成する 0～10,000,000,000 の乱数。競合する会社から広告を切り離すなどの機能を有効にするために、このパラメータを使用する広告サーバーもあります。 | 
| [scte.archive\$1allowed\$1flag] | はい | 10.3.3.1 | オプションのブール値。この値が 0 の場合、記録制限はセグメントでアサートされます。この値が 1 の場合、記録の制限はセグメントでアサートされません。 | 
| [scte.avail\$1num] | はい | 9.7.2.1 | 長い数値としてavail\$1num、SCTE-35 フィールド から MediaTailor によって解析された値。MediaTailor はこの値を使用して、リニア ad avail 番号を指定できます。値は整数である必要があります。 | 
| [scte.avails\$1expected] | はい | 9,7.2.1 | 現在のイベント内の予想可用性数を指定するオプションのロング値。 | 
| [scte.delivery\$1not\$1restricted\$1flag] | はい | 10.3.3.1 | オプションのブール値。この値が 0 の場合、次の 5 ビットが予約されます。この値が 1 の場合、SCTE-35 仕様で説明されているように、次の 5 ビットが意味を持ちます。 | 
| [scte.device\$1restrictions] | はい | 10.3.3.1 | デバイスの 3 つの事前定義された独立した非階層グループにシグナルを送信するオプションの整数値。この変数の詳細については、SCTE-35 仕様の segments\$1expected の説明を参照してください。 | 
| [scte.event\$1id] | はい | 9.1 および 9.7.2.1 | 長い数値としてsplice\$1event\$1id、SCTE-35 フィールド から MediaTailor によって解析された値。MediaTailor はこの値を使用して、リニア ad avail 番号の指定や、広告ポッドの位置などの広告サーバークエリ文字列の入力を行います。値は整数である必要があります。 | 
| [scte.no\$1regional\$1blackout\$1flag] | はい | 10.3.3.1 | オプションのブール値。この値が 0 の場合、リージョンのブラックアウト制限がセグメントに適用されます。この値が 1 の場合、リージョンのブラックアウト制限はセグメントには適用されません。 | 
| [scte.segment\$1num] | はい | 10.3.3.1 | セグメントのコレクション内のセグメントに番号を付けるオプションの整数値。この変数の詳細については、SCTE-35 仕様の segment\$1num の説明を参照してください。 | 
| [scte.segmentation\$1event\$1id]  | はい | 10.3.3.1 | MediaTailor はこの変数を として公開します[scte.event_id](#scte.event_id)。 | 
| [scte.segmentation\$1type\$1id] | はい | 10.3.3.1 | セグメンテーションタイプを指定するオプションの 8 ビット整数値。この変数の詳細については、SCTE-35 仕様の segmentation\$1type\$1id の説明を参照してください。 | 
| [scte.segmentation\$1upid] |  `segmentation_upid_type`: はい `private_data`: はい  |  **segmentation\$1upid**: 10.3.3.1 マネージドプライベート UPID: 10.3.3.3  |  SCTE-35 `segmentation_upid`要素に対応します。`segmentation_upid` 要素には、`segmentation_upid_type` と `segmentation_upid_length` が含まれます。 MediaTailor は以下の `segmentation_upid` タイプをサポートします。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/variables-session.html)  | 
| [scte.segmentation\$1upid.assetId] | はい |  | ポッドバスターワークフローsegmentation\$1 upid\$1type用の Managed Private UPID (0xC) と組み合わせて使用します。MediaTailor は、この値を MPU の private\$1data JSON 構造内の assetId パラメータから取得します。詳細については、「[Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow)」を参照してください。 | 
| [scte.segmentation\$1upid.cueData.key] | はい |  | ポッドバスターワークフローsegmentation\$1 upid\$1type用の Managed Private UPID (0xC) と組み合わせて使用します。MediaTailor は、この値を MPU の private\$1data JSON 構造内の cueData.key パラメータから取得します。詳細については、「[Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow)」を参照してください。 | 
| [scte.segmentation\$1upid.cueData.value] | はい |  | ポッドバスターワークフローsegmentation\$1 upid\$1type用の Managed Private UPID (0xC) と組み合わせて使用します。MediaTailor は、この値を MPU の private\$1data JSON 構造内の cueData.key パラメータから取得します。詳細については、「[Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow)」を参照してください。値は文字列にすることができます。 | 
| [scte.segmentation\$1upid.private\$1data.\$1index\$1] | はい |  | ターゲットを絞った広告ワークフローsegmentation\$1upid\$1typeの Managed Private UPID (0xC) と組み合わせて使用します。MediaTailor は、コロン区切りのセグメンテーション UPID トークンを分割し、インデックス付きセッション変数を作成します。インデックスはコロン区切りリスト内の位置に対応し、最初のコロンの先頭の空白は無視されます。たとえば、 の場合`segmentation_upid = ":3213214:2313321/5:3943"`、次のようになります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/variables-session.html) 値は文字列にすることができます。 | 
| [scte.segments\$1expected] | はい | 10.3.3.1 | セグメントのコレクション内の個々のセグメントの予想数を指定するオプションの整数値。この変数の詳細については、SCTE-35 仕様の segments\$1expected の説明を参照してください。 | 
| [scte.sub\$1segment\$1num] | はい | 10.3.3.1 | サブセグメントのコレクション内の特定のサブセグメントを識別するオプションの整数値。この変数の詳細については、SCTE-35 仕様の sub\$1segment\$1num の説明を参照してください。 | 
| [scte.sub\$1segments\$1expected] | はい | 10.3.3.1 | サブセグメントのコレクション内の個々のサブセグメントの予想数を指定するオプションの整数値。この変数の詳細については、SCTE-35 仕様の sub\$1segments\$1expected の説明を参照してください。 | 
| [scte.unique\$1program\$1id] | はい | 9.7.2.1 | SCTE-35 splice\$1insertフィールド から MediaTailor によって解析された整数値unique\$1program\$1id。ADS は、一意のプログラムID (UPID) を使用して、ライブリニアストリームにプログラムレベルの広告ターゲティングを提供します。SCTE-35 コマンドがスプライス挿入ではない場合、MediaTailor はこれを空の値に設定します。値は整数である必要があります。 | 
| [session.avail\$1duration\$1ms] | はい |  |  広告可用性スロットのミリ秒単位の期間。デフォルト値は 300,000 ms です。次のように入力マニフェストから期間値 AWS Elemental MediaTailor を取得します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/variables-session.html)  | 
| [session.avail\$1duration\$1secs] | はい |  | 最も近い秒に丸められた、広告可用性スロットまたは広告表示の秒単位の期間。MediaTailor は、[session.avail\$1duration\$1ms] を判断するときと同じ方法でこの値を判断します。 | 
| [session.client\$1ip] | いいえ |  | MediaTailor リクエストの送信元のリモート IP アドレス。X-forwarded-for ヘッダーが設定されている場合、その値は MediaTailor が client\$1ip に使用する値です。 | 
| [session.id] | いいえ |  | 現在の再生セッションの一意の数値識別子。プレイヤーがセッションに対して行うリクエストにはすべて同じ ID が割り当てられるため、その ID は同一の視聴に対するリクエストを関連付けるための ADS フィールドに使用できます。 | 
| [session.referer] | いいえ |  | 通常、動画プレーヤーをホストしているページの URL。MediaTailor はこの変数を、プレイヤーが MediaTailor に対するリクエストで使用した Referer ヘッダーの値に設定します。プレイヤーがこのヘッダーを提供しない場合、MediaTailor は [session.referer] を空のままにしておきます。マニフェストエンドポイントの前にコンテンツ配信ネットワーク (CDN) またはプロキシを使用し、この変数を表示する場合は、ここでプレイヤーから正しいヘッダーをプロキシします。 | 
| [session.user\$1agent] | いいえ |  | MediaTailor がプレイヤーのセッション初期化リクエストから受け取ったUser-Agentヘッダー。マニフェストエンドポイントの前で CDN またはプロキシを使用している場合は、ここでプレイヤーからの正しいヘッダーをプロキシする必要があります。 | 
| [session.uuid] | いいえ |  |  の代わりに を使用します**[session.id]**。これは、以下のような現在の再生セッションの一意の識別子です。 <pre>e039fd39-09f0-46b2-aca9-9871cc116cde</pre>  | 
| [avail.source\$1content\$1time\$1epoch\$1ms] | いいえ |  |  HLS の場合、値は表示を開始したオリジンセグメントの PDT です。DASH の場合、値は `<Period>`を含む `<SupplementalProperty> urn:scte:dash:utc-time` の です`<EventStream>`。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/variables-session.html)  | 

**Example**  
ADS で一意のセッション識別子を付けて渡される `deviceSession` というクエリパラメータが必要な場合、 AWS Elemental MediaTailor のテンプレート ADS URL は以下のようになります。  

```
https://my.ads.server.com/path?deviceSession=[session.id]
```
AWS Elemental MediaTailor は、ストリームごとに一意の識別子を自動的に生成し、 の代わりに識別子を入力します`session.id`。識別子が `1234567` である場合、MediaTailor が ADS に対して行う最終リクエストは、以下のようになります。  

```
https://my.ads.server.com/path?deviceSession=1234567
```
ADS で複数のクエリパラメータを渡す必要がある場合、 のテンプレート ADS URL は次の AWS Elemental MediaTailor ようになります。  

```
https://my.ads.server.com/sample?e=[scte.avails_expected]&f=[scte.segment_num]&g=[scte.segments_expected]&h=[scte.sub_segment_num]&j=[scte.sub_segments_expected]&k=[scte.segmentation_type_id]
```
次の DASH マーカーの XML フラグメントの例は、 の使用方法を示しています`scte35:SpliceInsert`。  

```
<Period start="PT444806.040S" id="123456" 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="1234567890" 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>
```
次の DASH マーカーの XML フラグメントの例は、 の使用方法を示しています`scte35:TimeSignal`。  

```
<Period start="PT346530.250S" id="123456" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1234567" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
```
次の DASH マーカーの XML フラグメントの例は、 の使用方法を示しています`scte35:Binary`。  

```
<Period start="PT444806.040S" id="123456" duration="PT15.000S">
  <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
    <Event presentationTime="1541436240" duration="24" id="29">
      <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
        <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</Binary>
      </scte35:Signal>
    </Event>
    <Event presentationTime="1541436360" duration="24" id="30">
      <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
        <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</Binary>
      </scte35:Signal>
    </Event>
```
次の HLS タグの例は、 の使用方法を示しています`EXT-X-DATERANGE`。  

```
#EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11:
15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0
00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50
000008700000000
```
次の HLS タグの例は、 の使用方法を示しています`EXT-X-CUE-OUT`。  

```
#EXT-OATCLS-SCTE35:/DA0AAAAAAAAAAAABQb+ADAQ6QAeAhxDVUVJQAAAO3/PAAEUrEoICAAAAAAg+2UBNAAANvrtoQ==  
#EXT-X-ASSET:CAID=0x0000000020FB6501  
#EXT-X-CUE-OUT:201.467
```
次の HLS タグの例は、 の使用方法を示しています`EXT-X-SPLICEPOINT-SCTE35`。  

```
#EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
```
次の例は、`scte35:Binary`デコードの使用方法を示しています。  

```
{
  "table_id": 252,
  "section_syntax_indicator": false,
  "private_indicator": false,
  "section_length": 33,
  "protocol_version": 0,
  "encrypted_packet": false,
  "encryption_algorithm": 0,
  "pts_adjustment": 0,
  "cw_index": 0,
  "tier": "0xFFF",
  "splice_command_length": 16,
  "splice_command_type": 5,
  "splice_command": {
    "splice_event_id": 448,
    "splice_event_cancel_indicator": false,
    "out_of_network_indicator": true,
    "program_splice_flag": true,
    "duration_flag": true,
    "splice_immediate_flag": false,
    "utc_splice_time": {
      "time_specified_flag": false,
      "pts_time": null
    },
    "component_count": 0,
    "components": null,
    "break_duration": {
      "auto_return": false,
      "duration": {
        "pts_time": 2160000,
        "wall_clock_seconds": 24.0,
        "wall_clock_time": "00:00:24:00000"
      }
    },
    "unique_program_id": 49152,
    "avail_num": 0,
    "avails_expected": 0
    "segment_num": 0,
    "segments_expected": 0,
    "sub_segment_num": 0,
    "sub_segments_expected": 0
  },
  "splice_descriptor_loop_length": 0,
  "splice_descriptors": null,
  "Scte35Exception": {
    "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
    "error_messages": [],
    "table_id": 252,
    "splice_command_type": 5
  }
}
```

# ADS リクエストの MediaTailor プレイヤー変数
<a name="variables-player"></a>

AWS Elemental MediaTailor テンプレート ADS URL で`player_params.<query_parameter_name>`変数を指定する AWS Elemental MediaTailor ように を設定すると、 はプレイヤーから受信したデータを ADS に送信します。例えば、プレイヤーが MediaTailor に対するリクエストで `user_id` という名前のクエリパラメータを送信する場合、ADS リクエストでそのデータを渡すには、ADS URL 設定に `[player_params.user_id]` を含めます。

これにより、ADS リクエストに含まれるクエリパラメータを制御できます。通常、ADS が認識する特殊なクエリパラメータを ADS リクエスト URL に追加し、そのパラメータの値としてキーと値のペアを指定します。

この後の手順で使用されている例では、以下のキーと値のペアを使用しています。
+ *param1* と値 *value1:*
+ *param2* と値 *value2:*

**クエリパラメータをキーバリューペアとして追加する** 

1. で AWS Elemental MediaTailor、パラメータを参照するように ADS リクエストテンプレート URL を設定します。以下の URL では、サンプルパラメータが含まれていることがわかります。

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

1. (オプション) サーバー側の広告追跡レポートの場合は、プレイヤーのキーバリューペアを URL でエンコードします。MediaTailor がセッション開始リクエストを受信すると、値を URL で 1 回エンコードしてから、それらを ADS リクエスト URL に代入します。
**注記**  
ADS が URL でエンコードされた値を必要とする場合は、プレイヤーでこの値を 2 回 URL エンコードします。そうすることで、MediaTailor によって行われたデコードから、ADS のために 1 回エンコードされた値が得られます。

   例えば、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 はプレイヤーリクエストを受信したときにパラメータをデコードします。クライアント側のレポートの場合、MediaTailor は JSON ペイロードで受信したパラメータを変更しません。MediaTailor は以下のリクエストを ADS に送信します。

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

そうすることで、`param1` と `param2` のキーバリューペアが第 1 クラスのクエリパラメータとして ADS リクエストに含まれます。

# 複数のコンテンツソースの MediaTailor ドメイン変数
<a name="variables-domains"></a>

AWS Elemental MediaTailor 動的ドメイン変数を使用すると、URL **my-ads-server.com** の http://my-ads-server.com 部分など、設定内のプレイヤーパラメータで複数のドメインを使用できます。これにより、単一の設定内で複数のコンテンツソースまたは広告決定サーバー (ADS) を使用することが可能になります。

 ドメイン変数は、URI が含まれる任意のパラメータで使用できます。
+ `AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `LivePreroll.AdDecisionServerUrl`
+ `VideoContentSourceUrl`

 ドメイン変数は、動的変数置換を実行するために、*設定のエイリアス*と共に使用されます。設定エイリアスは、動的ドメイン設定に使用されるプレイヤーパラメータに一連のエイリアスと値をマップします。セットアップ手順については、「」を参照してください[MediaTailor での設定エイリアスの作成と使用](creating-configuration-aliases.md)。詳細なリファレンス情報については、「」を参照してください[MediaTailor 設定エイリアスの概要](configuration-aliases-overview.md)。

# MediaTailor 設定エイリアスの概要
<a name="configuration-aliases-overview"></a>

AWS Elemental MediaTailor 設定エイリアスは、URL ドメインやその他のサポートされているフィールドで動的変数置換を有効にします。この機能を使用して、複数のドメインを使用し、セッションの初期化中に URLs動的に設定します。

## ユースケース
<a name="configuration-aliases-use-cases"></a>

設定エイリアスは、以下のシナリオで高度なマルチ設定アーキテクチャを有効にします。
+ **地理的ルーティング:** リージョン固有のエイリアスを使用して、ビューワーの場所に基づいて異なるオリジンまたは広告サーバーにリクエストをルーティングします。実装ガイダンスについては、[CloudFront オリジンフェイルオーバー](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html)」を参照してください。
+ **コンテンツベースのルーティング:** さまざまなコンテンツタイプを特殊なオリジンまたは処理パイプラインに向けます。ルーティング動作の設定については、「」を参照してください[MediaTailor の CDN ルーティング動作を設定する](cdn-routing-behaviors.md)。
+ **フェイルオーバーシナリオ:** エイリアス切り替えを使用して、自動フェイルオーバーでバックアップオリジンと広告サーバーを実装します。詳細な実装については、[MQAR を使用して MediaTailor のマルチリージョンレジリエンスを実装する](media-quality-resiliency.md)「」および「」を参照してください[の CDN 統合を計画する AWS Elemental MediaTailor](planning-cdn-integration.md)。
+ **A/B テスト:** プレイヤーパラメータに基づいてトラフィックをルーティングすることで、さまざまな広告サーバー、オリジン、または設定をテストします。負荷テストのガイダンスについては、[「実際のユーザーモニタリングを使用した Amazon CloudFront のパフォーマンステストの準備と実行](https://aws.amazon.com/blogs/networking-and-content-delivery/prepare-and-run-performance-tests-for-amazon-cloudfront-with-real-user-monitoring/)」を参照してください。
+ **デバイス固有の最適化:** さまざまなデバイスタイプや機能に合わせてコンテンツ配信と広告配信を最適化します。包括的なガイダンスについては、「」を参照してください[MediaTailor、MediaPackage、CDN でマニフェストフィルタリングを設定する](cdn-emp-manifest-filtering.md)。
+ **ロードバランシング:** 動的ルーティングを使用して、複数のオリジンまたは広告サーバーに負荷を分散します。実装ガイダンスについては、[MQAR を使用して MediaTailor のマルチリージョンレジリエンスを実装する](media-quality-resiliency.md)「」および「」を参照してください[の CDN 統合を計画する AWS Elemental MediaTailor](planning-cdn-integration.md)。

## サポートされているフィールド
<a name="configuration-aliases-supported"></a>

動的変数は、次の設定フィールドで使用できます。
+ `VideoContentSourceUrl`
+ `AdDecisionServerUrl`
+ `LivePreroll.AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `TranscodeProfileName`
+ `SlateAdUrl`
+ `StartUrl`
+ `EndUrl`

以下のセクションでは、設定エイリアスを使用する方法について説明します。

**Topics**
+ [ユースケース](#configuration-aliases-use-cases)
+ [サポートされているフィールド](#configuration-aliases-supported)
+ [の作成と使用](creating-configuration-aliases.md)
+ [フローの例](configuration-aliases-examples.md)

# MediaTailor での設定エイリアスの作成と使用
<a name="creating-configuration-aliases"></a>

ドメイン変数の使用を開始する前に、設定のための設定エイリアスを作成します。設定エイリアスは、セッション開始時のドメイン置換変数として使用します。

**制限事項**  
設定エイリアスの使用時は、以下の制限に注意してください。
+ ドメインで使用される動的変数は、すべて `ConfigurationAliases` 動的変数として定義される必要があります。
+ プレイヤーパラメータ変数の前に `player_params.` を付ける必要があります。例えば、`player_params.origin_domain` などです。
+ エイリアスされた値のリストは、重要な URLs のドメイン変数 (`VideoContentSourceUrl`、`AdSegmentUrlPrefix`、) に対して包括的である必要があります`ContentSegmentUrlPrefix`。
+ 動的変数を指定しないか、無効なエイリアスを使用する重要な URLs のドメイン変数に対してリクエストが行われた場合、リクエストは HTTP `400`ステータスコードで失敗します。重要でないフィールド (`SlateAdUrl`、、バンパー URLs) は警告をログに記録しますが`TranscodeProfileName`、リクエストは失敗しません。

**欠落しているエイリアスのフォールバック動作**  
設定エイリアスが見つからないか無効である場合、MediaTailor は次のフォールバック動作を実装します。
+ **ドメイン変数:** ドメイン変数エイリアスがないか無効の場合、リクエストは HTTP 400 ステータスコードで失敗します。すべてのドメイン変数には、有効なエイリアスが定義されている必要があります。
+ **非ドメイン変数:** URLs の非ドメイン部分 (パス要素やクエリパラメータなど) で使用される変数の場合、エイリアスがないと空の文字列置換になります。
+ **設定の検証:** MediaTailor は、設定の作成および更新オペレーション中にすべての必要なエイリアスが存在することを検証します。

## ステップ 1: 設定エイリアスを作成する
<a name="dynamic-domains-creating-configuration-alias"></a>

MediaTailor コンソールを使用してドメイン置換に使用する設定エイリアスを作成するには、以下の手順を実行します。

------
#### [ Console ]

**コンソールを使用して設定エイリアスを作成する**

1. MediaTailor コンソール ([https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)) を開きます。

1. **[Configurations]** (設定) ページの **[Configuration aliases]** (設定エイリアス) ページで、**[Add player parameter]** (プレイヤーパラメータを追加) をクリックします。

1. **Player パラメータ**には、動的変数として使用するプレイヤーパラメータの名前を入力します。例えば、`player_params.origin_domain`。

1. **エイリアス**には、プレイヤーパラメータに使用するエイリアスとその値を入力します。

1. [**OK**] を選択してください。

   AWS Elemental MediaTailor は、**設定エイリアス**セクションのテーブルに新しいパラメータを表示します。

1. 上記のステップを繰り返して、プレイヤーパラメータを追加します。

1. **[保存]** を選択します。

------
#### [ API ]

**API を使用して設定エイリアスを作成するには**  
MediaTailor 設定を作成または更新するときは、次の JSON 構造で `ConfigurationAliases`パラメータを使用します。

```
{
                "ConfigurationAliases": {
                "player_params.origin_domain": {
                "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
                "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
                },
                "player_params.ad_type": {
                "customized": "abc12345",
                "default": "defaultAdType"
                }
                }
                }
```

------

## ステップ 2: セッション初期化で設定エイリアスを使用する
<a name="dynamic-domains-using-configuration-alias"></a>

設定エイリアスをセットアップしたら、セッション開始リクエスト内のドメイン用の置換変数としてそれらを使用できます。これは、セッションのドメインを動的に設定することを可能にします。

**Example 基本設定エイリアスの例**  
設定エイリアスと動的ドメイン変数を含む設定の基本的な例を次に示します。  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        }
    }
}
```

**Example エイリアスによるセッションの初期化**  
上記の設定を使用すると、プレイヤー変数とエイリアスを使用したセッション初期化リクエストは次のようになります。  

```
POST index.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx",
        "endpoint_id": "pdx",
        "ad_type": "customized"
    }
}
```
MediaTailor は、エイリアス文字列を、設定エイリアスの設定内のマップされた値に置き換えます。  
ADS へのリクエストは次のようになります。  

```
https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
```
マニフェストのオリジンへのリクエストは次のようになります。  

```
https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
```

# MediaTailor を使用した設定エイリアスの使用例
<a name="configuration-aliases-examples"></a>

次の例は、設定エイリアスを含む完全な MediaTailor 設定、エイリアスを含むセッション初期化リクエスト、およびエイリアスの処理フローを示しています。

**Example エイリアスを使用して設定を完了する**  
次の例は、設定エイリアスと動的ドメイン変数を含む完全な設定を示しています。  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    
    "AdSegmentUrlPrefix": "https://[player_params.ad_cdn_domain]/ads/",
    "ContentSegmentUrlPrefix": "https://[player_params.content_cdn_domain]/content/",
    "TranscodeProfileName": "[player_params.transcode_profile]",
    "SlateAdUrl": "https://[player_params.slate_domain]/slate/[player_params.slate_type].mp4",
    "StartUrl": "https://[player_params.tracking_domain]/start?session=[session.id]",
    "EndUrl": "https://[player_params.tracking_domain]/end?session=[session.id]",
    
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        },
        "player_params.ad_cdn_domain": {
            "pdx": "ads-west.cdn.example.com",
            "iad": "ads-east.cdn.example.com"
        },
        "player_params.content_cdn_domain": {
            "pdx": "content-west.cdn.example.com",
            "iad": "content-east.cdn.example.com"
        },
        "player_params.transcode_profile": {
            "mobile": "mobile_optimized",
            "desktop": "high_quality",
            "tv": "4k_profile"
        },
        "player_params.slate_domain": {
            "pdx": "slate-west.example.com",
            "iad": "slate-east.example.com"
        },
        "player_params.slate_type": {
            "standard": "default_slate",
            "branded": "brand_slate"
        },
        "player_params.tracking_domain": {
            "pdx": "tracking-west.example.com",
            "iad": "tracking-east.example.com"
        }
    }
}
```

**Example エイリアスによるセッションの初期化**  
次の例は、プレイヤー変数とエイリアスを指定するセッション初期化リクエストを示しています。  

```
POST master.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx", 
        "endpoint_id": "pdx",
        "ad_type": "customized",
        "ad_cdn_domain": "pdx",
        "content_cdn_domain": "pdx",
        "transcode_profile": "mobile",
        "slate_domain": "pdx",
        "slate_type": "branded",
        "tracking_domain": "pdx"
    }
}
```

**Example パラメータ処理フロー**  
次の例では、MediaTailor はエイリアス文字列を設定エイリアスのマッピングされた値に置き換えます。処理の結果、次のリクエストが発生します。  
+ ADS リクエスト:

  ```
  https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
  ```
+ VideoContentSource リクエスト:

  ```
  https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
  ```
+ AdSegmentUrlPrefix:

  ```
  https://ads-west.cdn.example.com/ads/
  ```
+ ContentSegmentUrlPrefix:

  ```
  https://content-west.cdn.example.com/content/
  ```
+ TranscodeProfileName:

  ```
  mobile_optimized
  ```
+ SlateAdUrl:

  ```
  https://slate-west.example.com/slate/brand_slate.mp4
  ```
+ StartUrl:

  ```
  https://tracking-west.example.com/start?session=[session.id]
  ```
+ EndUrl:

  ```
  https://tracking-west.example.com/end?session=[session.id]
  ```

# MediaTailor が ADS にパラメータを渡す
<a name="passing-paramters-to-the-ads"></a>

AWS Elemental MediaTailor は、次の手順を使用して ADS への MediaTailor リクエストで動的変数の設定をサポートします。
+ クエリパラメータでサポートされているフォーマットについては、「」を参照してください[MediaTailor パラメータのリファレンスと制限事項](parameter-comprehensive-reference.md)。
+ 設定エイリアスとドメイン変数については、「」を参照してください[MediaTailor 設定エイリアスの概要](configuration-aliases-overview.md)。
+ ADS リクエストのその他のカスタマイズについては、「」を参照してください[高度な使用法](#variables-advanced-usage)。

**セッションの初期化方法**  
MediaTailor は、セッションの初期化とパラメータの受け渡しに複数の方法をサポートしています。

1. **リクエスト本文を含む POST:**

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

1. **URL のクエリパラメータ:**

   ```
   GET <master>.m3u8?ads.param1=value1&ads.param2=value2&playerParams.param3=value3
   ```

**重要**  
初期化時に指定できるパラメータは 1 回のみです。設定エイリアスは、転送前に実際の値に解決されます。

**セッションとプレイヤーの情報を ADS に渡す**

1. ADS と連携して、広告クエリに応答するために必要な情報を決定します AWS Elemental MediaTailor。

1. MediaTailor で、ADS 要件を満たすテンプレート ADS リクエスト URL を使用する設定を作成します。URL に、静的パラメータを含め、動的パラメータのプレースホルダーを含めます。設定の [**Ad decision server (広告決定サーバー)**] フィールドにテンプレートの URL を入力します。

   以下のテンプレート URL の例では、`correlation` からセッションデータが渡され、`deviceType` からプレイヤーデータが渡されます。

   ```
   https://my.ads.server.com/path?correlation=[session.id]&deviceType=[player_params.deviceType]
   ```

1. プレーヤーで、プレーヤーデータのパラメータを渡すように AWS Elemental MediaTailor のセッション開始リクエストを設定します。セッション開始リクエストにお客様のパラメータを含め、セッションに対する後続のリクエストからそれらのパラメータを省きます。

   プレイヤーがセッションを開始するために行う呼び出しのタイプによって、プレイヤー (クライアント) または MediaTailor (サーバー) のどちらがセッションの広告追跡レポートを提供するかが決まります。これらの 2 つのオプションについては、「[広告追跡データの報告](ad-reporting.md)」を参照してください。

   サーバー側とクライアント側のどちらの広告追跡レポートが必要かどうかに応じて、以下のいずれかのタイプの呼び出しを行います。どちらの例の呼び出しでも、`userID` は ADS を対象とし、`auth_token` はオリジンを対象としています。
   + (オプション) サーバー側の広告追跡レポートの呼び出し - MediaTailor が ADS に送信するパラメータの前に `ads` を付けます。MediaTailor がオリジンサーバーに送信するパラメータの前には何も付けません。

     次の例は、 への HLS および DASH の受信リクエストを示しています AWS Elemental MediaTailor。MediaTailor は、ADS に対するリクエストでは `deviceType`、オリジンサーバーに対するリクエストでは `auth_token` を使用します。

     HLS の例:

     ```
     GET master.m3u8?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```

     DASH の例:

     ```
     GET manifest.mpd?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```
   + (オプション) クライアント側の広告追跡レポートの呼び出し - `adsParams` オブジェクト内の ADS のパラメータを提供します。

     HLS の例:

     ```
     POST master.m3u8
         {
             "adsParams": {
                "deviceType": "ipad"
            }
         }
     ```

     DASH の例:

     ```
     POST manifest.mpd
         {
             "adsParams": {
                "deviceType": "ipad"
            }
         }
     ```

プレイヤーがセッションを開始すると、 はテンプレート ADS リクエスト URL の変数をセッションデータとプレイヤーの`ads`パラメータ AWS Elemental MediaTailor に置き換えます。プレイヤーからの残りのパラメータは、オリジンサーバーに渡されます。

**Example 広告変数を使用した MediaTailor リクエスト**  
以下の例では、前のプレーヤーのセッション開始呼び出しの例に対応する、 AWS Elemental MediaTailor から ADS とオリジンサーバーへの呼び出しを示しています。  
+ MediaTailor は、セッションデータとプレイヤーのデバイスタイプを使用して ADS を呼び出します。

  ```
  https://my.ads.server.com/path?correlation=896976764&deviceType=ipad
  ```
+ MediaTailor は、プレイヤーの認可トークンを使用してオリジンサーバーを呼び出します。
  + HLS の例:

    ```
    https://my.origin.server.com/master.m3u8?auth_token=kjhdsaf7gh
    ```
  + DASH の例:

    ```
    https://my.origin.server.com/manifest.mpd?auth_token=kjhdsaf7gh
    ```

## 高度な使用法
<a name="variables-advanced-usage"></a>

プレイヤーとセッションのデータを使用して、さまざまな方法で ADS リクエストをカスタマイズできます。ADS ホスト名のみを含める必要があります。

以下の例では、リクエストをカスタマイズできるいくつかの方法を示しています。
+ プレイヤーパラメータとセッションパラメータを連結して新しいパラメータを作成します。例: 

  ```
  https://my.ads.com?key1=[player_params.value1][session.id]
  ```
+ パス要素の一部としてプレイヤーパラメータを使用します。例:

  ```
  https://my.ads.com/[player_params.path]?key=value
  ```
+ プレイヤーパラメータを使用して、値だけではなくパス要素とキー自体の両方を渡します。例: 

  ```
  https://my.ads.com/[player_params.path]?[player_params.key1]=[player_params.value1]
  ```

# ADS およびオリジンの MediaTailor パラメータルーティング
<a name="parameter-routing-behavior"></a>

AWS Elemental MediaTailor は、プレフィックスと目的に基づいてクエリパラメータをさまざまな宛先にルーティングします。MediaPackage でのタイムシフト表示などのオリジン固有の機能を実装するには、パラメータルーティングを理解することが重要です。

**パラメータルーティングルール**  
MediaTailor は、クエリパラメータに次のルーティングルールを使用します。
+ **オリジンパラメータ (プレフィックスなし):** 特定のプレフィックスのないパラメータは、オリジン固有の機能のためにオリジンサーバーに渡されます。
+ **ADS パラメータ (`ads.` プレフィックス):** プレフィックスが付いたパラメータ`ads.`が広告決定サーバーに送信されます
+ **マニフェストパラメータ (`manifest.` プレフィックス):** プレフィックス が付いたパラメータ`manifest.`が CDN ルーティングと認可に使用されます

**Example パラメータルーティングの例**  
次のセッション初期化は、パラメータルーティングを示しています。  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2"
    },
    "manifestParams": {
        "auth_token": "abc123"
    }
}
```
この例では、以下のようになっています：  
+ `param1` と `param2`は ADS に送信されます。
+ `auth_token` は CDN ルーティングと認可に使用されます
+ プレフィックスのないパラメータはオリジンサーバーに渡されます

## オリジンサーバーパラメータの動作
<a name="origin-parameter-behavior"></a>

オリジンサーバーに渡されるパラメータは、タイムシフト表示、コンテンツフィルタリング、認証などのオリジン固有の機能を有効にします。

**一般的なオリジンパラメータのユースケース**  
オリジンパラメータは一般的に以下に使用されます。
+ **タイムシフト表示:** MediaPackage タイムシフトコンテンツの `start`および `end`パラメータ
+ **コンテンツ認証:** オリジンサーバーに必要な認証トークン
+ **コンテンツフィルタリング:** 返されるコンテンツバリアントを制御するパラメータ
+ **オリジン固有の機能:** オリジンサーバーがコンテンツ処理に使用するパラメータ

**重要**  
パラメータはセッションの初期化時に処理され、セッション全体を通して維持されます。タイムシフトウィンドウなどのパラメータを変更するには、更新された値で新しいセッションを作成する必要があります。

# MediaTailor と MediaPackage のタイムシフト表示統合
<a name="mediapackage-integration-param"></a>

AWS Elemental MediaTailor は、タイムシフト表示パラメータを MediaPackage オリジンに渡し、スタートオーバーおよびキャッチアップ表示機能を有効にできます。この統合により、ビューワーは以前の時点からライブコンテンツの視聴を開始できます。

**MediaPackage のタイムシフト表示パラメータ**  
MediaPackage は、MediaTailor を介して渡すことができる次のタイムシフト表示パラメータをサポートしています。
+ `start`: タイムシフトされたマニフェストの先頭を定義するエポックまたは ISO 8601 タイムスタンプ
+ `end`: タイムシフトマニフェストの終了を定義するエポックまたは ISO 8601 タイムスタンプ
+ `time_delay`: 指定した秒数でコンテンツの可用性を遅らせる
+ `manifest_window_seconds`: 設定されたウィンドウより短いマニフェストをリクエストする

**Example MediaPackage のタイムシフトされたパラメータを使用した MediaTailor MediaTailor セッションの初期化**  
次の例は、タイムシフト表示パラメータを使用してセッションを初期化する方法を示しています。  

```
GET /v1/master/123456789/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```
または、明示的なセッション初期化を使用します。  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1"
    }
}
```
追加のクエリパラメータを使用する場合:  

```
?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**セッション中のパラメータ動作**  
タイムシフト表示パラメータには特定の動作特性があります。
+ **セッションの初期化:** セッションの作成時にパラメータが処理されます
+ **パラメータの永続性:** パラメータは再生中もセッションに関連付けられ続けます
+ **初期化後のイミュータブル:** アクティブなセッション中にパラメータを変更することはできません
+ **新しいセッションが必要:** タイムシフトウィンドウを変更するには、更新されたパラメータ値を使用して新しいセッションを作成します。

**MediaPackage のスタートオーバーウィンドウの要件**  
MediaPackage でタイムシフト表示を使用するには、以下を確認してください。

1. MediaPackage エンドポイントでスタートオーバーウィンドウを設定する (最大 24 時間)

1. CDN が必要なクエリパラメータを MediaPackage に転送することを確認する

1. CDN キャッシュを改善するために、プレイヤーセッション間で一貫した再生ウィンドウを使用する

1. 開始時刻と終了時刻が設定されたスタートオーバーウィンドウ内に収まることを確認する

**重要**  
タイムシフト表示を使用する場合は、各ビューワーに一意の開始時刻または終了時刻を生成するのではなく、プレイヤーセッション間で一貫した再生ウィンドウを使用します。これにより、CDN でのキャッシュが改善され、スロットリングの可能性を回避できます。

MediaPackage のタイムシフト表示設定とパラメータの詳細については、*AWS Elemental MediaPackage 「 ユーザーガイド*」の「 [でのタイムシフト表示 AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/time-shifted.html)」を参照してください。

# MediaTailor パラメータセッションの動作と永続性
<a name="parameter-session-behavior"></a>

AWS Elemental MediaTailor はセッションの初期化時にパラメータを処理し、セッションライフサイクルを通じてパラメータを維持します。動的パラメータシナリオを実装するには、セッションの動作を理解することが不可欠です。

**セッションの初期化方法**  
MediaTailor は、パラメータを使用してセッションを初期化するための複数の方法をサポートしています。

1. **暗黙的なセッション初期化:** 最初のマニフェストリクエストに含まれるパラメータ

   ```
   GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&start=2024-08-26T10:00:00Z
   ```

1. **明示的セッション初期化 (POST):** リクエスト本文で提供されるパラメータ

   ```
   POST /v1/session/123456789/originId/index.m3u8
   {
       "adsParams": {"param1": "value1"},
       "manifestParams": {"auth_token": "abc123"}
   }
   ```

1. **明示的セッション初期化 (GET):** クエリパラメータとして提供されるパラメータ

   ```
   GET /v1/session/123456789/originId/index.m3u8?ads.param1=value1&manifestParams.auth_token=abc123
   ```

**パラメータの永続性とイミュータビリティ**  
MediaTailor パラメータの動作は、次のルールに従います。
+ **1 回限りの仕様:** パラメータはセッションの初期化時に 1 回のみ指定できます
+ **セッション全体の永続性:** パラメータはセッション全体で維持されます
+ **初期化後にイミュータブル:** セッションの作成後にパラメータを変更することはできません
+ **設定エイリアス解決:** エイリアスは送信先に転送する前に実際の値に解決されます

**パラメータ変更シナリオ**  
再生中にパラメータを変更するには:
+ **新しいセッションを作成する:** 更新されたパラメータ値を使用して新しいセッションを初期化する
+ **プレイヤーの移行:** プレイヤーを新しいセッションにシームレスに移行する
+ **パラメータ継承:** 変更されていないパラメータを転送して整合性を維持する

**Example タイムシフトパラメータの変更**  
を 1 時間のウィンドウから 2 時間のウィンドウに変更するには:  

1. 現在のセッション: `start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z`

1. 新しいセッションを作成する: `start=2024-08-26T10:00:00Z&end=2024-08-26T12:00:00Z`

1. プレイヤーを新しいセッション URL に移行する

**重要**  
1 つのセッションに対する複数のマルチバリアントプレイリストリクエストは、最初のリクエストの後にパラメータを更新しません。パラメータはセッション期間中変更できません。

# MediaTailor パラメータのリファレンスと制限事項
<a name="parameter-comprehensive-reference"></a>

動的広告変数を設定する前に、すべての MediaTailor 設定に適用されるパラメータフォーマットの要件と制限を理解してください。

AWS Elemental MediaTailor は、マニフェストクエリパラメータと ADS パラメータの両方でパラメータ文字の制限、長さの制限、サポートされている形式に関する包括的な情報を提供します。

## マニフェストクエリパラメータの文字制限
<a name="manifest-parameter-character-restrictions"></a>

マニフェストクエリパラメータは特定の文字をサポートし、長さの制限が定義されています。

**サポートされている文字 (URL エンコードなし)**  
マニフェストクエリパラメータでは、次の文字を直接使用できます。
+ 英数字 (A～Z、a～z、0～9)
+ 期間 (.)
+ ハイフン (-)
+ アンダースコア (\$1)
+ バックスラッシュ (\$1)

**URL エンコードでサポートされている文字**  
URL エンコードでは、次の特殊文字がサポートされています。
+ 期間 (.) = %2E
+ ダッシュ (-) = %2D
+ アンダースコア (\$1) = %5F
+ パーセント (%) = %25
+ チルダ (\$1) = %7E
+ スラッシュ (/) = %2F
+ アスタリスク (\$1) = %2A
+ 等号 (=) = %3D
+ 質問 (?) = %3F

**URL エンコードのサポート**  
MediaTailor は、URL エンコード (hello%20world = hello world など) で使用すると、パーセント (%) 記号をサポートします。HTTP 仕様に従って有効な URL エンコードである限り、任意の URL エンコード文字を使用できます。

**サポートされていない文字**  
URL エンコードなしでマニフェストクエリパラメータに次の文字を使用することはできません: `:`、`?`、`&`、`=``%`、、 `/` (スラッシュ）。

**重要**  
MediaTailor は、%%% や == などの二重文字をサポートしていません。文字制限のため、マニフェストクエリパラメータ値として完全な URLs を使用することはできません。

**長さの制限**  
すべてのマニフェストクエリパラメータ (キーと値の組み合わせ) の合計長は 2000 文字を超えることはできません。

## ADS パラメータの長さの制限
<a name="ads-parameter-limitations"></a>

ADS へのリクエストで使用されるパラメータには、次の長さ制限が適用されます。
+ **ADS パラメータ名**: 最大 10,000 文字
+ **ADS パラメータ値**: 最大 25,000 文字
+ **ADS URL**: 最大 25,000 文字

# MediaTailor パラメータのトラブルシューティングガイド
<a name="parameter-troubleshooting"></a>

AWS Elemental MediaTailor は、文字制限、URL エンコードの問題、設定エイリアスエラーなど、MediaTailor の一般的なパラメータ関連の問題をトラブルシューティングするためのガイダンスを提供します。

## 文字制限エラー
<a name="parameter-character-restriction-errors"></a>

サポートされていない文字を含むパラメータ値は、エラーや予期しない動作を引き起こす可能性があります。

**一般的な症状**  
次の症状は、文字制限の問題を示している可能性があります。
+ マニフェスト URLsに表示されないパラメータ
+ セッションの初期化中の HTTP 400 エラー
+ 切り捨てられたパラメータ値または破損したパラメータ値
+ 不正な形式の URLs が原因で ADS リクエストが失敗する

**解決の手順**  
文字制限エラーを解決するには: 

1. サポートされていない文字のパラメータ値を確認する: `:`、`?`、`&`、`=`、`%`、 `/`

1. 特殊文字に適切な URL エンコードを適用する (「」を参照[MediaTailor パラメータのリファレンスと制限事項](parameter-comprehensive-reference.md))

1. `%%%` や などの二重文字は避けてください。 `==`

1. 完全な URLs 

**Example URL エンコードの例**  
以下を使用する代わりに、以下を使用します。  

```
manifest.redirect_url=https://example.com/path?param=value
```
URL エンコード形式を使用します。  

```
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
```

## 長さ制限エラー
<a name="parameter-length-limitation-errors"></a>

長さ制限を超えるパラメータは切り捨てられたり、エラーが発生する可能性があります。

**長さの制限**  
次の長さ制限が適用されます (詳細については[MediaTailor パラメータのリファレンスと制限事項](parameter-comprehensive-reference.md)、「」を参照してください）。
+ マニフェストクエリパラメータ (合計): 2000 文字
+ ADS パラメータ名: 10,000 文字
+ ADS パラメータ値: 25,000 文字
+ ADS URLs: 25,000 文字

**解決戦略**  
長さの制限を処理するには: 

1. 可能な場合は、より短いパラメータ名と値を使用する

1. 大きなパラメータ値を複数の小さなパラメータに分割する

1. 設定エイリアスを使用して短いエイリアスを長い値にマッピングする (「」を参照[MediaTailor 設定エイリアスの概要](configuration-aliases-overview.md))

1. パラメータリファレンスを含む大規模なデータには外部ストレージを使用することを検討する

## 設定エイリアスエラー
<a name="parameter-configuration-alias-errors"></a>

設定エイリアスの問題により、HTTP 400 エラーまたは予期しないパラメータ値が発生する可能性があります。

**一般的な設定エイリアスエラー**  
設定エイリアスでは、一般的に次のエラーが発生します。
+ HTTP 400 エラー: エイリアス値がないか、無効です
+ ドメイン変数が正しく解決されない
+ プレイヤーパラメータがエイリアス値に置き換えられていない

**解決策チェックリスト**  
設定エイリアスエラーを解決するには: 

1. すべてのドメイン変数が として定義されていることを確認します。 `ConfigurationAliases`

1. プレイヤーパラメータ変数が`player_params.`プレフィックスを使用していることを確認する

1. 重要な URLs のドメイン変数 (`VideoContentSourceUrl`、`AdSegmentUrlPrefix`、`ContentSegmentUrlPrefix`) のエイリアス化された値のリストが網羅的であることを確認します。

1. セッション初期化リクエストで有効なエイリアス値が指定されていることを確認します。

1. ConfigurationAliases パラメータの JSON 構造を検証する

トラブルシューティングの詳細なガイダンスについては、「」を参照してください[MediaTailor 設定エイリアスのトラブルシューティングガイド](configuration-aliases-troubleshooting.md)。

**Example 設定エイリアスの検証**  
設定に必要なエイリアスがすべて含まれていることを確認します。  

```
"ConfigurationAliases": {
    "player_params.origin_domain": {
        "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
        "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
        // Must include all possible values used in session initialization
    }
}
```

## パラメータ処理フローの問題
<a name="parameter-processing-flow-issues"></a>

パラメータ処理フローを理解すると、パラメータの転送と変換に関する問題のトラブルシューティングに役立ちます。

**パラメータ処理順序**  
MediaTailor は、次の順序でパラメータを処理します。

1. セッション初期化パラメータの検証

1. 設定エイリアスの解決 (該当する場合)

1. パラメータフィルタリング (ADS とオリジンとマニフェスト)

1. URL エンコードとフォーマット

1. URLsへのパラメータアプリケーション

**デバッグパラメータフロー**  
パラメータ処理の問題をデバッグするには: 

1. セッションの初期化でパラメータが正しく指定されていることを確認する

1. 設定エイリアスが期待値に解決することを確認する

1. パラメータが正しい URLs (マニフェスト、ADS、オリジン) に表示されることを確認する

1. URL エンコーディングが正しく適用されていることを確認する

**Example パラメータフローの例**  
セッションの初期化:   

```
POST master.m3u8
{
    "playerParams": {"origin_domain": "pdx"},
    "manifestParams": {"test": "123"}
}
```
エイリアスの解決と処理後:   
+ オリジンリクエスト: `https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd`
+ マニフェスト URL: `/v1/master/.../index.m3u8?aws.sessionId=session&test=123`

## セキュリティに関する考慮事項とベストプラクティス
<a name="parameter-security-considerations-troubleshooting"></a>

MediaTailor は、一般的なセキュリティ問題を防ぐために、パラメータ処理のためのセキュリティ対策を実装します。

**セキュリティ対策**  
MediaTailor は、次のセキュリティ対策を実装します。

1. データベースの肥大化を防ぐための入力サイズの制限

1. ユーザー入力の適切なエンコードとサニタイズ

1. レスポンスの破損を防ぐための入力の URL エンコード

**ベストプラクティス**  
安全なパラメータ処理については、次のベストプラクティスに従ってください。
+ 送信前にクライアント側でパラメータ値を検証する
+ 設定エイリアスを使用して、可能なパラメータ値を制限する
+ パラメータに機密情報を含めないようにする
+ 異常なパターンがないかパラメータの使用状況をモニタリングする
+ パラメータ値を推奨長さ制限内に維持する

# MediaTailor 設定エイリアスのトラブルシューティングガイド
<a name="configuration-aliases-troubleshooting"></a>

AWS Elemental MediaTailor は、一般的な設定エイリアスの問題とエラーシナリオに関する体系的なトラブルシューティングガイダンスを提供します。

## 設定エイリアスの検証エラー
<a name="configuration-alias-validation-errors"></a>

設定エイリアスがないか無効である場合、MediaTailor は問題の特定に役立つ特定のエラーレスポンスを返します。

**一般的なエラーシナリオ**  
次の表に、一般的な設定エイリアスエラーとその解決手順を示します。


| エラー | 原因 | 解決策 | 
| --- | --- | --- | 
| HTTP 400: 無効なプレイヤーパラメータエイリアス | ConfigurationAliases にプレイヤーパラメータ値が見つかりません | 対応する ConfigurationAliases マッピングにプレイヤーパラメータ値がキーとして存在することを確認します。 | 
| HTTP 400: 必要な設定エイリアスがありません | 対応する ConfigurationAliases エントリなしで使用されるドメイン変数 | 必要なすべてのエイリアスマッピングを使用して、欠落しているプレイヤーパラメータを ConfigurationAliases に追加する | 
| HTTP 400: 設定の検証に失敗しました | ConfigurationAliases 構造が正しくないか、不完全です | JSON 構造を検証し、すべてのドメイン変数に対応するエイリアスがあることを確認する | 
| URLs の空の文字列置換 | ドメイン以外の変数エイリアスが見つかりません | ConfigurationAliases で欠落しているエイリアスマッピングを追加するか、デフォルト値を指定する | 

**検証チェックリスト**  
次のチェックリストを使用して、設定エイリアスの設定を検証します。

1. **ドメイン変数カバレッジ:** URLs のドメイン部分で使用されるすべての変数に対応する ConfigurationAliases エントリがあることを確認します。

1. **エイリアスの完全性:** 可能なすべてのプレイヤーパラメータ値がエイリアスマッピングのキーとして含まれていることを確認します。

1. **JSON 構造:** ConfigurationAliases JSON が適切にフォーマットされ、ネストされていることを確認する

1. **パラメータの命名:** すべてのプレイヤーパラメータで `player_params.` プレフィックスが使用されていることを確認します。

1. **値の整合性:** エイリアス値が意図した用途 (URLs、プロファイル名など) に対して有効であることを確認します。

## 設定エイリアスの解決のデバッグ
<a name="configuration-alias-debugging"></a>

この体系的なアプローチに従って、設定エイリアス解決の問題をデバッグします。

**Step-by-stepのデバッグ方法**  
次の手順を使用して、設定エイリアスの問題を特定して解決します。

**設定エイリアスのデバッグ手順**

1. **設定構造の検証:** 再生設定に正しくフォーマットされた ConfigurationAliases が含まれていることを確認します。

   ```
   {
       "ConfigurationAliases": {
           "player_params.example_param": {
               "alias1": "value1",
               "alias2": "value2"
           }
       }
   }
   ```

1. **プレイヤーパラメータの形式を確認する:** セッションの初期化に正しくフォーマットされたプレイヤーパラメータが含まれていることを確認します。

   ```
   {
       "playerParams": {
           "example_param": "alias1"
       }
   }
   ```

1. **エイリアスマッピングの検証:** プレイヤーパラメータ値 ("alias1") が ConfigurationAliases マッピングのキーとして存在することを確認します。

1. **シンプルな設定でテストする:** 最小限の設定から始めて問題を分離する

1. **エラーレスポンスのモニタリング:** 特定の検証メッセージの MediaTailor エラーレスポンスを確認する

1. **解決URLs の検証:** 最終的な解決済み URLsが有効でアクセス可能であることを確認します。

## 設定エイリアスのベストプラクティス
<a name="configuration-alias-best-practices"></a>

次のベストプラクティスに従って、信頼性の高い設定エイリアスの実装を確保します。

**セキュリティに関する考慮事項**  
設定エイリアスを使用する場合は、次のセキュリティ対策を実装します。
+ **入力検証:** エイリアス解決で使用する前に、すべてのプレイヤーパラメータ値を検証する
+ **エイリアス値のサニタイズ:** エイリアス値に想定される文字と形式のみが含まれていることを確認します。
+ **ドメインの制限:** ドメインエイリアスを信頼できる制御されたドメインに制限する
+ **アクセスコントロール:** 承認された担当者のみに設定変更を制限する

**パフォーマンスの最適化**  
次の推奨事項を使用して、設定エイリアスのパフォーマンスを最適化します。
+ **エイリアス数を最小限に抑える:** 必要なエイリアスのみを使用して処理オーバーヘッドを削減する
+ **効率的な命名:** エイリアスとパラメータに明確で一貫した命名規則を使用する
+ **デフォルト値:** 一般的なユースケースに適したデフォルトエイリアスを指定します。
+ **設定キャッシュ:** MediaTailor の設定キャッシュを活用してパフォーマンスを向上させる

**メンテナンスとモニタリング**  
次のプラクティスを使用して、信頼性の高い設定エイリアスオペレーションを維持します。
+ **定期的な検証:** すべてのエイリアスマッピングが最新で機能していることを定期的に検証する
+ **エラーモニタリング:** 欠落または無効なエイリアスに関連する HTTP 400 エラーをモニタリングする
+ **ドキュメント:** すべてのエイリアスマッピングとその目的を明確に文書化する
+ **テスト手順:** すべてのエイリアスの組み合わせに対して包括的なテストを実装する

# MediaTailor マニフェストクエリパラメータ
<a name="manifest-query-parameters"></a>

AWS Elemental MediaTailor は、CDN ルーティングと認可用のマニフェストクエリパラメータ、オリジン固有の機能に使用できるその他のクエリパラメータなど、さまざまな目的でクエリパラメータを処理します。

AWS Elemental MediaTailor はセッション初期化からのクエリパラメータを保持し、パーソナライズされたマニフェスト URLsやその他のアセットに追加します。この機能は、MediaTailor とクライアントプレーヤーの間にコンテンツ配信ネットワーク (CDN) がある場合に使用します。

CDN が以下のクエリパラメータを必要とする場合は、マニフェストクエリパラメータを使用します。
+ さまざまな MediaTailor エンドポイントへの動的ルーティング
+ トークン認可

**クライアント側と CDN の動作**  
MediaTailor はクライアント側のレポートエンドポイントにクエリパラメータを追加しますが、CDN セグメントには追加しません。更新された機能により、さまざまな MediaTailor アセットのクエリパラメータをより包括的にサポートできるため、CDN ルーティングと認可のユースケースの柔軟性が向上します。

MediaTailor はクライアント側のレポートエンドポイントにクエリパラメータを追加しますが、CloudFront (または他の CDN) セグメントにはクエリパラメータを追加しません。

パラメータの保存を使用するには、[AWS サポート](https://aws.amazon.com/premiumsupport/)に連絡して、マニフェストクエリパラメータのパススルーを有効にするようにリクエストしてください。

動作は、HLS と DASH、および明示的なセッション初期化と暗黙的なセッション初期化によって異なります。以下のトピックでは、MediaTailor がマニフェストにパラメータを渡すようにセッション初期化リクエストを設定する方法について説明します。

# オリジンの MediaTailor クエリパラメータ処理
<a name="origin-query-parameters"></a>

AWS Elemental MediaTailor は、クエリパラメータの目的に応じて異なる方法でクエリパラメータを処理します。マニフェストクエリパラメータ (プレフィックスは `manifest.`) は CDN のルーティングと認可に使用されますが、オリジン固有の機能には他のクエリパラメータを使用できます。

**MediaPackage によるタイムシフト表示**  
MediaPackage のタイムシフト表示機能では、リクエストに `start`および `end`パラメータを含めることができます。これらのパラメータは、スタートオーバーとキャッチアップ表示の特定のコンテンツウィンドウを定義します。

**Example タイムシフト表示リクエスト**  
タイムシフト表示のマニフェストリクエストに開始パラメータと終了パラメータを含めます。  

```
GET /v1/master/111122223333/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**セッション中のパラメータ動作**  
クエリパラメータはセッションの初期化時に処理されます。タイムシフト表示またはその他のオリジン固有の機能の場合:
+ **セッションの初期化:** 最初のマニフェストリクエストに必要なパラメータを含める
+ **パラメータの永続性:** パラメータはセッションに関連付けられ、再生中も維持されます。
+ **パラメータの変更:** タイムシフトウィンドウやその他のパラメータを変更するには、更新された値を使用して新しいセッションを作成します。

**重要**  
クエリパラメータの特定の処理は、オリジン設定とコンテンツオリジンがサポートするパラメータによって異なります。MediaPackage 統合の場合、 の説明に従って必要なクエリパラメータを転送するように CDN が設定されていることを確認します[必須クエリパラメータを設定する](mediapackage-integration.md#mediapackage-query-strings)。

# MediaTailor パラメータの文字制限と URL エンコード
<a name="manifest-query-parameters-character-restrictions"></a>

AWS Elemental MediaTailor は、マニフェストクエリパラメータで特定の文字をサポートします。特殊文字には URL エンコードを使用できます。

**URL エンコードでサポートされている文字**  
URL エンコードでは、次の特殊文字がサポートされています。
+ 期間 (.) = %2E
+ ダッシュ (-) = %2D
+ アンダースコア (\$1) = %5F
+ パーセント (%) = %25
+ チルダ (\$1) = %7E
+ スラッシュ (/) = %2F
+ アスタリスク (\$1) = %2A
+ 等しい (=) = %3D
+ 質問 (?) = %3F

**URL エンコードのサポート**  
MediaTailor は、URL エンコード (hello%20world = hello world など) で使用すると、パーセント (%) 記号をサポートします。HTTP 仕様に従って有効な URL エンコードである限り、任意の URL エンコード文字を使用できます。

**重要**  
MediaTailor は、%%% や == などの二重文字をサポートしていません。

**セキュリティに関する考慮事項**  
MediaTailor は、パラメータ処理に次のセキュリティ対策を実装します。

1. データベースの肥大化を防ぐための入力サイズの制限

1. ユーザー入力の適切なエンコードとサニタイズ

1. レスポンスの破損を防ぐための入力の URL エンコード

**Topics**
+ [オリジンクエリパラメータ](origin-query-parameters.md)
+ [MediaTailor の文字制限](manifest-query-parameters-character-restrictions.md)
+ [MediaTailor HLS の暗黙的なセッション](manifest-query-parameters-hls-implicit-session-initialization.md)
+ [MediaTailor DASH の暗黙的なセッション](manifest-query-parameters-dash-implicit-session-initialization.md)
+ [MediaTailor の明示的なセッション初期化](manifest-query-parameters-hls-and-dash-explicit-session-initialization.md)
+ [MediaTailor のプロトコル固有の動作](manifest-query-parameters-protocol-differences.md)
+ [MediaTailor CDN 統合](manifest-query-parameters-cdn-integration.md)

# MediaTailor HLS 暗黙的なセッションの初期化
<a name="manifest-query-parameters-hls-implicit-session-initialization"></a>

AWS Elemental MediaTailor リクエストにキー を持つクエリパラメータが含まれている場合、 は MediaTailor リソースへのリンクにクエリパラメータを含めます`manifest.*`。次の例は、このリクエスト形式を示しています。

```
GET /v1/master/111122223333/originId/index.m3u8?manifest.test=123&other=456
```

リンクには `manifest.` プレフィックスは含まれません。

**HLS のパラメータアプリケーション**  
HLS 暗黙的なセッションの場合、MediaTailor はマニフェスト階層の次の場所にパラメータを適用します。
+ 多変量プレイリスト URLs
+ メディアプレイリスト URLs
+ コンテンツセグメント URLs
+ 広告セグメント URLs
+ HLS URLs

**Example マルチバリアントプレイリスト**  
次の例は、MediaTailor が多変量プレイリストの URL にクエリパラメータを含める方法を示しています。  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/111122223333/originId/session/1.m3u8?test=123",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
#EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2525657,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665212
../../../manifest/111122223333/originId/session/0.m3u8?test=123
```

**Example メディアプレイリスト**  
次の例は、MediaTailor がコンテンツセグメントの URLs にクエリパラメータを含める方法を示しています。  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:28716269
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:6.006,
https://origin.com/contentSegment_1.ts?originQueryParam=foo&test=123
#EXT-X-DISCONTINUITY
#EXTINF:6.006,
../../../../segment/111122223333/originId/session/0/2?test=123
```

# MediaTailor DASH 暗黙的なセッションの初期化
<a name="manifest-query-parameters-dash-implicit-session-initialization"></a>

AWS Elemental MediaTailor はクライアントのセッションを作成し、クライアントがセッションなしでマニフェストリクエストを行うときにクエリパラメータでリダイレクトします。次の例は、このリクエスト形式を示しています。

```
GET /v1/dash/111122223333/originId/index.mpd?manifest.test=123&other=456
```

MediaTailor はクライアントのセッションを作成し、クエリパラメータを使用してリダイレクトします。

```
/v1/dash/111122223333/originId/index.mpd?sessionId=session&test=123
```

**DASH のパラメータアプリケーション**  
DASH マニフェストレスポンスには、コンテンツセグメント、広告セグメント、初期化 URLs など、さまざまな場所のクエリパラメータが含まれます。MediaTailor は、以下のパラメータを適用します。
+ DASH マニフェストの場所要素
+ SegmentTemplate 初期化属性
+ SegmentTemplate メディア属性
+ コンテンツセグメント URLs
+ 広告セグメント URLs

クライアントがリクエストを行うと、MediaTailor は次の例のような DASH マニフェストで応答します。最初の期間はコンテンツ期間であるため、MediaTailor はそこにマニフェストクエリパラメータを挿入しません。広告期間である 2 番目の期間では、MediaTailor はマニフェストクエリパラメータを`SegmentTemplate`要素の `initialization` 属性と `media` 属性に挿入します。`Location` 要素には、マニフェストクエリパラメータもあります。

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2018-07-27T09:48:23.634000+00:00" id="201" minBufferTime="PT30S" minimumUpdatePeriod="PT15S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-14T23:37:43" suggestedPresentationDelay="PT25.000S" timeShiftBufferDepth="PT56.997S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://origin.com/contentSegments/</BaseURL>
    <Location>https://mediatailor.com/v1/dash/111122223333/originId/index.mpd?test=123&aws.sessionId=session</Location>
    <Period duration="PT29.963S" id="28737823" start="PT143732873.178S">
        <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <Representation bandwidth="2200000" codecs="avc1.640029" frameRate="30000/1001" height="540" id="1" width="960">
                <SegmentTemplate initialization="index_video_7_0_init.mp4?m=1611174111" media="index_video_7_0_$Number$.mp4?m=1611174111" presentationTimeOffset="4311986195351" startNumber="28737828" timescale="30000">
                    <SegmentTimeline>
                        <S d="180180" t="4311986911066"/>
                        <S d="3003" t="4311987091246"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="28737829_1" start="PT39925H48M23.141S">
        <BaseURL>https://mediatailor.com/v1/dashsegment/111122223333/originId/session/28737829/28737829_1/</BaseURL>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="2200000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_2_0init.mp4?test=123" media="asset_540_2_0_$Number%09d$.mp4?test=123" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="87087" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor HLS と DASH の明示的なセッション初期化
<a name="manifest-query-parameters-hls-and-dash-explicit-session-initialization"></a>

AWS Elemental MediaTailor クライアントが明示的なセッション初期化リクエストを行うと、 はクエリパラメータ`manifestParams`として多変量プレイリストに、追跡 URLsに含めます。

**セッションの初期化方法**  
明示的なセッション初期化では、リクエスト本文で POST を使用するか、クエリパラメータで GET を使用できます。

1. **リクエスト本文を含む POST:**

   ```
   POST /v1/session/111122223333/originId/index.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2", "param3": "value3"},
       "manifestParams": {"test": "123"}
   }
   ```

1. **クエリパラメータを使用した GET:**

   ```
   GET /v1/session/111122223333/originId/index.m3u8?ads.param1=value1&ads.param2=value2&manifestParams.test=123
   ```

**Example セッション初期化リクエスト**  

```
POST /v1/session/111122223333/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3"
    },
    "manifestParams": { 
        "test": "123"
    },
    "reportingMode": "client"
}
```

**Example マニフェストと追跡レスポンス**  

```
{
    "manifestUrl": "/v1/master/111122223333/originId/index.m3u8?aws.sessionId=session&test=123",
    "trackingUrl": "/v1/tracking/111122223333/originId/session?test=123"
}
```

セッションのマニフェストレスポンスには、前述の暗黙的なセッション初期化ワークフローと同様の MediaTailor URLs `manifestParams`に固有の があります。主な違いは、明示的なセッション初期化のマニフェストパラメータが で始まらないことです`manifest.`。

マニフェストクエリパラメータはイミュータブルであり、セッションの初期化時にのみ設定できます。クライアントが 1 つのセッションに対して複数のマルチバリアントプレイリストリクエストを行う場合、MediaTailor は最初のリクエスト後にマニフェストクエリパラメータを更新しません。

**パラメータ処理フロー**  
初期化時に指定できるパラメータは 1 回のみです。設定エイリアスは、転送前に実際の値に解決されます。例: ConfigurationAliases 設定`ad_type=abc12345`に基づいて を に`player_params.ad_type=customized`解決します。

# MediaTailor プロトコル固有のパラメータの動作
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor は、HLS プロトコルと DASH プロトコルでマニフェストクエリパラメータを異なる方法で処理します。各プロトコルタイプには、特定のアプリケーションの場所と処理方法があります。

**HLS と DASH のパラメータ処理の比較**  
次の表は、MediaTailor が HLS および DASH プロトコル間でマニフェストクエリパラメータを処理する方法を比較しています。


| 側面 | HLS の動作 | DASH の動作 | 
| --- | --- | --- | 
| パラメータアプリケーション | マニフェスト URLsとセグメント URLsに直接適用 | Location 要素、SegmentTemplate 属性、セグメント URLsに適用 | 
| マニフェスト階層 | 多変量プレイリスト → メディアプレイリスト → セグメント | MPD → 期間 → AdaptationSets → 表現 | 
| 初期化 URLs | 存在する場合は HLS init URLsに適用されます | SegmentTemplate 初期化属性に適用 | 
| セッション処理 | プレイリストの更新全体で保持されるパラメータ | セッション継続性の MPD Location 要素に含まれるパラメータ | 
| 広告セグメントの処理 | メディアプレイリストの広告セグメント URLs に適用 | 広告期間 SegmentTemplate メディア属性に適用 | 

**パラメータアプリケーションの場所**  
MediaTailor は、マニフェストクエリパラメータを次の場所に適用します。

## HLS パラメータアプリケーション
<a name="hls-parameter-application"></a>

HLS ストリームの場合、MediaTailor はマニフェストクエリパラメータを以下に適用します。
+ **多変量プレイリスト URLs:** パラメータがメディアプレイリストリファレンスに追加されます
+ **メディアプレイリスト URLs:** パラメータはメディアプレイリスト内のセグメント URLs に含まれます
+ **コンテンツセグメント URLs:** すべてのコンテンツセグメントにマニフェストクエリパラメータが含まれます
+ **広告セグメント URLs:** 広告セグメントは CDN ルーティングと認可のパラメータを受け取ります
+ **HLS 初期化 URLs:** Init セグメントには、ストリームに存在する場合にパラメータが含まれます
+ **スレートセグメント URLs:** スレートコンテンツには、一貫した CDN 動作のためのパラメータが含まれています

**Example HLS パラメータアプリケーションの例**  
セッションの初期化を前提とすると、次のようになります。  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
多変量プレイリストには、メディアプレイリストリファレンスにパラメータが含まれます。  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2665212,RESOLUTION=960x540
../../../manifest/123456789/originId/session/0.m3u8?auth_token=abc123&region=us-west
```
メディアプレイリストには、セグメント URLsにパラメータが含まれます。  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXTINF:6.006,
https://origin.com/segment1.ts?auth_token=abc123&region=us-west
#EXTINF:6.006,
../../../../segment/123456789/originId/session/0/2?auth_token=abc123&region=us-west
```

## DASH パラメータアプリケーション
<a name="dash-parameter-application"></a>

DASH ストリームの場合、MediaTailor はマニフェストクエリパラメータを以下に適用します。
+ **MPD Location 要素:** Location 要素には、マニフェスト更新リクエストのパラメータが含まれます
+ **SegmentTemplate 初期化属性:** Init セグメント URLsパラメータが含まれます
+ **SegmentTemplate メディア属性:** メディアセグメント URL テンプレートにはパラメータが含まれます
+ **コンテンツセグメント URLs:** テンプレートから生成されたすべてのコンテンツセグメントにパラメータが含まれます
+ **広告セグメント URLs:** 広告期間セグメントには CDN 統合のパラメータが含まれます
+ **サーバー側のレポートリダイレクト:** 広告セグメントへの 302 リダイレクトがパラメータを保持

**Example DASH パラメータアプリケーションの例**  
セッションの初期化を前提とすると、次のようになります。  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
DASH マニフェストには、複数の場所にパラメータが含まれています。  

```
<MPD>
    <Location>https://mediatailor.com/v1/dash/123456789/originId/index.mpd?auth_token=abc123&region=us-west&aws.sessionId=session</Location>
    <Period>
        <AdaptationSet>
            <Representation>
                <SegmentTemplate 
                    initialization="init.mp4?auth_token=abc123&region=us-west" 
                    media="segment_$Number$.mp4?auth_token=abc123&region=us-west"/>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor CDN 統合とパラメータルーティング
<a name="manifest-query-parameters-cdn-integration"></a>

AWS Elemental MediaTailor マニフェストクエリパラメータは、高度な CDN 統合シナリオを可能にします。動的ルーティング、認可、ロードバランシングに使用できます。

**CDN ルーティングのユースケース**  
マニフェストクエリパラメータの恩恵を受ける一般的な CDN 統合シナリオは次のとおりです。
+ **地理的ルーティング:** ビューワーの場所に基づいてリージョン固有の MediaTailor エンドポイントにリクエストをルーティングする
+ **トークンベースの認可:** CDN 経由で認可トークンを MediaTailor に渡して、コンテンツに安全にアクセスする
+ **ロードバランシング:** CDN ルーティングロジックを使用して複数の MediaTailor エンドポイントにトラフィックを分散する
+ **A/B テスト:** テストのために異なるユーザーセグメントを異なる MediaTailor 設定にルーティングする
+ **デバイス固有の最適化:** デバイスタイプまたは機能に基づいてリクエストをルーティングする

**CDN レイヤー間のパラメータの保存**  
MediaTailor は、マニフェストクエリパラメータが複数の CDN レイヤーとリクエストタイプにわたって保持されるようにします。

1. **初期リクエスト:** パラメータはセッション初期化リクエストから抽出されます

1. **マニフェスト生成:** パラメータはマニフェスト内のすべての関連 URLs に適用されます

1. **セグメントリクエスト:** パラメータは、一貫した CDN 動作のためにすべてのセグメント URLs に含まれます

1. **広告挿入:** パラメータは広告挿入時とセグメント置換時に保持されます

**Example CDN 認可フロー**  
次の例は、マニフェストクエリパラメータを使用した完全な CDN 認可フローを示しています。  

1. 認可トークンを含むクライアントリクエストマニフェスト:

   ```
   GET https://cdn.example.com/mediatailor/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. CDN は、パラメータを使用して MediaTailor にリクエストを転送します。

   ```
   GET https://mediatailor.amazonaws.com/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. MediaTailor は、すべての URLs に適用されるパラメータを使用してマニフェストを生成します。

   ```
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=2665212
   ../../../manifest/123456789/originId/session/0.m3u8?auth_token=jwt_token_here&user_id=12345
   ```

1. 後続のセグメントリクエストには、CDN 認可のパラメータが含まれます。

   ```
   GET https://cdn.example.com/mediatailor/segment/123456789/originId/session/0/1?auth_token=jwt_token_here&user_id=12345
   ```

# 広告追跡データの報告
<a name="ad-reporting"></a>

MediaTailor には、視聴者が視聴した広告の量を追跡およびレポートするための 2 つのオプションがあります。サーバー側の広告レポートアプローチでは、MediaTailor は広告を追跡し、ビーコン (追跡シグナル) を広告サーバーに直接送信します。または、クライアント側の追跡アプローチでは、クライアントプレーヤー (ユーザーのデバイス) が広告を追跡し、ビーコンを広告サーバーに送信します。再生セッションで使用される広告レポートのタイプは、プレーヤーが MediaTailor でセッションを開始するために行う特定のリクエストによって異なります。

動的変数を使用してセッションデータとプレイヤーデータを広告サーバーに渡す方法については、「」を参照してください[ADS リクエストの MediaTailor 動的広告変数](variables.md)。セッション初期化パラメータの詳細については、「」を参照してください[MediaTailor マニフェストクエリパラメータ](manifest-query-parameters.md)。

**Topics**
+ [MediaTailor サーバー側の広告の追跡とレポート](ad-reporting-server-side.md)
+ [クライアント側の広告追跡](ad-reporting-client-side.md)

# MediaTailor サーバー側の広告の追跡とレポート
<a name="ad-reporting-server-side"></a>

AWS Elemental MediaTailor は、包括的な広告の追跡と測定のためのサーバー側のレポートにデフォルト設定されています。サーバー側のレポートでは、プレイヤーがマニフェストからの広告 URL をリクエストするときに、サービスが広告消費を広告追跡 URL に直接報告します。プレイヤーが MediaTailor との再生セッションを開始したら、サーバー側のレポートを実行するためにユーザーまたはプレイヤーからの追加入力が必要になることはありません。MediaTailor は、各広告が再生されるたびに広告サーバーにビーコンを送信して、広告がどのくらい閲覧されたのかを報告します。MediaTailor は、広告の開始時点と、広告の進行における四分位点 (第 1 分位点、中間点、第 3 分位点、および広告の終了時点) に関するビーコンを送信します。

**サーバー側の広告レポートを実行する**
+ プレイヤーから、プロトコルに従った以下のいずれかの形式を使用して、新しい MediaTailor 再生セッションを開始します。
  + 例: HLS 形式

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```
  + 例: DASH 形式

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```

  キーバリューペアは、広告追跡用の動的なターゲティングパラメータです。リクエストへのパラメータの追加については、「[ADS リクエストの MediaTailor 動的広告変数](variables.md)」を参照してください。

AWS Elemental MediaTailor はマニフェスト URL を使用してリクエストに応答します。マニフェストには、メディアマニフェストの URL が含まれています。メディアマニフェストには、広告セグメントリクエストに対する埋め込みリンクが含まれています。

**注記**  
MediaTailor が追跡 URL で二重スラッシュ (//) を検出すると、スラッシュは 1 (/) に折りたたまれます。

プレーヤーが広告セグメント URL (`/v1/segment` パス) に再生をリクエストすると、 AWS Elemental MediaTailor は該当するビーコンを広告追跡 URL を介して広告サーバーに送信します。それと同時に、サービスが実際の `*.ts` 広告セグメントへのリダイレクトを発行します。広告セグメントは、MediaTailor がトランスコードされた広告を保存する Amazon CloudFront ディストリビューション、または広告をキャッシュしたコンテンツ配信ネットワーク (CDN) のいずれかにあります。

以下のセクションでは、MediaTailor からのサーバー側の広告追跡の操作について詳しく説明します。

**Topics**
+ [SGAI サーバー側の追跡](ad-reporting-server-side-sgai.md)
+ [ビーコン用語集](ad-reporting-server-side-beacon-glossary.md)
+ [タイミングとキャッシュの動作](ad-reporting-server-side-timing-behavior.md)
+ [追跡機能](ad-reporting-server-side-features.md)

# サーバーガイド広告挿入によるサーバー側の追跡 (SGAI)
<a name="ad-reporting-server-side-sgai"></a>

サーバーガイド広告挿入 (SGAI) を使用する場合、サーバー側の追跡は、上記のステッチモードアプローチとは異なる*セッションレスビーコン*メカニズムを使用します。MediaTailor が広告セグメントをコンテンツマニフェスト (`/v1/segment`リクエストを追跡する場所) にステッチする代わりに、SGAI は広告参照を個別のプレイリストとしてアセットリストレスポンスに返し、ビーコンメタデータが広告 URIs。

## セッションレスサーバー側のビーコンの仕組み
<a name="ad-reporting-server-side-sgai-how-it-works"></a>

次の手順では、SGAI セッションでサーバー側のビーコンがどのように機能するかについて説明します。

1. **セッションの初期化**: プレイヤーは を使用して HLS マルチバリアントプレイリストをリクエストします`aws.insertionMode=GUIDED`。サーバー側のレポートはデフォルトです (`aws.reportingMode`パラメータは必要ありません）。ステッチモードとは異なり、セッション初期化レスポンスには *は含まれません*`trackingUrl`。

1. **キャッシュ可能なマニ**フェスト: MediaTailor は、MediaTailor インタースティシャルアセットリストエンドポイントを指す `CLASS="com.apple.hls.interstitial"`および `X-ASSET-LIST` 属性を持つ`EXT-X-DATERANGE`タグを含むキャッシュ可能なマニフェストを返します。

1. **ビーコンメタデータを含むアセットリスト**: プレイヤーが広告時間枠に遭遇すると、アセットリストが取得されます。MediaTailor は、各広告 URI に暗号化されたビーコンメタデータが含まれる JSON レスポンスを返します。

   ```
   {
     "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` ディレクティブを使用して、URI クエリ文字列から HLS 変数置換を介してセグメント URLs にビーコンパラメータを渡します。

   ```
   #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 を経由します。サービスはビーコンデータを復号し、広告内のセグメントの位置 (インプレッション、第 1 四分位、中間、第 3 四分位、または完了) を決定し、適切な VAST 追跡ビーコンを広告サーバーに発射します。MediaTailor は、プレイヤーを実際の広告コンテンツセグメントにリダイレクトします。

## SGAI サーバー側のビーコンのプレイヤー要件
<a name="ad-reporting-server-side-sgai-requirements"></a>

SGAI でサーバー側のビーコンを使用するには、プレイヤーが次の要件を満たしている必要があります。
+ HLS バージョン 11 以降
+ HLS Interstitials の `CLASS` 属性`EXT-X-DATERANGE`を使用した のサポート
+ `#EXT-X-DEFINE:QUERYPARAM` 可変置換 (RFC 8216bis) のサポート。プレイヤーは、クエリパラメータ値をセグメント URLs に置き換える前に、それらをパーセントデコードする必要があります。

**注記**  
SGAI サーバー側のビーコンは現在、HLS でのみサポートされています。DASH は、SGAI サーバー側のビーコンではまだサポートされていません。

## ステッチモードのサーバー側の追跡との比較
<a name="ad-reporting-server-side-sgai-comparison"></a>

次の表は、ステッチ広告挿入とサーバーガイド広告挿入でサーバー側の追跡がどのように異なるかをまとめたものです。


| 側面 | ステッチ (SSAI) | サーバーガイド (SGAI) | 
| --- | --- | --- | 
| マニフェストのキャッシュ可能性 | セッションごと、キャッシュ不可 | キャッシュ可能、ビューワー間で共有 | 
| 広告セグメントのルーティング | セッション ID /v1/segment/を使用する | 暗号化されたビーコンデータ BLOB /v1/segment/を使用する | 
| ビーコンのセッション状態 | MediaTailor にセッションごとに保存 | セッションレス — すべての状態は暗号化されたawsBeaconDataパラメータで伝送されます | 
| セッション開始時の追跡 URL | セッション初期化レスポンスで返されます | 指定なし — ビーコンデータは各アセットリストレスポンスの広告 URIs に埋め込まれます | 
| DASH サポート | サポート | まだサポートされていません。 | 

**注記**  
ライブ SGAI セッションでは、 を使用してマニフェストベースの広告プリフェッチを有効にできます`aws.guidedPrefetchMode=MANIFEST`。これは、スティッチド (SSAI) セッションで使用されるスケジュールベースのプリフェッチ API とは異なります。詳細については、「[マニフェストハートビートを使用したガイド付きプリフェッチ](sgai-guided-prefetch.md)」を参照してください。

# サーバー側の追跡ビーコン用語集
<a name="ad-reporting-server-side-beacon-glossary"></a>

MediaTailor サーバー側の追跡では、標準化されたビーコンのセットを使用して、広告表示の進行状況を広告サーバーと検証サービスに報告します。これらのビーコンは、動画広告測定のインタラクティブ広告局 (IAB) 標準に準拠しており、広告インプレッションと完了率を正確に報告できます。


**サーバー側の追跡ビーコンタイプ**  

| ビーコンタイプ | 発砲時 | 目的 | タイミングの詳細 | 
| --- | --- | --- | --- | 
| インプレッション | プレイヤーが最初の広告セグメントをリクエストしたとき | 広告コンテンツのロードが開始され、ビューワーに表示しようとしていることを示します。 | 広告の最初の/v1/segmentリクエストで発砲されました。インプレッションをカウントする前に広告コンテンツのロードを開始することを義務付ける IAB ガイドラインに準拠しています。完全なシーケンス[サーバー側の追跡ワークフロー](ad-reporting-server-side-timing-behavior.md#ad-reporting-server-side-timing-behavior-workflow)については、「」を参照してください。 | 
| 開始 | プレイヤーが広告コンテンツのレンダリングを開始したとき | 広告再生が実際に開始されたことを確認します | 通常、最初のセグメントリクエストでインプレッションビーコンと同時に起動されますが、広告レンダリングの実際の開始を表します。この区別は、インプレッションイベントと開始イベントの両方を個別に追跡する検証サービスにとって重要です。 | 
| 第 1 四分位数 | プレイヤーが広告期間の 25% に達した場合 | 広告の第 1 四半期を通じて広告表示を継続した測定値 | プレイヤーが広告期間の 25% ポイントを含むセグメントをリクエストしたときに発生します。たとえば、2 秒のセグメントを持つ 20 秒の広告では、通常、これは 3 番目のセグメントのリクエストで発生します (広告から約 4～6 秒後）。 | 
| 中間点 | プレイヤーが広告期間の 50% に達した場合 | 広告の半分までの継続的な広告表示を測定します。 | プレイヤーが広告期間の 50% ポイントを含むセグメントをリクエストしたときに発生します。たとえば、2 秒のセグメントを持つ 20 秒の広告では、通常、これは 5 番目のセグメント (広告から約 8～10 秒) のリクエストで発生します。 | 
| 第 3 四分位 | プレイヤーが広告期間の 75% に達した場合 | 広告の 4 分の 3 を通じて継続的な広告表示を測定する | プレイヤーが広告期間の 75% ポイントを含むセグメントをリクエストしたときに発生します。たとえば、2 秒のセグメントを持つ 20 秒の広告では、通常、これは 8 番目のセグメント (広告から約 14～16 秒) のリクエストで発生します。 | 
| 完了 | プレイヤーが広告の最後に到達したとき | 広告全体がビューワーに配信されたことを確認します | プレイヤーが広告の最終セグメントをリクエストしたときに発生します。これは、ビューワーが広告コンテンツ全体を表示した可能性があることを示します。例えば、2 秒のセグメントを持つ 20 秒の広告では、これは通常、10 番目のセグメントのリクエスト (広告から約 18～20 秒) で発生します。 | 

**注記**  
ビーコン発射の正確なタイミングは、セグメントの期間と広告の長さによって異なります。MediaTailor は、特定の広告期間とセグメント構造に基づいて、各四分位位置に対応する適切なセグメントリクエストを計算します。

# サーバー側の追跡タイミングとキャッシュ動作
<a name="ad-reporting-server-side-timing-behavior"></a>

サーバー側のレポートでは、MediaTailor は、マニフェスト解析やプリロードアクティビティではなく、プレイヤーからの実際のセグメントリクエストに基づいて追跡イベントを実行します。このアプローチにより、動画広告測定の業界標準に沿った正確なインプレッションカウントが保証されます。

## 主要なタイミングの原則
<a name="ad-reporting-server-side-timing-behavior-principles"></a>

MediaTailor サーバー側の追跡は、以下の基本的なタイミング原則に従います。
+ **実際のセグメントリクエストで追跡イベントが発生する** - ビーコンは、マニフェストの解析やキャッシュ中ではなく、プレイヤーが `/v1/segment` URLs に HTTP リクエストを行った場合にのみ送信されます。
+ **プレイヤーのキャッシュとマニフェストの事前ロードはイベントをトリガーしません** - プレイヤーは追跡イベントを生成せずにマニフェスト情報を解析、キャッシュ、または事前ロードできます。
+ **セグメントプリフェッチ*は*イベントをトリガーします** - プレイヤーが再生前に実際の広告セグメントをプリフェッチする場合、これはセグメントリクエストが有効なインプレッションを構成する業界標準の動作に従います。
+ **各 /v1/segment request triggers appropriate beacon** - 特定の追跡イベント (インプレッション、四分位数、完了) は、リクエストされる広告の位置とセグメントによって決まります。
+ **タイミングは IAB 標準に準拠** - このアプローチは、動画広告の測定とインプレッションカウントに関するインタラクティブ広告局のガイドラインに従います。

## サーバー側の追跡ワークフロー
<a name="ad-reporting-server-side-timing-behavior-workflow"></a>

次の図は、サーバー側の完全な追跡ワークフローを示しています。このワークフローは、プレイヤーリクエストに関連して追跡イベントが発生するタイミングを示しています。

**フェーズ 1: セッションの初期化**  
プレイヤーは MediaTailor にマニフェストをリクエストし、広告セグメント URLs を含むパーソナライズされたマニフェストを返します。  

![\[MediaTailor にマニフェストをリクエストし、広告セグメント URLs を使用してパーソナライズされたマニフェストを受信するプレイヤーを示すセッション初期化フェーズ。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ss-track-phase1.png)


**フェーズ 2: 広告リクエストとインプレッションの追跡**  
プレイヤーが最初の広告セグメントをリクエストすると、MediaTailor はインプレッションを起動し、広告決定サーバーと広告検証サービスの両方にビーコンを開始します。  

![\[プレイヤーが最初の広告セグメントをリクエストしたときに MediaTailor がインプレッションビーコンと開始ビーコンの両方を広告決定サーバーと広告検証サービスに送信することを示す広告インプレッション追跡フェーズ。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ss-track-phase2.png)


**フェーズ 3: 四分位数の追跡**  
MediaTailor は、後続のセグメントリクエストに基づいて四分位ビーコン (第 1 四分位、中間点、第 3 四分位、完了) を起動します。  

![\[プレイヤーが後続の広告セグメントをリクエストする際にMediaTailor が広告決定サーバーと広告検証サービスの両方に四分位ビーコンを発射することを示す四分位追跡フェーズ。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ss-track-phase3.png)


**フェーズ 4: セグメント配信**  
追跡ビーコンを発射すると、MediaTailor は Amazon CloudFront または CDN から実際の広告セグメントにリダイレクトします。  

![\[追跡ビーコンを発射した後、MediaTailor がプレイヤーを CloudFront または CDN から実際の広告セグメントにリダイレクトすることを示すセグメント配信フェーズ。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ss-track-phase4.png)


サーバー側の追跡ワークフローには、次の主要なタイミング動作が含まれます。

1. **セッションの初期化** - プレイヤーは MediaTailor にマニフェストをリクエストします。MediaTailor は、 `/v1/segment`パスを持つ広告セグメント URLsを含むパーソナライズされたマニフェストを返します。

1. **マニフェスト解析とキャッシュ** - プレイヤーはマニフェストを解析し、セグメント情報をプリロードまたはキャッシュできます。**このフェーズでは、プレイヤーのキャッシュ動作に関係なく、追跡イベントは発生しません**。

1. **広告セグメントのリクエストとインプレッションの追跡** - プレイヤーが実際に最初の広告セグメントをリクエストすると (通常は再生用）、MediaTailor はインプレッションビーコンを起動し、広告決定サーバーと広告検証サービスの両方にイベントの追跡を開始します。これは、マニフェストが解析されるときではなく、`/v1/segment`URL への実際の HTTP リクエストで発生します。

1. **セグメントリクエストに基づく四分位追跡** - MediaTailor は、広告期間中の計算された四分位位置に対応する後続のセグメントリクエストに基づいて、広告決定サーバーと広告検証サービスの両方に四分位ビーコン (第 1 四分位、中間点、第 3 四分位、完了) を起動します。

1. **セグメント配信** - 適切な追跡ビーコンを発射した後、MediaTailor は実際の広告セグメント (Amazon CloudFront または CDN) への HTTP リダイレクトを発行します。

## プレイヤーキャッシュとプリロードに関する考慮事項
<a name="ad-reporting-server-side-timing-behavior-caching-considerations"></a>

MediaTailor サーバー側の追跡は、正確なインプレッション測定を維持しながら、さまざまなプレイヤーキャッシュおよびプリロード戦略と互換性があるように設計されています。
+ **マニフェストプリロード** - マニフェスト情報をプリロードまたはキャッシュするプレイヤーは、追跡イベントをトリガーしません。追跡イベントは、実際のセグメントリクエストが行われた場合にのみ発生します。
+ **セグメントのプリフェッチ** - プレイヤーが再生前に広告セグメントをプリフェッチすると、それらのセグメントがリクエストされたときに、実際の再生時間よりも前に追跡イベントが発生します。この動作は、セグメントリクエストを有効なインプレッションと見なす業界標準と一致しています。
+ **プレイヤーバッファリング** - 標準プレイヤーバッファリング動作 (再生の少し前にセグメントをリクエスト) は、セグメントリクエストパターンに基づいて、適切なタイミングで追跡イベントをトリガーします。

## 追跡の不一致のトラブルシューティング
<a name="ad-reporting-server-side-timing-behavior-troubleshooting"></a>

MediaTailor のサーバー側の追跡とサードパーティーのメトリクスの間に不一致がある場合は、次の要素を考慮してください。
+ **プレイヤーの動作の違い** - プレイヤーごとにプリフェッチ戦略とバッファリング戦略が異なり、セグメントリクエストが行われたときに に影響する場合があります。
+ **ネットワーク条件** - ネットワーク条件が悪いと、プレイヤーが複数回、または予想とは異なる間隔でセグメントをリクエストする可能性があります。
+ **CDN 設定** - `/v1/segment`リクエストの CDN キャッシュが正しくないと、追跡イベントが見逃されたり、重複したりする可能性があります。
+ **セッション管理** - イベント競合の追跡を防ぐために、各再生セッションで一意のセッション識別子が使用されていることを確認します。

トラブルシューティングの詳細なガイダンスについては、「」を参照してください[一般的な問題のトラブルシューティング](monitoring-and-troubleshooting.md#troubleshooting-common-issues)。

# MediaTailor サーバー側の追跡機能
<a name="ad-reporting-server-side-features"></a>

AWS Elemental MediaTailor は、これらの統合されたサーバー側の追跡機能を自動的に適用して、広告測定の精度と信頼性を最適化します。このシステムは、ビーコンの重複を防ぎ、大量の期間中のトラフィックを管理し、適切なイベントシーケンスを維持し、ユーザーによる設定を必要とせずに包括的なパフォーマンスモニタリングを提供します。広告決定サーバー (ADS) が VAST レスポンスで追跡ビーコンを提供することを確認するだけで済みます。

**注記**  
これらの機能は、2025 年 9 月 30 日以降、新規のお客様にご利用いただけます。既存のお客様は、継続的なサービス改善の一環として、2025 年を通じて にアクセスできます。これらの機能にすぐにアクセスしたい場合は、[AWS サポート](https://aws.amazon.com/premiumsupport/)にお問い合わせください。

**注記**  
これらの機能は、スティッチド (SSAI) 広告挿入方法とサーバーガイド (SGAI) 広告挿入方法の両方に適用されます。ビーコンのタイプとタイミングは、両方のモードで同じです。MediaTailor がビーコンをトリガーする方法は異なります。SGAI サーバー側のビーコンの詳細については、[サーバーガイド広告挿入によるサーバー側の追跡 (SGAI)](ad-reporting-server-side-sgai.md)「」を参照してください。

## ビーコン重複排除
<a name="ad-reporting-server-side-beacon-deduplication"></a>

MediaTailor は、同一の広告イベントに対するビーコンの重複射撃を防止します。サーバー側の追跡システムは、各インプレッション、四分位数、完了ビーコンを広告表示セッションごとに 1 回のみ送信します。ネットワーク条件、ビットレートの変更、バッファリング戦略により、ビデオプレイヤーが同じ広告セグメントを複数回リクエストすると、MediaTailor は発射されたビーコンを追跡し、冗長な送信をブロックします。

重複排除は、ビーコン数の増加を引き起こす一般的なシナリオを自動的に解決します。
+ **アダプティブビットレートストリーミング** - プレイヤーが同じ広告セグメントの異なる品質バリアントをダウンロードする場合
+ **ネットワーク再試行シナリオ** - ネットワークの問題またはタイムアウトが原因でプレイヤーがセグメントを再リクエストする場合
+ **プレイヤーバッファリング戦略** - プレイヤーがバッファリング目的でセグメントをプリフェッチまたは再フェッチする場合

このシステムは、プレイヤーが異なる品質レベルを切り替える場合でも、インプレッションビーコンを 1 回だけ発射するように設計されています。

## アダプティブスロットリングとビーコンの再試行
<a name="ad-reporting-server-side-adaptive-throttling"></a>

MediaTailor は、サーバーレスポンスインジケータに基づいてビーコントラフィックレートを自動的に管理します。システムは HTTP レスポンスパターン、接続タイムアウト、エラーコードをモニタリングして輻輳を検出し、それに応じてトラフィックレートを調整します。システムがサーバーのストレスインジケータを識別すると、影響を受けるドメインのトラフィックレートが低下し、サーバーが容量の改善を示すと自動的にレートが増加します。

システムは、次のインジケータを使用してサーバーの状態をモニタリングします。
+ **HTTP 接続タイムアウト** - 測定プラットフォームが想定期間内に応答しない場合
+ **エラーレスポンスコード** - サーバーの過負荷を示す 503、504、および 507 レスポンス。広告サーバーは、完全な互換性のためにこれらのエラーコードもサポートする必要があります。
+ **レスポンスパターン** - 容量の問題を示す測定プラットフォームのパフォーマンスの変化

再試行動作は、最大 1 時間、試行間の最小 30 秒の遅延で自動的に配信を試行します。この再試行動作は設定できません。

## 1 秒あたりのビーコントラフィックの管理
<a name="ad-reporting-server-side-tps-management"></a>

TPS 制限を設定して、ビーコン配信レートを制御できます。これは、サーバー側の追跡機能に対して設定可能な唯一の設定です。アカウントレベルの制限は、すべての測定パートナーに送信される広告追跡リクエストの合計数を制限します。MediaTailor は、エンタープライズ規模のオペレーションに十分な容量を提供するために、最小 TPS 制限 10,000 を適用します。

 AWS サポートチケットを送信して、以下の情報を含む TPS 制限を確立します。
+ **AWS アカウント ID** - 特定のアカウント識別子
+ **ターゲットリージョン** - TPS 制限を適用する AWS リージョン
+ **希望する TPS しきい値** - 1 秒あたりの必要なトランザクション数の制限 (最小 10,000)

デフォルトでは、TPS の制限はありません。広告決定サーバー (ADS) で必要な場合は TPS 制限をリクエストできますが、制限は 10,000 TPS を超える必要があります。MediaTailor は指定された制限を超えることはありませんが、その制限まで一貫したスループットを保証するものではありません。広告決定サーバーは、サポートできる TPS 制限を知らせます。

## インオーダービーコン
<a name="ad-reporting-server-side-in-order-beaconing"></a>

MediaTailor は、広告追跡イベントのシーケンシャル配信を自動的に維持します。システムは、ネットワークの問題、再試行、またはトラフィック管理が発生した場合でも、ビーコンの順序を保持します。これにより、測定パートナーは正確な分析のために正しい順序でイベントを受信できます。

システムは、標準の業界ビーコンシーケンスに従います。

1. **開始イベント** - 広告の再生が開始されると起動します

1. **第 1 四分位イベント** - 広告完了率 25% で発生

1. **中間イベント** - 広告完了率 50% で発生

1. **第 3 四分位イベント** - 広告完了率 75% で発生

1. **完了イベント** - 広告が終了すると起動します

これらの機能は、自動的に連携します。
+ 適切な順序を維持するために、スロットリング中にビーコンが保持されます
+ 各測定パートナードメインには、レート調整中の中断を防ぐために個別のイベントキューがあります。
+ 重複排除は、時系列を維持しながらイベントタイプとタイムラインの位置を追跡します

# クライアント側の広告追跡
<a name="ad-reporting-client-side"></a>

 AWS Elemental MediaTailor クライアント側の追跡 API を使用すると、広告時間枠中にプレイヤーコントロールをストリーミングワークフローに組み込むことができます。クライアント側の追跡では、プレイヤーまたはクライアントはインプレッションや四分位広告ビーコンなどの追跡イベントを広告決定サーバー (ADS) やその他の広告検証エンティティに発行します。これらのイベントは、全体的な広告時間枠のステータスと、各時間枠内の個々の広告表示の両方を追跡します。インプレッションと四分位数 (ADS) およびその他の広告検証エンティティの詳細については、「」を参照してください。インプレッションと四分位広告ビーコンの詳細については、「」を参照してください[クライアント側のビーコン](ad-reporting-client-side-beaconing.md)。ADS およびその他の広告検証エンティティの詳細については、「」を参照してください[クライアント側の広告追跡統合](ad-reporting-client-side-ad-tracking-integrations.md)。

クライアント側の追跡のためにプレイヤーパラメータとセッションデータを ADS に渡す方法については、[ADS リクエストの MediaTailor プレイヤー変数](variables-player.md)「」および「」を参照してください[ADS リクエストの MediaTailor セッション変数](variables-session.md)。

クライアント側の追跡では、次のような機能が有効になります。
+ 広告ブレークカウントダウンタイマー - 詳細については、「」を参照してください[広告カウントダウンタイマー](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)。
+ 広告クリックスルー - 詳細については、「」を参照してください[広告クリックスルー](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)。
+ コンパニオン広告の表示 - 詳細については、「」を参照してください[コンパニオン広告](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)。
+ スキップ可能な広告 - 詳細については、「」を参照してください[スキップ可能な広告](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)。
+ プライバシーコンプライアンスの VAST アイコンの表示 - 詳細については、「」を参照してください[Google Why This Ad (WTA) のアイコン](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)。
+ 広告中のプレイヤースクラブの制御 - 詳細については、「」を参照してください[スクラブ](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)。

MediaTailor クライアント側の追跡 API を使用すると、クライアント側の追跡に加えて機能を有効にするメタデータを再生デバイスに送信できます。

## クライアント側のレポートワークフロー
<a name="ad-reporting-client-side-workflow"></a>

次の図は、セッションの初期化から広告の再生とビーコンまでのクライアント側のレポートワークフロー全体を示しています。

![\[セッションの初期化から広告の再生とビーコンまでのワークフロー全体における、ビデオプレーヤー、MediaTailor、広告決定サーバー、コンテンツオリジン、広告検証サービス間のインタラクションを示す MediaTailor クライアント側のレポートシーケンス図。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/tracking_flow.png)


クライアント側のレポートワークフローには、次のステップが含まれます。

1. **セッションの初期化** - ビデオプレーヤーは、、オリジントークン`adsParams`、セッション機能などの JSON メタデータを使用して MediaTailor セッションエンドポイントに POST リクエストを送信します。MediaTailor はセッション`trackingUrl`に対して `manifestUrl`と で応答します。

1. **マニフェストリクエストと広告決定** - プレイヤーは MediaTailor にパーソナライズされたマニフェストをリクエストします。MediaTailor は、オリジンから元のコンテンツマニフェストをリクエストし、プレイヤーパラメータを使用して広告決定サーバー (ADS) に広告リクエストを行い、広告メタデータを含む VAST レスポンスを受信し、広告マーカーを含むパーソナライズされたマニフェストをプレイヤーに配信します。

1. **追跡データの取得** - プレイヤーは追跡 URL を定期的にポーリングします (HLS のターゲット期間または DASH の最小更新期間に一致）。MediaTailor は、表示、広告、追跡イベント、ビーコン URLs、広告検証データを含む JSON 追跡メタデータを返します。

1. **広告の再生とビーコン** - 広告ブレーク中に、プレイヤーは追跡メタデータを解析し、広告のレンダリング開始時にインプレッションビーコンを発射し、四分位ビーコン (開始、firstQuartile、中間、thirdQuartile、完了) を適切なタイミングで発射し、必要に応じて広告検証 JavaScript をロードして実行し、表示可能性/検証イベントをサードパーティー検証サービスに送信します。

1. **継続的なポーリング** - プレイヤーはセッション全体で追跡 URL のポーリングを継続し、今後の広告時間枠と動的コンテンツの更新されたメタデータを受け取ります。

このワークフローにより、広告カウントダウンタイマー、クリックスルー機能、コンパニオン広告、スキップ可能な広告、プライバシーコンプライアンスのための VAST アイコン表示などの高度な機能が有効になります。

**Topics**
+ [クライアント側のレポートワークフロー](#ad-reporting-client-side-workflow)
+ [クライアント側の追跡の有効化](#ad-reporting-client-side-enabling)
+ [広告サーバーパラメータ](#ad-reporting-client-side-ad-server-parameters)
+ [オリジンインタラクションクエリパラメータ](#ad-reporting-client-side-origin-interaction-query-parameters)
+ [セッション設定機能](#ad-reporting-client-side-session-configured-features)
+ [クライアント側追跡のベストプラクティス](#ad-reporting-client-side-best-practices)
+ [クライアント側の広告追跡スキーマとプロパティ](ad-reporting-client-side-ad-tracking-schema.md)
+ [広告追跡アクティビティのタイミング](ad-reporting-client-side-ad-tracking-schema-activity-timing.md)
+ [クライアント側の広告追跡のプレイヤーコントロールと機能](ad-reporting-client-side-ad-tracking-schema-player-controls.md)
+ [クライアント側のビーコン](ad-reporting-client-side-beaconing.md)
+ [サーバー側の広告ビーコンを使用したハイブリッドモード](ad-reporting-hybrid-mode.md)
+ [クライアント側の広告追跡統合](ad-reporting-client-side-ad-tracking-integrations.md)
+ [GetTracking を使用した広告ビーコンのページング](#gettracking)

## クライアント側の追跡の有効化
<a name="ad-reporting-client-side-enabling"></a>

セッションごとにクライアント側の追跡を有効にします。プレイヤーは MediaTailor 設定のセッション初期化プレフィックスエンドポイント`POST`に HTTP を作成します。オプションで、プレイヤーは MediaTailor が広告通話を行ったり、マニフェストのオリジンを呼び出したり、セッションレベルで MediaTailor 機能を呼び出したり無効にしたりするときに使用する追加のメタデータを送信できます。

次の例は、JSON メタデータの構造を示しています。

```
{
  "adsParams": {                  # 'adsParams' is case sensitive
    "param1": "value1",           # key is not case sensitive
    "param2": "value2",           # Values can contain spaces. For example, 'value 2' is an allowed value. 
    },
  "origin_access_token":"abc123", # this is an example of a query parameter designated for the origin
  "overlayAvails":"on"            # 'overlayAvails' is case sensitive. This is an example of a feature that is enabled at the session level.
}
```

MediaTailor コンソールまたは API を使用して、これらのパラメータを参照するように ADS リクエストテンプレート URL を設定します。次の例では、 `player_params.param1`は のプレイヤーパラメータで`param1`、 `player_params.param2`は のプレイヤーパラメータです`param2`。

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

## 広告サーバーパラメータ
<a name="ad-reporting-client-side-ad-server-parameters"></a>

JSON 構造の最上位レベルには `adsParams` JSON オブジェクトがあります。このオブジェクト内には、MediaTailor がすべてのセッションリクエストで広告サーバーを読み取って送信できるキーと値のペアがあります。MediaTailor は、次の広告サーバーをサポートしています。
+ Google 広告マネージャー 
+ SpringServe 
+ FreeWheel 
+ Publica 

## オリジンインタラクションクエリパラメータ
<a name="ad-reporting-client-side-origin-interaction-query-parameters"></a>

`adsParams`、、 など、JSON 構造の最上位レベル内の予約されたキーと値のペアは`overlayAvails`、クエリパラメータの形式でオリジンリクエスト URL `availSuppression`に追加されません。MediaTailor がオリジンに対して行うすべてのセッションマニフェストリクエストには、これらのクエリパラメータが含まれます。オリジンは無関係なクエリパラメータを無視します。例えば、MediaTailor はキーと値のペアを使用して、オリジンにアクセストークンを送信できます。

## セッション設定機能
<a name="ad-reporting-client-side-session-configured-features"></a>

session-initialization JSON 構造を使用して、、`overlayAvails`、 などの MediaTailor 機能を有効、無効に`availSuppression`、または上書きします`adSignaling`。セッションの初期化中に渡された機能設定は、MediaTailor 設定レベルでの設定よりも優先されます。

**注記**  
セッションの初期化時に MediaTailor に送信されるメタデータはイミュータブルであり、セッション中は追加のメタデータを追加できません。SCTE-35 マーカーを使用して、セッション中に変化するデータを転送します。詳細については、「[ADS リクエストの MediaTailor セッション変数](variables-session.md)」を参照してください。

**Example : HLS のクライアント側の広告追跡の実行**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad"   # This value does not change during the session.
               "uid": "abdgfdyei-2283004-ueu"                     
           }
        }
```

**Example : DASH のクライアント側の広告追跡を実行する**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           }
        }
```

### レポートモードパラメータ
<a name="session-initialization-reporting-mode"></a>

リクエスト本文に `reportingMode`パラメータを含めることで、セッションを初期化するときにレポートモードを指定できます。このパラメータは、MediaTailor がセッションのクライアント側またはサーバー側の広告追跡を実行するかどうかを制御します。
+ `client` - プレイヤーは広告追跡を実行し、ビーコンを広告サーバーに送信します。これは、 が指定されていない場合のデフォルトモード`reportingMode`です。
+ `server` - MediaTailor はサーバー側の広告追跡を実行し、ビーコンを広告サーバーに直接送信します。

**Example サーバー側のレポートモードによるセッションの初期化**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad",
               "uid": "abdgfdyei-2283004-ueu"                     
           },
           "reportingMode": "server"
        }
```

**Example クライアント側のレポートモードによるセッションの初期化 (明示的)**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           },
           "reportingMode": "client"
        }
```

**注記**  
`reportingMode` パラメータはセッションの初期化時に設定され、セッション中に変更することはできません。`reportingMode` を指定しない場合、MediaTailor は下位互換性を維持するためにデフォルトでクライアント側のレポートになります。

正常なレスポンスは、レスポンス本文`200`を含む HTTP です。本文には、 `manifestUrl`と `trackingUrl`キーを含む JSON オブジェクトが含まれています。値は、プレイヤーが再生と広告イベントの追跡の両方の目的で使用できる相対 URLs です。

```
{
  "manifestUrl": "/v1/dashmaster/hashed-account-id/origin-id/asset-id.m3u8?aws.sessionId=session-id",
  "trackingUrl": "/v1/tracking/hashed-account-id/origin-id/session-id"
}
```

クライアント側の追跡スキーマの詳細については、「」を参照してください[クライアント側の広告追跡スキーマとプロパティ](ad-reporting-client-side-ad-tracking-schema.md)。

## クライアント側追跡のベストプラクティス
<a name="ad-reporting-client-side-best-practices"></a>

このセクションでは、ライブワークフローと VOD ワークフローの両方で MediaTailor でクライアント側を追跡するためのベストプラクティスの概要を説明します。

### ライブワークフロー
<a name="ad-reporting-client-side-best-practices-live"></a>

最新の広告追跡メタデータを常に取得するために、HLS の各ターゲット期間、または DASH の最小更新期間に一致する間隔で追跡エンドポイントをポーリングします。この間隔を一致させることは、クリエイティブにインタラクティブコンポーネントまたはオーバーレイコンポーネントがあるワークフローで特に重要です。

**注記**  
一部のプレイヤーは、ポーリングの代替として使用できるイベントリスナーをサポートしています。例えば、MediaTailor 広告 ID デコレーション機能はセッションごとに有効にする必要があります。詳細については、「[広告 ID デコレーション](ad-id-decoration.md)」を参照してください。この機能を使用すると、表示の各広告に日付範囲 (HLS) またはイベント要素 (DASH) 識別子が配置されます。プレイヤーは、これらのマニフェストタグを、セッションの MediaTailor 追跡エンドポイントを呼び出すプロンプトとして使用できます。

### VOD ワークフロー
<a name="ad-reporting-client-side-best-practices-vod"></a>

セッションの初期化に成功し、MediaTailor がメディアを含む最初のマニフェストを受け取ったら、追跡エンドポイントを一度呼び出すだけで済みます。

![\[VOD ワークフローのコールフロー。セッションが初期化され、MediaTailor がメディアを含む最初のマニフェストを受信したら、クライアント側の追跡エンドポイントを呼び出します。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/vod-workflow-best-practice.png)


### サーバーガイド広告挿入
<a name="ad-reporting-client-side-best-practices-sgai"></a>

サーバーガイド広告挿入 (SGAI) セッションは `GetTracking` API を使用しません。代わりに、 を使用すると`aws.reportingMode=CLIENT`、MediaTailor は、プレイヤーが広告コンテンツをリクエストしたときに、各アセットリストレスポンスの `TRACKING`セクションに追跡情報を提供します。セッション初期化レスポンスには は含まれません`trackingUrl`。

クライアント側で追跡される SGAI セッションのアセットリストレスポンスの構造は次のとおりです。

```
{
  "ASSETS": [
    { "DURATION": 20.0, "URI": "https://cdn.example.com/ad1/master.m3u8" },
    { "DURATION": 10.0, "URI": "https://cdn.example.com/ad2/master.m3u8" }
  ],
  "TRACKING": {
    ...VAST tracking events and beacon URLs for each ad...
  }
}
```

SGAI メソッドのクライアント側追跡を実装する場合:
+ を呼び出すのではなく、アセットリストレスポンスから `TRACKING`セクションを解析する `GetTracking`
+ 広告イベントレポートのアセットリストで提供されている追跡 URLs を使用する
+ プレイヤーの実際の広告再生イベントに基づく射撃追跡ビーコン
+ アセットリストが取得されるたびに、各広告時間枠の追跡を個別に処理する

**重要**  
`TRACKING` セクションは、 が設定されている場合にのみアセットリストに含まれ`aws.reportingMode=CLIENT`ます。サーバー側のレポートを使用する場合 (SGAI のデフォルト）、MediaTailor は `TRACKING`セクションを省略し、代わりにビーコンデータを広告 URIs。詳細については、「[サーバーガイド広告挿入によるサーバー側の追跡 (SGAI)](ad-reporting-server-side-sgai.md)」を参照してください。

# クライアント側の広告追跡スキーマとプロパティ
<a name="ad-reporting-client-side-ad-tracking-schema"></a>

MediaTailor クライアント側の広告追跡機能を使用すると、詳細なクライアント側の広告追跡データをプレイヤー環境に統合できます。以下のセクションでは、広告追跡スキーマ全体と、スキーマを構成する特定のプロパティと値について説明します。

## Schema
<a name="ad-reporting-client-side-ad-tracking-schema-table"></a>

次の JSON 構造は、MediaTailor クライアント側の広告追跡スキーマを示しています。この表現は、異なるパート間の関係を理解するのに役立つスキーマのネスト構造を示しています。

各プロパティの詳細については、「」を参照してください[プロパティ](#ad-reporting-client-side-ad-tracking-schema-properties)。

```
{
  "avails": [
    {
      "ads": [
        {
          "adID": "string",
          "adParameters": "string",
          "adSystem": "string",
          "adTitle": "string",
          "adVerifications": [
            {
              "executableResource": [
                {
                  "apiFramework": "string",
                  "type": "string",
                  "uri": "string",
                  "language": "string"
                }
              ],
              "javaScriptResource": [
                {
                  "apiFramework": "string",
                  "browserOptional": "string",
                  "uri": "string"
                }
              ],
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ],
              "vendor": "string",
              "verificationParameters": "string"
            }
          ],
          "companionAds": [
            {
              "adParameters": "string",
              "altText": "string",
              "attributes": {
                "adSlotId": "string",
                "apiFramework": "string",
                "assetHeight": "string",
                "assetWidth": "string",
                "expandedHeight": "string",
                "expandedWidth": "string",
                "height": "string",
                "id": "string",
                "pxratio": "string",
                "renderingMode": "string",
                "width": "string"
              },
              "companionClickThrough": "string",
              "companionClickTracking": "string",
              "htmlResource": "string",
              "iFrameResource": "string",
              "sequence": "string",
              "staticResource": "string",
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ]
            }
          ],
          "creativeId": "string",
          "creativeSequence": "string",
          "duration": "string",
          "durationInSeconds": number,
          "extensions": [
            {
              "type": "string",
              "content": "string"
            }
          ],
          "icons": [
            {
              "attributes": {
                "apiFramework": "string",
                "duration": "string",
                "height": "string",
                "offset": "string",
                "program": "string",
                "pxratio": "string",
                "width": "string",
                "xPosition": "string",
                "yPosition": "string"
              },
              "htmlResource": "string",
              "iconClicks": {
                "iconClickThrough": "string",
                "iconClickTracking": {
                  "id": "string"
                },
                "iconClickFallbackImages": [
                  {
                    "altText": "string",
                    "height": "string",
                    "width": "string",
                    "staticResource": {
                      "creativeType": "string",
                      "uri": "string"
                    }
                  }
                ]
              },
              "iconViewTracking": "string",
              "iFrameResource": "string",
              "staticResource": {
                "creativeType": "string",
                "uri": "string"
              }
            }
          ],
          "mediaFiles": {
            "adParameters": "string",
            "duration": "string",
            "durationInSeconds": number,
            "mediaFilesList": [
              {
                "apiFramework": "string",
                "delivery": "string",
                "height": "string",
                "maintainAspectRatio": "string",
                "mediaFileUri": "string",
                "mediaType": "string",
                "scalable": "string",
                "width": "string",
                "bitrate": "string"
              }
            ],
            "mezzanine": "string",
            "startTime": "string",
            "startTimeInSeconds": number,
            "trackingEvents": [
              {
                "beaconUrls": ["string"],
                "duration": "string",
                "durationInSeconds": number,
                "dateTime": "string",
                "eventId": "string",
                "eventType": "string",
                "startTime": "string",
                "startTimeInSeconds": number
              }
            ]
          },
          "startTime": "string",
          "startTimeInSeconds": number,
          "dateTime": "string",
          "adBreakTrackingEvents": [...],
          "vastAdId": "string"
        }
      ],
      "adType": "string",
      "availID": "string",
      "duration": "string",
      "durationInSeconds": number,
      "startTime": "string",
      "startTimeInSeconds": number,
      "dateTime": "string",
      "adMarkerDuration": "string",
      "adProgramDateTime": "string",
      "dashAvailabilityStartTime": "string",
      "hlsAnchorMediaSequenceNumber": "string"
    }
  ],
  "nonLinearAvails": [
    {
      "nonLinearAds": [...],
      "nonLinearAdsList": [...]
    }
  ],
  "nextToken": "string",
  "meta": {}
}
```

## プロパティ
<a name="ad-reporting-client-side-ad-tracking-schema-properties"></a>

次の表に、クライアント側の追跡 API のプロパティ、その定義、値タイプ、および例を示します。


****  

| プロパティ | 定義 | 値のタイプ | 例 | 
| --- | --- | --- | --- | 
|   adID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) パス: `/avails/ads/adId` VAST マッピング: なし  | String | 10 | 
|   adBreakTrackingEvents  |  VAST レスポンスから VMAP 追跡イベントを伝送する配列。詳細については、[VMAP 1.0 仕様のセクション 2.3.3 ](https://www.iab.com/guidelines/vmap/)を参照してください。 パス: `/avails/ads/adBreakTrackingEvents`  | 配列 |  []  | 
|   adMarkerDuration  |  マニフェストの広告マーカーから観測された表示期間。  | String |  30  | 
|   adParameters  |  MediaTailor がプレイヤーに渡す VAST VPAID からの広告パラメータの文字列。 パス: `/avails/ads/adParameters` VAST マッピング: `VAST/Ad/InLine/Creatives/Creative/Linear/AdParameters`  | String |  | 
|   adProgramDateTime  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   ads  |  表示を構成する広告オブジェクトを含む配列。広告は、マニフェストに表示される順序で一覧表示されます。 パス: `/avails/ads`  | 配列 |  []  | 
|   adSystem  |  広告を提供するシステムの名前。  必ず値を指定してください。値を指定しない場合、問題が発生する可能性があります。   | String |  myADS  | 
|   adTitle  |  広告のタイトル。  | String |  ad1  | 
|   adVerifications  |  クリエイティブ再生を検証するためにサードパーティーの測定コードを実行するために必要なリソースとメタデータが含まれています。このプロパティの詳細については、[VAST 4.2 仕様](https://iabtechlab.com/standards/vast/)のセクション 3.16 を参照してください。 MediaTailor は VAST 3 拡張ノード`adVerifications`として をサポートします。 パス: `/avails/ads/adVerifications` VAST マッピング: `VAST/Ad/InLine/AdVerifications`  | 配列 |  []  | 
|   altText  |  コンパニオン広告のイメージの代替テキスト。このテキストにより、視覚障害者がイメージの説明を読み返すための記述的オーディオサポートを持つプレイヤーが可能になります。 パス: `/avails/ads/companionAds/altText`  | String |  video sequence advertising sneakers  | 
|   apiFramework  |  この広告が VPAID 広告であることをプレイヤーに伝える`VPAID`には、 に設定します。 スキーマ内の複数の場所に表示できます。  | String |  VPAID  | 
|   availID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) パス: `/avails/availID`  | String |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | 
|   avails  |  アクティブなマニフェストウィンドウに表示される広告ブレークオブジェクトまたは*表示*を含む配列。表示は、マニフェストに表示される順序で一覧表示されます。 パス: `/avails`  | 配列 |  []  | 
|   adType  |  広告のタイプ。 パス: `/avails/adType`および `/avails/ads/adType`  | String |  | 
|   dateTime  |  広告表示または広告の開始を ISO 8601 秒形式でプログラムする日時。 パス: `/avails/dateTime`および `/avails/ads/dateTime`  | String |  | 
|   duration  |  長さ、ISO 8601 秒形式。レスポンスには、広告表示全体と各広告とビーコンの期間が含まれますが、ビーコンの期間は常にゼロです。 パス: `/avails/duration`および `/avails/ads/duration`  | String | 15.015 | 
|   durationInSeconds  |  長さ、秒形式。 パス: `/avails/durationInSeconds`および `/avails/ads/durationInSeconds`  | Number |  | 
|   extensions  |  広告サーバーが使用する VAST のカスタム拡張機能。拡張機能の詳細については、[VAST 4.2 仕様](https://iabtechlab.com/standards/vast/)のセクション 3.18 を参照してください。 パス: `/avails/ads/extensions` VAST マッピング: `VAST/Ad/InLine/Extensions`  | 配列 | [] | 
|   icons  |  広告のアイコン要素。 パス: `/avails/ads/icons` VAST マッピング: `VAST/Ad/InLine/Creatives/Creative/Linear/Icons`  | 配列 |  | 
|   mediaFiles  |  プレイヤーが広告表示に必要とする動画やその他のアセット。 パス: `/avails/ads/mediaFiles`  | オブジェクト |  | 
|   nonLinearAvails  |  非線形広告表示オブジェクトの配列。 パス: `/nonLinearAvails`  | 配列 |  | 
|   executableResource  |  検証用の実行可能リソース。 パス: `/avails/ads/adVerifications/executableResource` VAST マッピング: `VAST/Ad/InLine/AdVerifications/Verification/ExecutableResource`  | 配列 |  | 
|   javaScriptResource  |  検証用の JavaScript リソース。 パス: `/avails/ads/adVerifications/javaScriptResource` VAST マッピング: `VAST/Ad/InLine/AdVerifications/Verification/JavaScriptResource`  | 配列 |  | 
|   trackingEvents  |  検証広告またはコンパニオン広告のイベントを追跡します。 パス: `/avails/ads/adVerifications/trackingEvents`または `/avails/ads/companionAds/trackingEvents`  | 配列 |  | 
|   vendor  |  検証ベンダー。 パス: `/avails/ads/adVerifications/vendor` VAST マッピング: `VAST/Ad/InLine/AdVerifications/Verification/@vendor`  | String |  | 
|   uri  |  実行可能アセット、動画アセット、または追跡エンドポイントを指す URI。 パス: スキーマ内のさまざまな場所 VAST マッピング: VAST のさまざまな CDATA 要素  | String | https://tracking.example.com/impression | 
|   verificationParameters  |  検証パラメータ。 パス: `/avails/ads/adVerifications/verificationParameters` VAST マッピング: `VAST/Ad/InLine/AdVerifications/Verification/VerificationParameters`  | String |  | 
|   attributes  |  ディメンションやレンダリングモードなどのコンパニオン広告属性。 パス: `/avails/ads/companionAds/attributes`  | オブジェクト |  | 
|   companionClickThrough  |  視聴者がコンパニオン広告をクリックしたときにメディアプレーヤーが開く、広告主のページへの URL。 パス: `/avails/ads/companionAds/companionClickThrough` VAST マッピング: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickThrough`  | String | https://aws.amazon.com/ | 
|   companionClickTracking  |  `companionClickThrough` プロパティの追跡 URL。 パス: `/avails/ads/companionAds/companionClickTracking` VAST マッピング: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickTracking`  | String | https://myads.com/beaconing/event=clicktracking | 
|   htmlResource  |  ストリーミングプロバイダーの HTML ページ内に直接挿入される CDATA エンコードされた HTML。 パス: `/avails/ads/companionAds/htmlResource` VAST マッピング: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/HTMLResource`  | String | <\$1[CDATA[<\$1doctype html><html><head><meta name=\$1"viewport\$1" content=\$1"width=1, initial-scale=1.0, minimum-scale=1.0,...]]> | 
|   iFrameResource  |  ストリーミングプロバイダーが iframe にロードする HTML リソースファイルの URL。 パス: `/avails/ads/companionAds/iFrameResource` VAST マッピング: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/iFrameResource`  | String |  | 
|   sequence  |  VAST レスポンスでクリエイティブに指定されたシーケンス値。 パス: `/avails/ads/companionAds/sequence`  | String | 1 | 
|   startTime  |  ISO 8601 秒形式の時間位置。HLS の場合、これは再生セッションの開始を基準としています。DASH の場合、これはマニフェストの AST (可用性の開始時刻) を基準としています。レスポンスには、ad avail 全体、および各広告とビーコンの開始時間が含まれます。 パス: `/avails/startTime`および `/avails/ads/startTime`  | String | PT18.581355S | 
|   startTimeInSeconds  |  秒形式の時間位置。HLS の場合、これは再生セッションの開始を基準としています。DASH の場合、これはマニフェストの AST (可用性の開始時刻) を基準としています。レスポンスには、ad avail 全体、および各広告とビーコンの開始時間が含まれます。 パス: `/avails/startTimeInSeconds`および `/avails/ads/startTimeInSeconds`  | Number | 18.581 | 
|   eventId  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   event  |  追跡イベントの名前。 パス: `/avails/ads/adVerifications/trackingEvents/event`または `/avails/ads/companionAds/trackingEvents/event`  | String | impression, start, firstQuartile, midpoint, thirdQuartile, complete | 
|   beaconUrls  |  MediaTailor が広告ビーコンを送信する URL。 パス: `/avails/ads/mediaFiles/trackingEvents/beaconUrls`  | 配列 |  | 
|   bitrate  |  ビデオアセットのビットレート。このプロパティは通常、実行可能アセットには含まれません。  | String | 2048 | 
|   companionAds  |  1 つ以上のコンパニオン広告コンテンツ仕様。それぞれが使用するリソースファイルを指定します。コンパニオン広告は広告表示に付随し、広告のフレームやバナーなどのコンテンツを動画の近くに表示します。 パス: `/avails/ads/companionAds`  | 配列 | [] | 
|   creativeId  |  広告の`Creative`タグの`Id`属性値。  | String | creative-1 | 
|   creativeSequence  |  VAST レスポンス`Ad@id`の値に従って、広告を再生するシーケンス。  | String | 1 | 
|   dashAvailabilityStartTime  |  ライブ/動的 DASH の場合、オリジンマニフェスト`MPD@availabilityStartTime`の 。  | String | 2022-10-05T19:38:39.263Z | 
|   delivery  |  `progressive` または `streaming`プロトコルが使用されているかどうかを示します。  | String | progressive | 
|   eventType  |  ビーコンのタイプ。 パス: `/avails/ads/mediaFiles/trackingEvents/eventType`  | String | impression | 
|   height  |  ビデオアセットの高さをピクセル単位で示します。  | String | 360 | 
|   hlsAnchorMediaSequenceNumber  |  HLS オリジンマニフェストに表示される最初/最も古いメディアシーケンスのメディアシーケンス番号。  | String | 77 | 
|   maintainAspectRatio  |  スケーリング中に動画のアスペクト比を維持するかどうかを示します。  | ブール値 | true | 
|   mediaFilesList  |  プレイヤーが広告表示に必要とする動画やその他のアセットを指定します。 パス: `/avails/ads/mediaFiles/mediaFilesList`  | 配列 | [] | 
|   mediaFileUri  |  実行可能アセットまたはビデオアセットを指す URI。  | String | https://myad.com/ad/ad134/vpaid.js | 
|   mediaType  |  クリエイティブアセットまたはコンパニオンアセットの MIME タイプ。  | String | video/mp4 | 
|   meta  |  広告の追加メタデータ。  | オブジェクト |  | 
|   mezzanine  |  VPAID 広告にメザニン MP4 アセットが含まれている場合に指定される URL。 パス: `/avails/ads/mediaFiles/mezzanine`  | String | https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4 | 
|   nextToken  |  このような値が存在する場合、結果の次のページを指すトークンの値。  | String | UFQzOS44NzNTXzIwMjMtMDctMzFUMTY6NTA6MDYuMzUwNjI2ODQ1Wl8x | 
|   nonLinearAds  |  動画コンテンツと一緒に表示される非線形広告。  | 配列 | [] | 
|   nonLinearAdsList  |  非線形広告のリスト。  | 配列 | [] | 
|   scalable  |  動画を他のディメンションにスケールするかどうかを示します。  | ブール値 | true | 
|   skipOffset  |  ユーザーがスキップコントロールを使用できるようにするタイミングを識別する時間値。  | String | 00:00:05 | 
|   staticResource  |  広告コンポーネントに使用される静的クリエイティブファイルへの URL。 パス: `/avails/ads/companionAds/staticResource`  | String | https://very-interactive-ads.com/campaign1/file.json?c=1019113602 | 
|   vastAdId  |  `Ad` タグの`Id`属性値。  | String | ad1 | 
|   width  |  ビデオアセットの幅をピクセル単位で示します。  | String | 640 | 
|   xPosition  |  ビデオプレーヤー内のアイコンの水平位置。特定のピクセル値、または「左」や「右」などの位置を指定できます。 パス: `/avails/ads/icons/attributes/xPosition`  | String | left、または 10 | 
|   yPosition  |  ビデオプレーヤー内のアイコンの垂直位置。特定のピクセル値、または「上」や「下」などの位置を指定できます。 パス: `/avails/ads/icons/attributes/yPosition`  | String | top、または 10 | 
|   iconClicks  |  アイコンのクリックスルーと追跡情報が含まれます。 パス: `/avails/ads/icons/iconClicks`  | オブジェクト |  | 
|   iconClickThrough  |  ビューワーがアイコンをクリックしたときにメディアプレーヤーが開く、広告主のページへの URL。 パス: `/avails/ads/icons/iconClicks/iconClickThrough`  | String | https://advertiser.com/landing-page | 
|   iconClickTracking  |  `iconClickThrough` プロパティの追跡 URL。 パス: `/avails/ads/icons/iconClicks/iconClickTracking`  | オブジェクト |  | 
|   iconClickFallbackImages  |  アイコンを表示できない場合に表示するフォールバックイメージの配列。 パス: `/avails/ads/icons/iconClicks/iconClickFallbackImages`  | 配列 |  | 
|   iconViewTracking  |  アイコンが表示されたときに追跡する URL。 パス: `/avails/ads/icons/iconViewTracking`  | String | https://tracking.example.com/icon-view | 
|   offset  |  広告の再生中にアイコンが表示されるときのタイムオフセット。 パス: `/avails/ads/icons/attributes/offset`  | String | 00:00:05 | 
|   program  |  アイコンに関連付けられた「AdChoices」などのプログラムまたはイニシアチブ。 パス: `/avails/ads/icons/attributes/program`  | String | AdChoices | 
|   pxratio  |  アイコンまたはコンパニオン広告のピクセル比。高 DPI ディスプレイに使用されます。 パス: `/avails/ads/icons/attributes/pxratio`または `/avails/ads/companionAds/attributes/pxratio`  | String | 1、または 2 | 
|   type  |  リソースまたは拡張機能のタイプ。 パス: `/avails/ads/extensions/type`または `/avails/ads/adVerifications/executableResource/type`  | String | text/javascript | 
|   content  |  拡張機能の内容。 パス: `/avails/ads/extensions/content`  | String |  | 
|   language  |  実行可能リソースのプログラミング言語。 パス: `/avails/ads/adVerifications/executableResource/language`  | String | javascript | 
|   browserOptional  |  JavaScript リソースにブラウザのサポートが必要かどうかを示します。 パス: `/avails/ads/adVerifications/javaScriptResource/browserOptional`  | String | true、または false | 
|   id  |  スキーマ内のさまざまな要素の識別子。 パス: `/avails/ads/companionAds/attributes/id`または `/avails/ads/icons/iconClicks/iconClickTracking/id`  | String | companion-1 | 
|   assetHeight  |  コンパニオン広告アセットの高さ。 パス: `/avails/ads/companionAds/attributes/assetHeight`  | String | 250 | 
|   assetWidth  |  コンパニオン広告アセットの幅。 パス: `/avails/ads/companionAds/attributes/assetWidth`  | String | 300 | 
|   expandedHeight  |  展開時のコンパニオン広告の高さ。 パス: `/avails/ads/companionAds/attributes/expandedHeight`  | String | 600 | 
|   expandedWidth  |  展開時のコンパニオン広告の幅。 パス: `/avails/ads/companionAds/attributes/expandedWidth`  | String | 600 | 
|   renderingMode  |  コンパニオン広告のレンダリングモード。 パス: `/avails/ads/companionAds/attributes/renderingMode`  | String | default、または transparent | 
|   adSlotId  |  コンパニオン広告を表示する広告スロットの ID。 パス: `/avails/ads/companionAds/attributes/adSlotId`  | String | banner-1 | 
|   creativeType  |  クリエイティブアセットの MIME タイプ。 パス: `/avails/ads/icons/staticResource/creativeType`  | String | image/png | 

# 広告追跡アクティビティのタイミング
<a name="ad-reporting-client-side-ad-tracking-schema-activity-timing"></a>

クライアント側のレポートでは、プレイヤーは精度の高い追跡イベント (ビーコン) を出力する必要があります。MediaTailor クライアント側の追跡スキーマを使用すると、すべての表示、広告、コンパニオン、オーバーレイ、追跡イベント、タイミングと期間情報、およびさまざまな形式が存在することを確認できます。

プレイヤーは、次の MediaTailor のキーと値のペアを使用して、イベントの追跡などの広告イベントアクティビティを再生位置と正確に照合します。
+ [startTime](ad-reporting-client-side-ad-tracking-schema.md#property-starttime) 
+  [startTimeInSeconds](ad-reporting-client-side-ad-tracking-schema.md#property-starttimeinseconds) 
+  [adProgramDateTime](ad-reporting-client-side-ad-tracking-schema.md#property-adprogramdatetime) 
+  [adID](ad-reporting-client-side-ad-tracking-schema.md#property-adid)/[eventId](ad-reporting-client-side-ad-tracking-schema.md#property-eventid) 

HLS と DASH は、 と の値を実装`startTime``startTimeInSeconds`します。
+ HLS - `startTime`値は再生セッションの開始からの相対値です。再生セッションの開始は、ゼロ時間として定義されます。広告の `startTime`は、表示までのすべての`EXT-INF`セグメント期間の累積値の合計です。広告または追跡イベントが属するセグメントのメディアシーケンス番号は、クライアント側の追跡レスポンス`eventId`の `adId`または にも対応します。
+ DASH:
  + ライブ/動的マニフェスト - `startTime`値は DASH マニフェスト`MPD@availabilityStartTime`の を基準としています。`MPD@avaibilityStartTime` は、ストリームを消費するすべての MediaTailor セッションのタイミングアンカーです。
  + VOD/静的マニフェスト - `startTime`値は再生セッションの開始からの相対値です。再生セッションの開始は、ゼロ時間として定義されます。avail 内の各広告は、独自の `Period`要素内に含まれています。`Period` 要素には、クライアント側の追跡ペイロードの値と同じ`startTime`値を持つ`@start`属性があります。は、クライアント側の追跡レスポンス`eventId`の `adId`または `PeriodId`にも対応します。

**Example HLS:**  
次の例では、MediaTailor セッションが開始され、次のマニフェストがクライアントに提供される最初のマニフェストです。  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:4603263
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:23.295678Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_34.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:27.306345Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_35.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:31.317012Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_36.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:35.327679Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_37.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:39.338346Z
#EXTINF:2.538667,
https://123.cloudfront.net/out/v1/index_1_38.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:41.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:43.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00002.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:45.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00003.ts
```
クライアント側の追跡 JSON ペイロードでは、次の値が適用されます。  
+  `startTime`: `"PT18.581355S"` 
+  `startTimeInSeconds`: `18.581` 
+  `availProgramDateTime`: `"2023-05-03T21:24:41.453Z"` 
+  `adId`: `4603269` 

**Example DASH:**  
次の例では、MediaTailor セッションはマニフェストでミッドロールを取得します。広告期間である 2 番目の期間の`@start`属性値には、 値に対する相対`MPD@availabilityStartTime`値があることに注意してください。この値は、MediaTailor がすべてのセッションについてクライアント側の追跡レスポンス`startTime`フィールドに書き込む値です。  

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2022-10-05T19:38:39.263Z" minBufferTime="PT10S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-05-03T22:06:48.411Z" suggestedPresentationDelay="PT10S" timeShiftBufferDepth="PT1M30S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://123.channel-assembly.mediatailor.us-west-2.amazonaws.com/v1/channel/my-channel/</BaseURL>
    <Location>https://123.cloudfront.net/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/MediaTailor-Live-HLS-DASH/channel/channel1/dash.mpd?aws.sessionId=794a15e0-2a7f-4941-a537-9d71627984e5</Location>
    <Period id="1683151479166_1" start="PT5042H25M59.903S" xmlns="urn:mpeg:dash:schema:mpd:2011">
        <BaseURL>https://123.cloudfront.net/out/v1/f1a946be8efa45b0931ea35c9055fb74/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
    <Period id="1683151599194_1_1" start="PT5042H27M59.931S">
        <BaseURL>https://123.cloudfront.net/tm/94063eadf7d8c56e9e2edd84fdf897826a70d0df/fpc5omz5wzd2rdepgieibp23ybyqyrme/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
</MPD>
```
クライアント側の追跡 JSON ペイロードでは、次の値が適用されます。  
+  `startTime`: `"PT5042H27M59.931S"` 
+  `startTimeInSeconds`: `18152879.931` 
+  `availProgramDateTime`: *null* 
+  `adId`: `1683151599194_1_1` 

# クライアント側の広告追跡のプレイヤーコントロールと機能
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls"></a>

MediaTailor クライアント側の追跡メタデータは、さまざまなプレイヤーコントロールと機能をサポートしています。次のリストでは、一般的なプレイヤーコントロールについて説明します。

**Topics**
+ [スクラブ](#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)
+ [広告カウントダウンタイマー](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ [スキップ可能な広告](#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ [広告クリックスルー](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ [コンパニオン広告](#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)
+ [インタラクティブ広告 (SIMID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads)
+ [インタラクティブ広告 (VPAID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads)
+ [Google Why This Ad (WTA) のアイコン](#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)

## スクラブ
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing"></a>

再生エクスペリエンスを向上させるために、プレイヤーは再生タイムラインに広告位置を表示できます。MediaTailor は、これらの広告位置をクライアント側の追跡レスポンス`startTimeInSeconds`の値の形式で利用できるようにします。

**注記**  
一部のストリーミングプロバイダーは、広告位置を超えたスクラブを防止します。

![\[広告が再生されるビデオタイムライン内の MediaTailor マーク位置を示すスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/scrubbing.png)


次のクライアント側の追跡ペイロード JSON レスポンスは、avails 配列のルート JSON オブジェクト内の avail (ad break) 開始時刻を示しています。プレイヤーはこのデータを使用して、プレイヤータイムラインの広告時間枠の場所を 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": []
}
```

## 広告カウントダウンタイマー
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer"></a>

MediaTailor を使用すると、広告カウントダウンタイマーを使用して、広告ブレークの表示中にオーディエンスのエンゲージメントを維持できます。対象者はタイマーを使用して、広告時間枠が終了し、プログラムが再開されるタイミングを把握できます。

![\[MediaTailor が広告カウントダウンタイマーを表示しているスクリーンショット。このプログラムが再開されるまでの残り時間を視聴者に指示します。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad-countdown-timer.png)


広告カウントダウンタイマーで役割を果たすクライアント側の追跡メタデータの要素は`startTime`、、`startTimeInSeconds`、`duration`、および です`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": []
}
```

セッションの経過時間が avail の開始時間に達すると、プレイヤーは avail の期間に一致する値を持つカウントダウンタイマーを表示します。カウントダウンタイマーの値は、経過時間が表示の開始時間を超えると減少します。

**Example 式: HLS (ライブと VOD) と DASH (VOD) のカウントダウンタイマー**  
+ `session_start_time` = すべての`EXT-INF`継続時間値の合計 - 3 つの最新の`EXT-INF`メディアシーケンスの継続時間値
+ タイマー値 = `duration` - (`session_elapsed_time` - `startTime`)

![\[HLS (ライブおよび VOD) マニフェストと DASH (VOD) マニフェストについて、セッションの開始時刻と表示の開始時刻に基づく広告カウントダウンタイマーの計算を示す図。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad-countdown-timer-hls-dash-vod.png)


**Example 計算式: DASH のカウントダウンタイマー (ライブ)**  
+ `session_start_time` = (最新のセグメントの `startTime` \$1 `duration`) / `timescale` - `MPD@suggestedPresentationDelay`
+ タイマー値 = `duration` - (`session_elapsed_time` - `startTime`)

![\[ライブ DASH マニフェストのセッションの開始時刻と表示の開始時刻に基づく広告カウントダウンタイマーの計算を示す図。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad-countdown-timer-dash-live.png)


## スキップ可能な広告
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads"></a>

*スキップ可能な広告*は、ビューワーが一部の広告をスキップしてプログラムの表示を再開できるようにする広告スポットです。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`配列内の広告メタデータを示しています。配列には、MediaTailor が VAST レスポンスから取得した`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": []
}
```

## 広告クリックスルー
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough"></a>

クリックスルー URIs を使用すると、広告が視聴者の注意を引くのにどの程度成功したかを広告主が測定できます。ビューワーが進行中の広告のアクティブな動画フレームをクリックすると、ウェブブラウザは広告主のホームページまたはキャンペーンランディングページの URI を開きます。プレイヤー開発者は、広告ビデオにボタンやラベルを重ねるなどのクリック動作を決定し、クリックして詳細を確認するメッセージを表示します。プレイヤー開発者は、視聴者がアクティブな動画フレームをクリックした後、広告の動画を一時停止することがよくあります。

![\[ビデオプレーヤーでの広告クリックスルーのスクリーンショット。ビューワーはビデオフレームをクリックします。プレイヤーは動画を一時停止し、ウェブブラウザを開いて、閲覧者を広告主のホームページまたはキャンペーンランディングページに移動します。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/ad-clickthrough.png)


MediaTailor は、VAST レスポンスで返されたリニアビデオのクリックスルーイベント URLs を解析して使用できます。次の 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 が`trackingEvents`配列内にクリックスルー URL とクリック追跡 URLs を表示する方法を示しています。`clickThrough` イベントタイプはクリックスルー広告を表し、`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": []
}
```

## コンパニオン広告
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads"></a>

*コンパニオン広告*は、線形クリエイティブと一緒に表示されます。コンパニオン広告を使用して、製品、ロゴ、ブランド情報を表示することで、広告スポットの有効性を高めます。ディスプレイ広告には、クイックレスポンス (QR) コードとクリック可能なエリアが用意されており、視聴者のエンゲージメントを高めることができます。

MediaTailor は VAST レスポンスでコンパニオン広告をサポートしています。、`StaticResource`、`iFrameResource`および `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)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads"></a>

*SecureInteractive Media Interface Definition* (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)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads"></a>

*Video Player Ad Interface Definition* (VPAID) は、広告インタラクティブやその他の機能を有効にする、広告とビデオプレーヤーの間のプロトコルを指定します。ライブストリームの場合、MediaTailor は、表示期間中にスレートセグメントを にステッチし、ビデオプレイヤーが消費するクライアント側の追跡レスポンスに VPAID クリエイティブのメタデータを配置することで、VPAID 形式をサポートします。プレイヤーは VPAID ファイルをダウンロードして線形クリエイティブを再生し、クライアントのスクリプトを実行します。プレイヤーはスレートセグメントを再生*しないでください*。

**注記**  
VPAID は VAST 4.1 以降廃止されました。

![\[VPAID 広告再生の図。MediaTailor は、コンテンツタイムラインの空き時間に対してスレートセグメントをステッチします。プレイヤーは、有効期間中に VPAID アセットに切り替えます。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/interactive-ads-vpaid.png)


次の例は、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 Why This Ad (WTA) のアイコン
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta"></a>

*AdChoices* は、広告がどのようにターゲットにされたかなど、表示される広告に関する情報を視聴者に提供する業界標準です。

![\[Google Why This Ad (WTA) ロゴ。WTA は、それらの広告がどのようにターゲットにされたかなど、表示される広告についてビューワーに通知します。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/google-wta.png)


MediaTailor クライアント側の追跡 API は、VAST レスポンスの VAST 拡張機能ノードで伝送されるアイコンメタデータをサポートします。VAST レスポンスの WTA の詳細については、[この VAST XML レスポンスのサンプル](https://storage.googleapis.com/interactive-media-ads/ad-tags/ima_wta_sample_vast_3.xml)を参照してください。

**注記**  
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": []
}
```

# クライアント側のビーコン
<a name="ad-reporting-client-side-beaconing"></a>

クライアント側の追跡`startTimeInSeconds`要素を使用すると、MediaTailor を使用してビーコンのタイミングをサポートできます。

次の JSON レスポンスは、インプレッション、開始、四分位数、完了の主なビーコンタイプを示しています。

**注記**  
インタラクティブ広告局 (IAB) のビデオインプレッション測定ガイドラインには、インプレッションでは広告コンテンツをクライアント側でロードし、少なくともプレイヤーにレンダリングする時間が必要であると記載されています。詳細については、IAB ウェブサイトの[「デジタルビデオ広告配信テンプレート (VAST)](https://www.iab.com/guidelines/vast/)」を参照してください。

```
{
  "avails": [
    {
      "ads": [
        {
          "adId": "8104385",
          "duration": "PT15.100000078S",
          "durationInSeconds": 15.1,
          "startTime": "PT17.817798612S",
          "startTimeInSeconds": 17.817,
          "trackingEvents": [
          {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=impression"
              ],
              "duration": "PT15.100000078S",
              "durationInSeconds": 15.1,
              "eventId": "8104385",
              "eventType": "impression",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=start"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104385",
              "eventType": "start",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104386",
              "eventType": "firstQuartile",
              "startTime": "PT21.592798631S",
              "startTimeInSeconds": 21.592
            },
             {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=midpoint"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104387",
              "eventType": "midpoint",
              "startTime": "PT25.367798651S",
              "startTimeInSeconds": 25.367
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104388",
              "eventType": "thirdQuartile",
              "startTime": "PT29.14279867S",
              "startTimeInSeconds": 29.142
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104390",
              "eventType": "complete",
              "startTime": "PT32.91779869S",
              "startTimeInSeconds": 32.917
            }
          ]
        }
      ],
      "availId": "8104385",
      "duration": "PT15.100000078S",
      "durationInSeconds": 15.1,
      "startTime": "PT17.817798612S",
      "startTimeInSeconds": 17.817
    }
  ]
}
```

# サーバー側の広告ビーコンを使用したハイブリッドモード
<a name="ad-reporting-hybrid-mode"></a>

MediaTailor は、セッション追跡用のハイブリッドモードをサポートしています。このモードでは、サービスは再生関連の広告追跡イベントを発行しますが、完全なクライアント側の追跡ペイロードをセッションで使用できるようにします。

再生プレフィックスを使用してハイブリッド追跡を有効にするには、プレーヤーから、プロトコルに従って、次のいずれかの形式のリクエストを使用して新しい MediaTailor 再生セッションを初期化します。

**Example : HLS 形式**  

```
POST master.m3u8
    {
        "adsParams": {
           "deviceType": "ipad"
       },
       "reportingMode":"server"
    }
```

**Example : DASH 形式**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "ipad"
       },
       "reportingMode":"server"
    }
```

MediaTailor は、次の追跡イベントをハイブリッドモードで維持します。
+ インプレッション
+ Start
+ 最初の四分位数
+ Midpoint
+ 第 3 四分位数
+ 完了
+ `breakStart` (vmap)
+ `breakEnd` (vmap)

# クライアント側の広告追跡統合
<a name="ad-reporting-client-side-ad-tracking-integrations"></a>

このセクションでは、MediaTailor とさまざまなクライアント側の広告追跡サーバーの統合について説明します。

**Topics**
+ [オープン測定 SDK](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)
+ [Datazoom フリープレイヤー SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz)
+ [Roku 広告フレームワーク (RAF)](#ad-reporting-client-side-ad-tracking-integrations-raf)
+ [TheoPlayer](#ad-reporting-client-side-ad-tracking-integrations-theoplayer)
+ [MediaTailor SDK](#ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk)

## オープン測定 SDK
<a name="ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk"></a>

Interactive Advertising Bureau (IAB) Open Measurement SDK (OM SDK) は、ウェブビデオ環境とネイティブアプリケーション環境に配信される広告のサードパーティーの可視性と検証の測定を容易にします。

古い VAST バージョン 3 ドキュメントの場合、検証コードは拡張タイプ の拡張ノードでロードする必要があります`AdVerifications`。拡張ノードのルートは、VAST 4.1 要素と同じスキーマを持つ`AdVerifications`ノードです。

OM SDK の導入を容易にするために、MediaTailor は Datazoom と提携し、オープン測定用に設定および検証された無料プレイヤー SDKs を提供しています。詳細については、「[Datazoom フリープレイヤー SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz)」を参照してください。

**注記**  
MediaTailor は現在、VAST バージョン 3 のみをサポートしています。

**Example : バージョン 4.1 より前の VAST 3 の検証ノード**  

```
...
<Extensions>
    <Extension type="AdVerifications">
        <AdVerifications>
            <Verification vendor="company.com-omid">
                <JavaScriptResource apiFramework="omid" browserOptional="true">
                    <![CDATA[https://verification.com/omid_verification.js]]>
                </JavaScriptResource>
                <TrackingEvents>
                    <Tracking event="verificationNotExecuted">
                        <![CDATA[https://verification.com/trackingurl]]>
                    </Tracking>
                </TrackingEvents>
                <VerificationParameters>
                    <![CDATA[verification params key/value pairs]]>
                </VerificationParameters>
            </Verification>
        </AdVerifications>
    </Extension>
</Extensions>
```

MediaTailor は`<Extensions>`ノードから`AdVerifications`データを抽出し、クライアント側の追跡レスポンスの`adVerifications`配列に配置します。

**Example : クライアント側の追跡レスポンスの adVerifications 配列**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "3062770",
          "adParameters": "",
          "adProgramDateTime": "2023-08-23T16:25:40.914Z",
          "adSystem": "2.0",
          "adTitle": "AD-polarbear-15",
          "adVerifications": [
            {
              "executableResource": [],
              "javaScriptResource": [
                {
                  "apiFramework": "omid",
                  "browserOptional": "true",
                  "uri": "https://verification.com/omid_verification.js"
                }
              ],
              "trackingEvents": [
                {
                  "event": "verificationNotExecuted",
                  "uri": "https://verification.com/trackingurl"
                }
              ],
              "vendor": "company.com-omid",
              "verificationParameters": "verification params key value pairs"
            }
          ],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<AdVerifications>\n\t\t\t\t\t\t<Verification vendor=\"company.com-omid\">\n\t\t\t\t\t\t\t<JavaScriptResource apiFramework=\"omid\" browserOptional=\"true\"><![CDATA[https://verification.com/omid_verification.js;]]></JavaScriptResource>\n\t\t\t\t\t\t\t<TrackingEvents>\n\t\t\t\t\t\t\t\t<Tracking event=\"verificationNotExecuted\"><![CDATA[;https://verification.com/trackingurl;]]></Tracking>\n\t\t\t\t\t\t\t</TrackingEvents>\n\t\t\t\t\t\t\t<VerificationParameters><![CDATA[verification params key/value pairs;]]></VerificationParameters>\n\t\t\t\t\t\t</Verification>\n\t\t\t\t\t</AdVerifications>",
              "type": "AdVerifications"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT10.11S",
          "startTimeInSeconds": 10.11,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://n8ljfs0h09.execute-api.us-west-2.amazonaws.com/v1/impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "3062770",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT10.11S",
              "startTimeInSeconds": 10.11
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "3062770",
      "availProgramDateTime": "2023-08-23T16:25:40.914Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT10.11S",
      "startTimeInSeconds": 10.11
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMC4xMVNfMjAyMy0wOC0yM1QxNjoyNjoyNC4yNDYxMDIxOTBaXzE%3D",
  "nonLinearAvails": []
}
```

**注記**  
IAB Tech Lab と連携して、コンプライアンスを確保するためにアプリケーションが毎年認定されるようにします。

OM SDK の詳細については、IAB Tech Lab ウェブサイトの[「Open Measurement SDK](https://iabtechlab.com/standards/open-measurement-sdk/)」を参照してください。

## Datazoom フリープレイヤー SDKs
<a name="ad-reporting-client-side-ad-tracking-integrations-dz"></a>

プレイヤー SDKs の導入を容易にするために、MediaTailor は Datazoom と提携し、 [Google 広告マネージャーとのクライアント側の AWS Elemental MediaTailor 統合](gam-integration-pal.md) および IAB Tech で設定およびテストされた無料プレイヤー SDKs を提供しています[オープン測定 SDK](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)。

Datazoom プレイヤー SDK は、以下の機能をサポートしています。
+ ライブプレイリストと VOD プレイリスト
+ DASH および HLS の仕様
+ Bitmovin、exoplayer、Android メディアプレイヤー、Apple AVPlayer、Brightcove、Chromecast Receiver、Dash.js、hls.js、JWPlayer、Shaka プレイヤー、THEO プレイヤー、Video.js、Roku などに対するプレイヤーベンダーのサポート
+ 選択したデバイスで利用可能な IAB Tech Lab Open Measurement 認定
+ クリックスルーイベント処理
+ 広告カウントダウンタイマー、広告オーバーレイ、非線形イベント、広告ブレーク開始、広告ブレーク終了などの広告イベントディスパッチャー
+ クライアント側の広告ビーコン
+ オプションの設定としての Google Programmatic Access Library (PAL) SDK

Datazoom は、プレイヤー SDKsがサポートする有料の分析およびテレメトリサービスも提供します。お客様は、Datazoom マネジメントコンソールからプレイヤー SDK テレメトリをオプトインおよび制御できます。Datazoom プレイヤー SDKs にアクセスし、付加価値テレメトリおよび分析サービスの詳細については、[Datazoom サイトの](https://www.datazoom.io/partner-aws)連絡先情報を使用します。

## Roku 広告フレームワーク (RAF)
<a name="ad-reporting-client-side-ad-tracking-integrations-raf"></a>

Roku 広告フレームワーク (RAF) は、Roku プラットフォーム全体で一貫した広告エクスペリエンスを維持します。動画広告を含むすべてのチャネルは、Roku の RAF 認定要件を満たしている必要があります。特に、アプリは常に RAF を介したクライアント側のイベント射撃を使用する必要があります。MediaTailor は、サーバー側の広告挿入 (SSAI) プロバイダーとして、クライアント側のイベント射撃をサポートしています。RAFX SSAI Adapter は、SSAI マニフェストサーバー、またはスティッカー、および RAF の両方にインターフェイスを提供します。これらのインターフェイスには以下が含まれます。
+ `masterURL` レスポンスを解析し`playURL`、、`AdURL`、および広告メタデータを抽出します。
+ MediaTailor SSAI 広告メタデータを RAF が使用可能な広告メタデータに変換し、再生用に RAF を設定します。
+ ストリームイベントと時間指定メタデータの監視。
+ ストリームイベント、広告メタデータ、射撃イベントのピクセルを時間どおりに一致させます。
+ MediaTailor SSAI マニフェストサーバーの要求に応じて `AdURL`に Ping/ポーリングし、RAF を解析して再設定します。

RAF 用の SSAI アダプターの詳細については、[Roku ウェブサイトの「Roku Adapters を使用したサーバー側の広告挿入の実装](https://developer.roku.com/docs/developer-program/advertising/ssai-adapters.md)」を参照してください。

## TheoPlayer
<a name="ad-reporting-client-side-ad-tracking-integrations-theoplayer"></a>

MediaTailor との TheoPlayer 統合は、以下を実行します。
+ VOD ワークフローとライブワークフローの両方で、HLS と DASH の MediaTailor クライアント側のイベント追跡をサポートする機能を提供します。
+ リニア広告のみの追跡ビーコンの送信をサポートします。
+ 広告中の の探索を無効にします。ただし、ユーザーが広告時間枠を過ぎようとしたときに広告を再生するロジックはありません。

TheoPlayer の SSAI の詳細、および MediaTailor のウェブ、Android、iOS、tvOS SDKs[MediaTailor](https://docs.theoplayer.com/how-to-guides/01-ads/12-mediatailor.md)」を参照してください。 TheoPlayer 

## MediaTailor SDK
<a name="ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk"></a>

AWS Elemental は、JavaScript ベースのソフトウェア開発キット (SDK) を維持します。 AWS Elemental は SDK をそのまま提供しますが、黙示的な保証はありません。SDK をリファレンスデモとして使用して、MediaTailor を使用した へのオンボーディングを合理化します。SDK は、MediaTailor クライアント側の追跡 API を操作する方法を示しています。SDK は、HTML5-basedプレイヤーのクライアント側の広告追跡とレポートを実装します。SDK は MediaTailor クライアント側のレポートセッションを初期化し、定期的に広告追跡情報をリクエストします。再生中、SDK は新しい広告イベントが検出されたときに広告追跡イベントを出力します。

MediaTailor SDK は、以下の機能をサポートしています。
+ ライブプレイリストと VOD プレイリスト
+ DASH および HLS の仕様
+ クリックスルーイベント処理
+ 広告イベントディスパッチャ
+ カスタムイベントフック
+ クライアント側の広告ビーコン。広告ビーコンの送信の詳細については、「」を参照してください[クライアント側のビーコン](ad-reporting-client-side-beaconing.md)。

**注記**  
 AWS サポートチケットを送信して、サンプルの JavaScript SDK for MediaTailor を受け取ります。パッケージとそのファイルのダウンロードリンクを受け取ります。

## GetTracking を使用した広告ビーコンのページング
<a name="gettracking"></a>

`GetTracking` エンドポイントを使用して、プレイヤーに返される広告の数を絞り込みます。例えば、マニフェストウィンドウが広く、長時間にわたる場合、返される広告ビーコンの数はプレイヤーのパフォーマンスに影響を与える可能性があります。

`GetTracking` は、返されたビーコンのリストをページングすることで、返されたビーコンの数を絞り込むために使用できる`NextToken`値を返します。`NextToken` 値を循環して、広告ビーコンの `StartTimeInSeconds`フィールドの目的の値を見つけることができます。
+ への最初の呼び出しでは`GetTracking`、マニフェストウィンドウに含まれる可能性のあるすべての広告が返されます。これには、それぞれの `NextToken`および の値が含まれます。
+ `GetTracking` リクエストに が含まれ*ていない場合*`NextToken`、マニフェストウィンドウ内のすべての広告が返されます。
+ `GetTracking` リクエストに が含まれている`NextToken`が、返す新しいビーコンがない場合、MediaTailor は元のリクエストで送信`NextToken`した と同じ値を返します。
+ 広告に対応するビーコンがなくなると、 はレスポンスから広告`GetTracking`を削除します。
+ からのトークンは 24 時間後に`GetTracking`期限切れになります。`NextToken` 値が 24 時間以上経過している場合、 への次の呼び出しは null 値 `GetTracking`を返します`NextToken`。

### プレイヤーからの GetTracking の一般的な呼び出しシーケンス
<a name="gettracking.generalsequence"></a>

クライアントプレイヤーからの`GetTracking`リクエストは、トークンに関連する `NextToken`および 広告とビーコンを含むリクエスト本文を含む POST です。

```
https://YouMediaTailorUrl/v1/tracking
{

     "NextToken": "value"
     .
     .
     .
}
```

`GetTracking` で を使用する一般的な順序`NextToken`は次のとおりです。

1. を最初に呼び出します`GetTracking`。

   すべての広告とビーコン、および後続の呼び出し`NextToken`の最初の が返されます。

1. の値が null の場合、MediaTailor `NextToken`はすべての広告ビーコンを返します。

1. の有効期限が切れている場合、MediaTailor `NextToken`は HTTP リターンコード 400 エラーメッセージを返します。

   新しい を呼び出し`GetTracking`て、有効な を取得します`NextToken`。

1. レスポンス全体をスキャンして、目的の範囲内にある広告ビーコン`StartTimeInSeconds`の を見つけます。

1. 目的の `NextToken`に関連付けられた の値`GetTracking`を使用して、 に新しい呼び出しを行います`StartTimeInSeconds`。

1. 必要に応じて、再生したい広告が見つかるまで、返された広告をもう一度繰り返します。

#### 拡張例
<a name="gettracking.extendedexample"></a>

この例では、 `GetTracking`の `NextToken` を使用して、プレイヤーに返される広告ビーコンの数を制限する方法を示します。

MediaTailor は`GetTracking`リクエストを受け取ります。レスポンスには、ID 9935407 の広告と`StartTimeInSeconds`、値 52.286 秒と 48.332 秒の 2 つのビーコンが含まれています。

MediaTailor は、`NextToken`次のように で JSON レスポンスを送信します。

```
  {
  "NextToken": JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb
  "avails": [
    {
      "ads": [
        {
          "adId": "9935407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT30S",
          "StartTimeInSeconds": 45,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=Impression "
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935414",
              "eventType": "secondQuartile",
              "startTime": "PT52.286S",
              "StartTimeInSeconds": 52.286
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935412",
              "eventType": "firstQuartile",
              "startTime": "PT48.332S",
              "StartTimeInSeconds": 48.332
            }
          ],
          "vastAdId": ""
        }
      ],
      "startTime": "PT46.47S",
      "StartTimeInSeconds": 46.47
    }
  ]
}
```

次の`GetTracking`リクエストでは、MediaTailor は JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb `NextToken`という値で応答します。

MediaTailor は、前の呼び出し`NextToken`の で設定された `StartTimeInSeconds` に一致する広告とビーコンで応答します。

レスポンスに、ID 9235407 の以前の広告に加えて、ID 9935407 の別の広告が含まれているとします。広告 ID 9235407 のビーコンには、`StartTimeInSeconds`s 132.41 と 70.339 があります。

MediaTailor はセッション内のすべてのビーコンを繰り返して、ID 9235407 の広告からビーコン 3 とビーコン 4 である 52.286 秒`StartTimeInSeconds`を超えるビーコンを選択します。

```
{
  "NextToken": ZkfknvbfsdgfbsDFRdffg12EdffecFRvhjyjfhdfhnjtsg5SDGN
  "avails": [
    {
      "ads": [
        {
          "adId": "9235407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15.816S",
          "durationInSeconds": 19.716,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT2M0S",
          "StartTimeInSeconds": 120.0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935414",
              "eventType": "firstQuartile",
              "startTime": "PT1M10.330S",
              "StartTimeInSeconds": 70.339
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935412",
              "eventType": "secondQuartile",
              "startTime": "PT2M12.41S",
              "StartTimeInSeconds": 132.41
            }
          ],
          "vastAdId": ""
        },   
      ],
      "startTime": "PT36.47S",
      "StartTimeInSeconds": 36.47
    }
  ]
}
```

# オーバーレイ広告
<a name="overlay-ads"></a>

ミッドロール広告の表示エクスペリエンスを中断せずに収益化を増やすライブストリーミングワークフローでは、現在の AWS Elemental MediaTailor 統合を活用して、クライアント側でレンダリングされる広告形式をガイドできます。このタイプの広告は*オーバーレイ広告*と呼ばれます。オーバーレイ広告は、「L バンド広告」、「非線形動画広告」、picture-in-picture広告」、「モーションオーバーレイ」、「インコンテンツ広告」、または「フレーム広告」の形式で表示される非線形動画広告です。

MediaTailor は、オーバーレイ広告挿入の機会の帯域内シグナル`id=0x38`としてセグメンテーションタイプを持つ SCTE-35 マーカーを検出します。SCTE-35 マーカーにより、MediaTailor は広告決定サーバー (ADS) にリクエストを送信し、ADS は VAST レスポンスで非線形広告ペイロードで応答します。MediaTailor は、オーバーレイ広告挿入をサポートするために VAST レスポンスを解析します。MediaTailor はリニア広告のステッチングを実行せず、再生可能な非リニアオーバーレイ広告があることをプレイヤーに通知します。このシグナリングにより、プレイヤーはクライアント側の追跡エンドポイントから再生する非線形広告を取得して関連付けることができます。その後、プレイヤーはそれらの広告に関連する表示、レポート、およびその他のタスクを処理します。たとえば、プレイヤーの開発者は、オーバーレイ広告形式をサポートするベンダーのデバイス SDK を使用できます。クライアント側の追跡統合の詳細については、「」を参照してください[クライアント側の広告追跡統合](ad-reporting-client-side-ad-tracking-integrations.md)。

![\[この画像は、コンテンツビデオとともに表示されるさまざまな広告タイプのタイムラインを示しています。リニア広告は、コンテンツビデオの前後に再生されます。コンテンツビデオの前の広告は、プリロール広告と呼ばれます。コンテンツビデオの後の広告は、ポストロール広告と呼ばれます。非線形広告は、コンテンツビデオ自体の一部と重複します。非線形広告はオーバーレイ広告と呼ばれます。\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/images/client-side-overlays.png)


**Topics**
+ [MediaTailor でオーバーレイ広告を使用するための前提条件](overlay-ads-prerequisites.md)
+ [MediaTailor でのオーバーレイ広告の使用開始](overlay-ads-getting-started.md)
+ [MediaTailor でのオーバーレイ広告のログ記録とメトリクス](overlay-ads-logging-and-metrics.md)
+ [MediaTailor でのオーバーレイ広告の請求](overlay-ads-billing.md)

# MediaTailor でオーバーレイ広告を使用するための前提条件
<a name="overlay-ads-prerequisites"></a>

MediaTailor でオーバーレイ広告を使用する場合、次の前提条件が適用されます。
+ ワークフローは、ビデオオンデマンド (VOD) ではなく、ライブである必要があります。
+ 広告決定サーバー (ADS) レスポンスは、VAST レスポンスで非線形広告のみを返すように設定する必要があります。MediaTailor は、広告ステッチングの目的でリニア広告を無視します。
+ マニフェストは、オーバーレイ広告機能を呼び出す`id=0x38`ために、セグメンテーションタイプの SCTE-35 タイムシグナルメッセージを使用する必要があります。
+ ストリーミングプロバイダーは、クライアント/デバイスアプリケーションを制御でき、MediaTailor クライアント側の追跡 API と統合されている必要があります。

# MediaTailor でのオーバーレイ広告の使用開始
<a name="overlay-ads-getting-started"></a>

このセクションでは、MediaTailor の overlay-ads 機能の使用を開始する方法について説明します。SCTE-35 シグナリングの設定、広告決定サーバー (ADS) レスポンスの設定、セッションレベルの制御の設定を行います。

**Topics**
+ [オーバーレイ広告の有効化](overlay-ads-getting-started-enabling.md)
+ [クライアント側のメタデータを使用したオーバーレイ広告の追跡](overlay-ads-client-side-tracking-metadata.md)

# オーバーレイ広告の有効化
<a name="overlay-ads-getting-started-enabling"></a>

オーバーレイ広告の MediaTailor サポートはデフォルトで有効になっています。マニフェスト内の特定の SCTE-35 広告マーカータイプは、オーバーレイ広告の挿入をトリガーします。一部のプレイヤーはオーバーレイ広告のクライアント側のレンダリングをサポートしていない可能性があるため、セッションレベルでこの機能を無効にすることができます。

**HLS または DASH 再生プレフィックスを使用して overlay-ad サポートを無効にするには:**
+ プレイヤーから、プロトコルに従った以下のいずれかの形式を使用して、新しい MediaTailor 再生セッションを開始します。
  + 例: HLS 形式

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```
  + 例: DASH 形式

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```

**session-initialization プレフィックスを使用して overlay-ad サポートを無効にするには:**
+ プレイヤーで、MediaTailor へのセッション初期化リクエストの JSON メッセージ本文を作成します。
  + 広告オーバーレイのサポートを無効にするには、 オブジェクトを の値を持つ最上位キー`overlays`として追加します`off`。`overlays` デフォルト値は です`on`。
  + (オプション) MediaTailor が`adsParams`オブジェクト内の ADS に渡すパラメータを指定します。これらのパラメータは、MediaTailor の ADS テンプレート URL にある `[player_params.param]` 設定に対応しています。

**Example HLS:**  

```
POST master.m3u8
    {
       "adsParams": {
           "deviceType": "ipad"
       },
       "overlayAvails": "off"
    }
```

**Example DASH:**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "androidmobile"
       },
       "overlayAvails": "off"
    }
```

# マニフェストシグナリング
<a name="overlay-ads-manifest-signaling"></a>

MediaTailor トリガーオーバーレイ広告は、マニフェストに特定の SCTE-35 マーカーが表示されるとサポートされます。必要なシグナルは、スプライスコマンドタイプ 6、またはプロバイダーオーバーレイ広告開始シグナルであるタイムシグナルです。このシグナルのセグメンテーションタイプ ID は です `0x38`

次の例は、JSON オブジェクトの `0x38` SCTE-35 マーカーを示しています。

```
{
  "tableId": 252,
  "selectionSyntaxIndicator": false,
  "privateIndicator": false,
  "sectionLength": 53,
  "protocolVersion": 0,
  "encryptedPacket": false,
  "encryptedAlgorithm": 0,
  "ptsAdjustment": 0,
  "cwIndex": 0,
  "tier": 4095,
  "spliceCommandLength": 5,
  "spliceCommandType": 6,
  "spliceCommand": {
    "specified": true,
    "pts": 1800392
  },
  "descriptorLoopLength": 31,
  "descriptors": [
    {
      "spliceDescriptorTag": 2,
      "descriptorLength": 29,
      "indentifier": "CUEI",
      "segmentationEventId": 158389361,
      "segmentationEventCancelIndicator": false,
      "programSegmentationFlag": true,
      "segmentationDurationFlag": true,
      "deliveryNotRestrictedFlag": false,
      "webDeliveryAllowedFlag": true,
      "noRegionalBlackoutFlag": true,
      "archiveAllowedFlag": true,
      "deviceResctrictions": 3,
      "segmentationDuration": 1350000,
      "segmentationUpidType": 9,
      "segmentationUpidLength": 7,
      "segmentationUpid": {
        "0": 111,
        "1": 118,
        "2": 101,
        "3": 114,
        "4": 108,
        "5": 97,
        "6": 121
      },
      "segmentationTypeId": 56,
      "segmentNum": 1,
      "segmentsExpected": 0
    }
  ],
  "crc": 2510422713
}
```

次の例は、バイナリ (ベース 32/16 進数) 値として表される SCTE-35 シグナルを示しています。

```
0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
```

次の例は、HLS マニフェストと DASH マニフェストの両方の SCTE-35 マーカーを示しています。

**Example : HLS マニフェスト**  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:419
#EXT-X-DISCONTINUITY-SEQUENCE:3
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:09.231Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:15.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:21.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00002.ts
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="1692073825251-30-1",START-DATE="2023-08-15T04:30:25.251Z",DURATION=10.0,PLANNED-DURATION=10.0,SCTE35-OUT=0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:25.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00003.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:27.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00004.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:33.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00005.ts
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:35.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00006.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:39.251Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
```

**Example : DASH マニフェスト**  

```
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="2023-08-15T16:34:05.911Z" minBufferTime="PT30S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-08-15T16:34:17.950Z" suggestedPresentationDelay="PT20S" timeShiftBufferDepth="PT1M30S" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
  <Period xmlns="urn:mpeg:dash:schema:mpd:2011" id="1692117245944_1" start="PT0.033S">
    <BaseURL>https://aws.cloudfront.net/out/v1/abc/123/def/</BaseURL>
    <EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
      <Event duration="900000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
          <scte35:TimeSignal>
            <scte35:SpliceTime ptsTime="0"/>
          </scte35:TimeSignal>
          <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="900000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="56" segmentsExpected="0" subSegmentNum="0" subSegmentsExpected="0">
            <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">63736f7665726c6179</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation bandwidth="3000000" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="1" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2499968" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="2" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2200000" codecs="avc1.4D401F" frameRate="30/1" height="720" id="3" width="1280">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
      <Label>Alternate Audio</Label>
      <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="9">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="48000">
          <SegmentTimeline>
            <S d="98304" t="0"/>
            <S d="96256" t="98304"/>
            <S d="95232" t="194560"/>
            <S d="96256" r="2" t="289792"/>
            <S d="95232" t="578560"/>
            <S d="46080" t="673792"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
```

# 広告決定サーバー (ADS) レスポンス
<a name="overlay-ads-ads-response"></a>

ADS レスポンスには、有効な追跡イベントが 1 つ含まれている必要があります。少なくとも、追跡イベントは`Impression`追跡イベントにすることができます。追跡イベントには、少なくとも 1 つの`NonLinear`広告が含まれている必要があります。この広告は、静的、HTML、または iFrame リソースの形式でオーバーレイ広告です。

```
<vmap AdBreak breaktype="linear" breakId="csoverlay"
```

VAST レスポンスが `breakType`の VMAP である場合`nonlinear`、avail メタデータは`nonLinearAvails`ルートオブジェクト内にあります。VAST レスポンスが `breakType`の VMAP である場合`linear`、または VMAP のないプレーン VAST レスポンスである場合、avail メタデータは`avails`ルートオブジェクト内にあります。

次の VAST レスポンスは、`breakType`値が のラップされた VMAP レスポンスです`linear`。

ラップされた VMAP レスポンスに加えて、MediaTailor は `breakType`の値を持つラップされた VMAP レスポンス`nonlinear`とプレーン VAST レスポンスもサポートします。

```
<?xml version="1.0" encoding="utf-8"?>
<vmap:VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0">
  <vmap:AdBreak breakType="linear" breakId="csoverlay">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
      <vmap:VASTAdData>
        <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:noNamespaceSchemaLocation="vast.xsd">
          <Ad sequence="1">
            <InLine>
              <AdSystem>2.0</AdSystem>
              <AdTitle>2</AdTitle>
              <Impression><![CDATA[https://adserver.com/beacon=impression]]></Impression>
              <Creatives>
                <Creative>
                  <NonLinearAds>
                    <NonLinear width="640" height="360" id="18">
                      <StaticResource creativeType="text/js_ref"><![CDATA[https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26]]></StaticResource>
                    </NonLinear>
                  </NonLinearAds>
                </Creative>
              </Creatives>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
    <vmap:TrackingEvents>
      <vmap:Tracking event="breakStart"><![CDATA[https://adserver.com/beacon=breakstartimpression]]></vmap:Tracking>
      <vmap:Tracking event="breakEnd"><![CDATA[https://adserver.com/beacon=breakendimpression]]></vmap:Tracking>
    </vmap:TrackingEvents>
  </vmap:AdBreak>
</vmap:VMAP>
```

**Example 1: MediaTailor への DASH マニフェストソース**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
    <Event duration="540000" id="144">
        <scte35:Signal>
            <scte35:Binary>SCTE35-binary</scte35:Binary>
        </scte35:Signal>
    </Event>
    </EventStream>
    ... 
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

**Example 2: 広告 ID デコレーションを含む MediaTailor パーソナライズされた DASH マニフェスト**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
  <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
    <Event presentationTime="13500000" duration="1351350">
    <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "adId","ad_position": "adId", "ad_type":"overlay","creative_id": "creativeId","tracking_uri": "trackingUri"}]}]]></Event>
  </EventStream>
  ...
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

# クライアント側のメタデータを使用したオーバーレイ広告の追跡
<a name="overlay-ads-client-side-tracking-metadata"></a>

MediaTailor は、オーバーレイ広告を表示`nonLinearAdsList`の に配置します。MediaTailor クライアント側の追跡 API には、 `avails`と という 2 つのルートオブジェクトがあります`nonLinearAvails`。VAST レスポンスが `breakType`の VMAP である場合`nonlinear`、avail メタデータは`nonLinearAvails`ルートオブジェクト内にあります。VAST レスポンスが の VMAP `breakType` である場合`linear`、または VMAP を使用しないプレーン VAST レスポンスである場合、avail メタデータは`avails`ルートオブジェクト内にあります。

クライアント側の追跡の詳細については、「」を参照してください[クライアント側の広告追跡](ad-reporting-client-side.md)。

次の例は、`breakType`値が のプレーン VAST レスポンスまたは VMAP レスポンスを示しています`linear`。

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": []
}
```

次の例は、`breakType`値が のプレーン VMAP レスポンスを示しています`nonlinear`。

```
{
  "avails": [],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ]
}
```

# MediaTailor でのオーバーレイ広告のログ記録とメトリクス
<a name="overlay-ads-logging-and-metrics"></a>

このセクションでは、MediaTailor のオーバーレイ広告のログ記録とメトリクスについて説明します。ログ記録の設定の詳細については、「」を参照してください[AWS Elemental MediaTailor リソースのモニタリングとタグ付け](monitoring.md)。

**Topics**
+ [CloudWatch ログ](#overlay-ads-logging-and-metrics-cloudwatch)
+ [CloudWatch メトリクス](#overlay-ads-logging-and-metrics-cloudwatch-metrics)

## CloudWatch ログ
<a name="overlay-ads-logging-and-metrics-cloudwatch"></a>

CloudWatch は、オーバーレイ広告に関する次のログ情報を収集します。
+ `VAST_RESPONSE` - 非線形広告リストに関する情報を表示します。
+ `FILLED_PROVIDER_OVERLAY` - 非線形広告に関する情報を表示します。

**注記**  
`RAW_ADS_RESPONSE` は、ADS からの元のレスポンスを示すオプションのイベントです。このイベントの使用は、ステージングおよびテスト環境で特に役立ちます。設定またはアカウントでこのイベントを有効にするには、 AWS サポートにチケットを送信します。

## CloudWatch メトリクス
<a name="overlay-ads-logging-and-metrics-cloudwatch-metrics"></a>

MediaTailor は、オーバーレイ広告メトリクスを他の ADS メトリクスとは別に収集します。MediaTailor は、ADS から広告を正常に取得した後、これらのメトリクスを収集します。API をポーリング`GetTracking`してメトリクスを収集する必要はありません。

次の表に、オーバーレイ広告の CloudWatch メトリクスを示します。


| メトリクス | 説明 | 
| --- | --- | 
| AdDecisionServer.OverlayAds |  指定した CloudWatch 期間内に ADS レスポンスに含まれるオーバーレイ広告の数。  | 
| AdDecisionServer.OverlayErrors |  指定した CloudWatch 期間内に MediaTailor が ADS から受信した HTTP 以外の`200`ステータスコードレスポンス、空のレスポンス、タイムアウトレスポンスの数。  | 
| AdDecisionServer.OverlayFilled |  少なくとも 1 つのオーバーレイ広告で正常に埋められた表示の数: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediatailor/latest/ug/overlay-ads-logging-and-metrics.html) `SampleCount` は、入力された avail の数を追跡します。 `Sum` は、正常に埋められたオーバーレイ表示の数を追跡します。  | 
| AdDecisionServer.OverlayMinSuggestedDuration |  指定した CloudWatch 期間内に MediaTailor が ADS から受信したすべての広告`minSuggestedDuration`の期間の合計をミリ秒単位で表します。が指定され`minSuggestedDuration`ていない場合、表示される期間は計画された期間です。  | 
| AdDecisionServer.OverlayLatency |  MediaTailor が ADS に対して行うリクエストの応答時間をミリ秒単位で表します。  | 
| AdDecisionServer.OverlayTimeouts |  ユーザー指定の CloudWatch 期間中の ADS に対するタイムアウトリクエストの数。  | 
| AdsBilled |  請求される広告の詳細については、「」を参照してください[MediaTailor でのオーバーレイ広告の請求](overlay-ads-billing.md)。  | 
| Avail.\$1 |  MediaTailor はオーバーレイ広告の計画を行わないため、CloudWatch は`Avail.X`メトリクスを表示しません。  | 
| SkippedReason.\$1 |  MediaTailor はオーバーレイ広告の計画を行わないため、CloudWatch は`SkippedReason.X`メトリクスを表示しません。  | 

# MediaTailor でのオーバーレイ広告の請求
<a name="overlay-ads-billing"></a>

MediaTailor は、ADS レスポンスの非線形広告の数に基づいて顧客に請求します。この数には、ブレーク期間を超えて延長される非線形広告が含まれます。MediaTailor が表示を埋めると、入力された広告に対して請求されます。

プリフェッチワークフローの場合、MediaTailor はプリフェッチの取得時に広告に対して課金せず、そのセッションの消費ウィンドウに互換性のある広告表示が表示されるときに課金します。

その他の請求情報については、「」を参照してください[https://aws.amazon.com/mediatailor/pricing/](https://aws.amazon.com/mediatailor/pricing/)。

# 広告 ID デコレーション
<a name="ad-id-decoration"></a>

AWS Elemental MediaTailor は、コンテンツから広告ブレークに移行するときにサーバー側の広告ステッチングを実行します。MediaTailor は、ステッチされた広告に関連付けられたメタデータでマニフェストを条件付けできます。これにより、次の利点が得られます。

**重要**  
広告 ID デコレーションはサーバーガイド広告挿入 (SGAI) メソッドと互換性がありません。`X-AD-CREATIVE-SIGNALING `ヘッダーを入力するフィールドは、キャッシュ可能なマニフェストが最初に書き込まれたときではなく、広告の再生中にアセットリストがフェッチされたときにのみ認識されるためです。
+ *ビデオ開始時間* (VST) の向上
+ MediaTailor は、サーバー側の広告挿入とサーバーガイド付き広告挿入のハイブリッドモデルをサポートできます
+ サーバー側のセッションは、広告位置マーカーを使用して再生タイムラインを構築できます
+ MediaTailor API を使用して再生タイムラインを既に構築しているクライアント側セッションの場合、セッション VST は改善されます。これは、セッションが追跡 API を呼び出してタイムラインを構築することに依存しないためです。
+ MediaTailor は、サーバー側の広告挿入やクライアント側のレンダリングされた広告をシーン内に表示するために利用できます。これにより、プレイヤーのソフトウェア開発キット (SDK) に、クライアント側の広告のために広告配信エンティティを直接呼び出すための個別の統合は必要ありません。MediaTailor は、マニフェストとクライアント側の追跡 API を通じて広告を提供できます。

各クリエイティブ広告アセットを一意の識別子に関連付けるための標準があります。この関連付けにより、広告主、エージェンシー、ベンダー、パブリッシャーは、クリエイティブ広告アセットを独立したワークフローに関連付けることができます。ストリームのメトリクスとモニタリングが継続的に改善され、より多くのディストリビューターがサーバーベースの挿入アーキテクチャを利用するにつれて、パーソナライズされたマニフェスト内など、インターリーブ/ステッチされたプレゼンテーション内で個々のクリエイティブアセットに割り当てられた識別子を正確に伝達する必要が生じます。

**Topics**
+ [セッションの広告 ID シグナリングの有効化](ad-id-session-state.md)
+ [マニフェストと広告メタデータの挿入](ad-id-manifest.md)
+ [広告決定サーバー (ADS) インタラクション](ad-id-ads-interactions.md)
+ [クライアント側の追跡 API](ad-id-client-side-tracking-api.md)

# セッションの広告 ID シグナリングの有効化
<a name="ad-id-session-state"></a>

セッションの初期化中に、広告 ID シグナリング機能を有効にする必要があります。この機能を有効にするプロセスは、HLS/DASH 再生プレフィックス (暗黙的なセッションの初期化) を使用したセッションの作成と、セッションの初期化プレフィックス (明示的なセッションの初期化) とは異なります。

**HLS/DASH 再生プレフィックスを使用してセッションの広告 ID を有効にするには**
+ プレイヤーから、プロトコルに従った以下のいずれかの形式を使用して、新しい MediaTailor 再生セッションを開始します。
  + 例: HLS 形式

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```
  + 例: DASH 形式

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```

**セッション初期化プレフィックスを使用してセッションの広告 ID を有効にするには**
+ プレイヤーで、MediaTailor へのセッション初期化リクエストの JSON メッセージ本文を作成します。
  + `adsParams` オブジェクト内で、MediaTailor が ADS に渡す必要があるパラメータを指定します。これらのパラメータは、MediaTailor の ADS テンプレート URL にある `[player_params.param]` 設定に対応しています。
  + 広告 ID シグナリングを有効にするには、`adSignaling`オブジェクトを最上位オブジェクトとして追加し、その中に `enabled`および というパラメータ値を追加します`true`。`adSignaling` デフォルト値は です`disabled`。
  + 例: HLS 形式

    ```
    POST master.m3u8
        {
           "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
               "enabled": "true"
           },
           "reportingMode": "client"
        }
    ```
  + 例: DASH 形式

    ```
    POST manifest.mpd
        {
            "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
                "enabled": "true"
            },
            "reportingMode": "client"
        }
    ```

# マニフェストと広告メタデータの挿入
<a name="ad-id-manifest"></a>

広告ステッチングプロセス中に、MediaTailor は、ステッチされる各クリエイティブに関連付けられた一意の ID をマニフェストに追加します。MediaTailor は、VAST レスポンスでそのクリエイティブの`id`属性値からクリエイティブの一意の ID を取得します。クリエイティブに ID 属性値がない場合、MediaTailor は空の値 () を発行します`id=""`。

MediaTailor は、マニフェスト内メタデータシグナルを使用して、広告クリエイティブメタデータとタイムライン全体のタイミング/配置に関するクライアント追跡 API 間の依存関係を切り離します。このデカップリングにより、プレイヤーのユーザーインターフェイス (UI) が再生を初期化する前にタイムラインで広告ブレーク位置をレンダリングする再生レイテンシー (特に VOD シナリオ) が短縮されます。

追加されたメタデータは、次の形式になります。
+ HLS マニフェストの場合、追加されたメタデータは、表示期間中の各広告の`DATERANGE`タグの形式をとります。
+ DASH マニフェストの場合、追加されたメタデータは各広告期間内の `Event`要素の形式になります。

次の JSON メッセージ本文は、VAST レスポンスの例を示しています。

```
{
  "version": 1,
  "identifiers": [
    {
      "scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000",
      "value": "creativeId",
      "ad_position": "adId",
      "ad_type": "adType",
      "tracking_uri": "trackingUri",
      "custom_vast_data":"customVastData"
    }
  ]
}
```

前の例では、以下のようになっています。
+ *creativeId* は、広告の `Creative`要素の`Id`属性値です。
+ *adId* は、広告の先頭に関連付けられた HLS シーケンス番号、または広告の DASH 期間 ID のいずれかです。
+ VAST レスポンスに基づく *adType* は `overlay``avail`または のいずれかです。
+ *trackingUri* は、MediaTailor セッションの相対追跡エンドポイントです。 `../../../../tracking/hashed-account-id/origin-id/session-id`
+ *customVastData* は、MediaTailor が `creative_signaling` VAST 拡張機能から抽出する値です。MediaTailor は、存在する場合、CDATA ノードの内容を使用します。詳細と VAST レスポンスのサンプルについては、[広告決定サーバー (ADS) インタラクション](ad-id-ads-interactions.md)「」セクションを参照してください。

# 広告メタデータを使用した HLS マニフェストのパーソナライズ
<a name="ad-id-manifest-hls"></a>

ライブ HLS ストリームの場合、MediaTailor は、ストリームに`PROGRAM-DATA-TIME`タグが含まれている場合にのみ、マニフェスト期間ごとに少なくとも 1 回メタデータを追加します。ビデオオンデマンド (VOD) ストリームの場合、MediaTailor はパーソナライズされたマニフェストで少なくとも 1 つのセグメント`PROGRAM-DATE-TIME`に追加します。各 VOD アセットの開始時間はエポックゼロ () です`1970-01-01T00:00:00Z`。オリジンマニフェストに既存の`PROGRAM-DATE-TIME`コンテンツがある場合、MediaTailor はそのコンテンツを保持します。

MediaTailor は、広告決定サーバー (ADS) によって返されるクリエイティブを使用してマニフェストをパーソナライズします。広告ごとに、MediaTailor には広告の期間にまたがる`DATERANGE`タグも含まれています。`DATERANGE` タグ形式は、*SVA 技術出版物*の 2023 バージョンの [DASH および HLS での広告クリエイティブシグナリング](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/)セクションで説明されている形式と似ています。

MediaTailor が生成`DATERANGE`する には一意の ID 値があります。一意性を確保するために ([SCTE-35 を EXT-X-DATERANGE にマッピング](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)で指定されたガイドラインに基づく）、MediaTailor は avail *の最初の*広告セグメント`MEDIA-SEQUENCE`の数を avail 内の広告のシーケンス番号と結合します。

スレートが有効になっている設定の広告時間枠が不足している場合、MediaTailor はスレートセグメントをタグで区切って表示の末尾に追加しますが`DISCONTINUITY`、`DATERANGE`メタデータはありません。

パーソナライズされたマニフェストにステッチされた広告ごとに、MediaTailor はカスタム`DATERANGE`タグで base64 でエンコードされたデータとして表されるクリエイティブメタデータを追加します。

**Example 線形 HLS オリジン (`#EXT-X-CUE-OUT`):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:398
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:20:01.397Z
#EXTINF:6.006,
index_1_398.ts?m=1676054627
#EXTINF:5.873,
index_1_399.ts?m=1676054627
#EXT-OATCLS-SCTE35:/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXT-X-CUE-OUT:59.993
#EXTINF:6.139,
index_1_400.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=6.139,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_401.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=12.145,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_402.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=18.151,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_403.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=24.157,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_404.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=30.163,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_405.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=36.169,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_406.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=42.175,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_407.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=48.181,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_408.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=54.187,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:5.806,
index_1_409.ts?m=1676054627
#EXT-X-CUE-IN
#EXTINF:6.206,
index_1_410.ts?m=1676054627
#EXTINF:6.006,
index_1_411.ts?m=1676054627
#EXTINF:6.006,
index_1_412.ts?m=1676054627
```

**Example 線形 HLS オリジン (`#EXT-X-DATERANGE`):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:25
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:53.389Z
#EXTINF:6.006,
index_1_25.ts?m=1676056675
#EXTINF:6.006,
index_1_26.ts?m=1676056675
#EXTINF:6.006,
index_1_27.ts?m=1676056675
#EXTINF:1.869,
index_1_28.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC302500000003289800FFF01405000000027FEFFF8CF97DECFE00526362000101010000B1EE3F80
#EXTINF:6.139,
index_1_29.ts?m=1676056675
#EXTINF:6.006,
index_1_30.ts?m=1676056675
#EXTINF:6.006,
index_1_31.ts?m=1676056675
#EXTINF:6.006,
index_1_32.ts?m=1676056675
#EXTINF:6.006,
index_1_33.ts?m=1676056675
#EXTINF:6.006,
index_1_34.ts?m=1676056675
#EXTINF:6.006,
index_1_35.ts?m=1676056675
#EXTINF:6.006,
index_1_36.ts?m=1676056675
#EXTINF:6.006,
index_1_37.ts?m=1676056675
#EXTINF:5.806,
index_1_38.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",END-DATE="2023-02-10T19:21:13.269Z",DURATION=59.993
#EXTINF:6.206,
index_1_39.ts?m=1676056675
#EXTINF:6.006,
index_1_40.ts?m=1676056675
```

**Example 線形 HLS パーソナライズマニフェスト (クリエイティブ広告シグナリングを使用):**  
MediaTailor が生成`DATERANGE`する には一意の ID 値があります。一意性を確保するために ([SCTE-35 を EXT-X-DATERANGE にマッピング](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)で指定されたガイドラインに基づく）、MediaTailor は avail *の最初の*広告セグメント`MEDIA-SEQUENCE`の数を avail 内の広告のシーケンス番号と結合します。  
次の例では、MediaTailor は 421 `MEDIA-SEQUENCE` を広告位置番号と連結します。  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:418
#EXT-X-DISCONTINUITY-SEQUENCE:5
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_397.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_398.ts?m=1676054627
#EXTINF:5.873,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_399.ts?m=1676054627
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056813
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056814
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056815
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056816
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056817
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056818
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056819
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056820
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-2",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056821
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056822
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056823
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056824
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056825
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056826
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056827
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056828
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-2",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-3",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056829
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056830
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056831
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056832
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056833
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056834
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056835
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056836
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-3",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=29.997
#EXT-X-DATERANGE:ID="421-4",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056837
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056838
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056839
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056840
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056841
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056842
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056843
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056844
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="421-4",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXTINF:6.206,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_410.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_411.ts?m=1676054627
```

**Example VOD HLS オリジン (SCTE シグナルを使用):**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:6,
index_720p1500k_00005.ts
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example VOD HLS オリジン:**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:4,
index_720p1500k_00005.ts
#EXTINF:2,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example VOD HLS パーソナライズされたマニフェスト:**  
MediaTailor は、広告位置を示す HLS `DATERANGE`要素のアンカーとして使用するために、VOD マニフェスト`PROGRAM-DATE-TIME`に を追加します。  
MediaTailor が生成`DATERANGE`する には一意の ID 値があります。一意性を確保するために ([SCTE-35 を EXT-X-DATERANGE にマッピング](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)で指定されたガイドラインに基づく）、MediaTailor は、avail *の最初の*広告セグメント`MEDIA-SEQUENCE`の数を、avail 内の広告のシーケンス番号と結合します。  
次の例では、MediaTailor は 421 `MEDIA-SEQUENCE` を広告位置番号と連結します。  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:1970-01-01T00:00:00Z
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00001.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00002.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00003.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00004.ts
#EXTINF:4.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00005.ts
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/28
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/29
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/30
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/31
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/32
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/33
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/34
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/35
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/36
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/37
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/38
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/39
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/40
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/41
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/42
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/43
#EXT-X-DISCONTINUITY
#EXTINF:2.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00006.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00007.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00008.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00009.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00010.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00011.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00012.ts
#EXT-X-ENDLIST
#EXT-X-DATERANGE:ID="5-1",START-DATE="1970-01-01T00:00:28.000Z",END-DATE="1970-01-01T00:00:43.015Z",DURATION=15.015
#EXT-X-DATERANGE:ID="5-2",START-DATE="1970-01-01T00:00:43.015Z",END-DATE="1970-01-01T00:00:58.030Z",DURATION=15.01
```

# 広告メタデータを使用した DASH マニフェストのパーソナライズ
<a name="ad-id-manifest-dash"></a>

MediaTailor は、広告決定サーバー (ADS) によって返されるクリエイティブを使用してマニフェストをパーソナライズします。広告ごとに、MediaTailor には広告の期間にまたがる `EventStream`要素も含まれています。`Event` 要素形式は、*SVA テクニカルパブリケーション*の 2023 バージョンの [DASH および HLS での広告クリエイティブシグナリング](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/)セクションで説明されているものと似ています。

スレートが有効になっている設定の広告時間枠が不足している場合、MediaTailor はスレート期間を使用可能期間の最後に追加しますが、`EventStream`メタデータは追加しません。

パーソナライズされたマニフェストにステッチされた広告ごとに、MediaTailor は `Event`要素内の`CDATA`要素として表されるクリエイティブメタデータを追加します。

**Example 線形 DASH オリジン (インライン SCTE 属性):**  

```
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2023-02-10T21:08:40+00:00" minimumUpdatePeriod="PT6S" availabilityStartTime="2023-02-09T22:47:05.865000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT80141.456S" id="104" duration="PT304.103S">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="4808487386">
        <SegmentTimeline>
          <S t="4824975858" d="360360" r="3"/>
          <S t="4826417298" d="316316"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="3846790126">
        <SegmentTimeline>
          <S t="3859981294" d="287744"/>
          <S t="3860269038" d="288768"/>
          <S t="3860557806" d="287744"/>
          <S t="3860845550" d="288768"/>
          <S t="3861134318" d="252928"/>
        </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
  </Period>
  <Period start="PT80445.560S" id="155" duration="PT44.978S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
      <Event duration="4048044">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="207000" tier="4095">
          <scte35:SpliceInsert spliceEventId="111" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program>
              <scte35:SpliceTime ptsTime="7239893422"/>
            </scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="4048044"/>
          </scte35:SpliceInsert>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="4826733614">
        <SegmentTimeline>
          <S t="4826733614" d="284284"/>
          <S t="4827017898" d="360360" r="5"/>
          <S t="4829180058" d="252252"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="3861387246">
        <SegmentTimeline>
          <S t="3861387246" d="227328"/>
          <S t="3861614574" d="288768"/>
          <S t="3861903342" d="287744"/>
          <S t="3862191086" d="288768"/>
          <S t="3862479854" d="287744"/>
          <S t="3862767598" d="288768"/>
          <S t="3863056366" d="287744"/>
          <S t="3863344110" d="202752"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:07:35.111Z"/>
  </Period>
  <Period start="PT80490.538S" id="163">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="4829432310">
        <SegmentTimeline>
          <S t="4829432310" d="348348"/>
          <S t="4829780658" d="360360" r="1"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="3863546862">
        <SegmentTimeline>
          <S t="3863546862" d="278528"/>
          <S t="3863825390" d="287744"/>
          <S t="3864113134" d="288768"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
  </Period>
</MPD>
```

**Example 線形 DASH パーソナライズマニフェスト (クリエイティブ広告シグナリングを使用):**  

```
<MPD availabilityStartTime="2023-02-09T22:47:05.865000+00:00" id="201" minBufferTime="PT10S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-10T21:08:43+00:00" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://d3fch9e2fcarly.cloudfront.net/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/</BaseURL>
    <Location>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/index.mpd?aws.sessionId=672ed481-4ffd-4270-936f-7c8403947f2e</Location>
    <Period duration="PT304.103S" id="104" start="PT80141.456S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4808487386" startNumber="151" timescale="60000">
                <SegmentTimeline>
                    <S d="360360" r="3" t="4824975858"/>
                    <S d="316316" t="4826417298"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3846790126" startNumber="151" timescale="48000">
                <SegmentTimeline>
                    <S d="287744" t="3859981294"/>
                    <S d="288768" t="3860269038"/>
                    <S d="287744" t="3860557806"/>
                    <S d="288768" t="3860845550"/>
                    <S d="252928" t="3861134318"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
    </Period>
    <Period id="155_1" start="PT22H20M45.56S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_1/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="xxxxx" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_1","ad_position": "155_1", "ad_type":"avail","creative_id": "123","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_2" start="PT22H21M0.575S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_2/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_2","ad_position": "155_2", "ad_type":"avail","creative_id": "234","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_3" start="PT22H21M15.59S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_3/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_3","ad_position": "155_3", "ad_type":"avail","creative_id": "345","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="163" start="PT80490.538S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4829432310" startNumber="164" timescale="60000">
                <SegmentTimeline>
                    <S d="348348" t="4829432310"/>
                    <S d="360360" r="1" t="4829780658"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3863546862" startNumber="164" timescale="48000">
                <SegmentTimeline>
                    <S d="278528" t="3863546862"/>
                    <S d="287744" t="3863825390"/>
                    <S d="288768" t="3864113134"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
    </Period>
</MPD>
```

# 広告決定サーバー (ADS) インタラクション
<a name="ad-id-ads-interactions"></a>

MediaTailor は、VAST レスポンスのクリエイティブ`id`属性値を広告 ID シグナリングの値として使用します。`id` 属性値が空であるか、VAST レスポンスに存在しない場合、MediaTailor は広告 ID シグナリングに空の値を配置します。

**Example VAST レスポンス:**  
次の VAST レスポンスのサンプルには、インライン線形 の`id`属性値が含まれています`Creative`。MediaTailor はカスタム VAST `Extension`要素から値を抽出し、その値をマニフェストのクリエイティブメタデータに配置します。  

```
<?xml version="1.0" encoding="utf-8"?>
<VAST version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Ad sequence="3">
        <InLine>
            <AdSystem>2.0</AdSystem>
            <AdTitle>AD-caribbean2-15</AdTitle>
            <Impression><![CDATA[https://n8ljfs0xxx.execute-api.us-west-2.amazonaws.com/v1/impression]]></Impression>
            <Creatives>
                <Creative sequence="3" apiFramework="inLine" id="1234">
                    <Linear>
                        <Duration>00:00:15</Duration>
                        <MediaFiles>
                            <MediaFile id="00002" delivery="progressive" type="video/mp4" width="1280" height="720"><![CDATA[https://d3re4i3vgppxxx.cloudfront.net/Media/Bumpers/AD-caribbean2-15-HD.mp4]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
          <Extensions>
            <Extension type="creative_signaling"><![CDATA[999999|TVNlDDNpFTchtpRj,E5TfTtcYd5IEzvEt,ChA05OHcvWRGFY6Zp5VSSlxUEJ2B9p8GGhQIDzIQkFeQC-Ho67FR3P9qNa6khSAGKgAyAA]]></Extension>
          </Extensions>
        </InLine>
    </Ad>
</VAST>
```

# クライアント側の追跡 API
<a name="ad-id-client-side-tracking-api"></a>

次の例は、プレイヤー SDK がマニフェストの広告メタデータを、 `creativeId`および を使用したクライアント側の追跡レスポンスペイロードの完全な追跡イベントデータとリンクする方法を示しています`adId`。

**Example JSON メッセージ:**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "ads": [
        {
          "adId": "5",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "2.0",
          "adTitle": "AD-caribbean2-15",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1234",
          "creativeSequence": "2",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT30S",
          "startTimeInSeconds": 30,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myServer/impression"
              ],
              "duration": "PT15S",
              "durationInSeconds": 15,
              "eventId": "5",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT30S",
              "startTimeInSeconds": 30
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "5",
      "availProgramDateTime": null,
      "duration": "PT15S",
      "durationInSeconds": 15,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT30S",
      "startTimeInSeconds": 30
    }
  ],
  "nextToken": "UFQ1TTM0Ljk2N1NfMjAyMi0xMS0xOFQwNDozMzo1Mi4yNDUxOTdaXzE%3D",
  "nonLinearAvails": []
}
```