

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

# トラブルシューティングとモニタリング
<a name="yield-optimization-troubleshooting"></a>

このページは、歩留まり最適化のパフォーマンスのモニタリング、一般的な問題の診断、設定が正しく動作していることの検証に役立ちます。

## メトリクス
<a name="yield-optimization-troubleshooting-metrics"></a>

MediaTailor は、収量最適化に関する以下の CloudWatch メトリクスを発行します。特に明記されていない限り、すべてのメトリクスは`configurationName`ディメンションとともに出力されます。

### 入札リクエストメトリクス
<a name="yield-optimization-troubleshooting-metrics-bidrequest"></a>


| メトリクス | 説明 | 
| --- | --- | 
| YieldOptimization.BidRequest | 入札リクエストの機会が特定されると、1 として出力されます。 | 
| YieldOptimization.BidResponse | 成功した入札レスポンスが受信されると、1 として出力されます。 | 
| YieldOptimization.BidDuration | 入札でリクエストされたブレーク期間 (秒）。表示期間からプライマリ広告期間を引いた値から計算されます。 | 
| YieldOptimization.Latency | ミリ秒単位の APS へのラウンドトリップレイテンシー。 | 
| YieldOptimization.NoBid | APS が HTTP 204 (一致する需要なし) を返すと、1 として出力されます。リクエスト自体は有効でした。 | 
| YieldOptimization.BidRequestThrottled | APS が HTTP 429 (スロットリング) を返すと、1 として出力されます。APS はバックプレッシャーを適用しています。再試行する前にバックオフします。 | 

### 広告挿入メトリクス
<a name="yield-optimization-troubleshooting-metrics-adinsertion"></a>


| メトリクス | 説明 | 
| --- | --- | 
| YieldOptimization.AdsInserted | 表示に挿入された YO 広告の数。 | 
| YieldOptimization.AdsReturned | BidResponse で返された広告の数 (フィルタリング前）。0 より大きい場合にのみ出力されます。 | 
| YieldOptimization.FilledDuration | YO 広告で埋められた期間 (ms)。 | 
| YieldOptimization.UnfilledDuration | 入札リクエストで APS に送信された期間 (ms) (機会ギャップ）。 | 
| YieldOptimization.FillRate | 可用性あたりのフィルレート: トランスコードされた YO 期間を事前 YO 未入力期間で割った値。分子はトランスコードされ、分母は VAST ベース (バンパーを減算しない) であるため、値は 1.0 を超える可能性があります。 | 

### 収益と料金のメトリクス
<a name="yield-optimization-troubleshooting-metrics-revenue"></a>


| メトリクス | 説明 | 
| --- | --- | 
| YieldOptimization.Revenue | oRTB 入札レスポンスの price 属性から取得された顧客の総収益。挿入された広告全体の料金の合計。 | 
| YieldOptimization.IndicativeBidRevenue | すべての RETURNED 入札のインプレッションごとの表示値の合計 (インプレッションあたりの入札価格、挿入あたりの入札価格ではありません）。非推奨ウィンドウRevenue中に と一緒にデュアルエミットされ、ダッシュボードがカットオーバーされると削除されます。新しいダッシュボードRevenueには を使用します。 | 
| YieldOptimization.BidPriceAdsInserted | yield Optimization によって挿入された各広告の CPM 料金。入札レスポンス cur (通貨) 属性によってディメンションが決まります。顧客ごとに出力されないため、これはアカウント全体です。 | 
| YieldOptimization.BidPriceAdsReturned | BidResponse で返される各入札の CPM 料金 (挿入へのフィルタリング前）。ディメンションは ですcur。顧客ごとに出力されないため、これはアカウント全体です。 | 

### エラーとスキップのメトリクス
<a name="yield-optimization-troubleshooting-metrics-error"></a>


| メトリクス | 説明 | 
| --- | --- | 
| YieldOptimization.Errors | 接続エラー、レスポンス処理エラー、または予期しない例外に対して 1 として出力されます。また、成功時に 0 として出力されます (SampleCount ではなく Sum を使用します）。 | 
| YieldOptimization.Timeouts | APS リクエストがタイムアウトすると 1 として出力されます。また、成功時に 0 として出力されます (SampleCount ではなく Sum を使用します）。 | 
| YieldOptimization.BidRequestConfigurationError | テンプレートまたは入札構造が失敗した場合 (フィールドの欠落、無効な JSON)、1 として出力されます。 | 
| YieldOptimization.SkipMinUnfilledDurationNotExceeded | 未入力の期間がしきい値を下回ったため、YO がスキップされたときに 1 として出力されます。 | 
| YieldOptimization.SkipPersonalizationTimeoutExceeded | パーソナライゼーション時間が不十分なために YO がスキップされたときに 1 として出力されます。 | 

**重要**  
`YieldOptimization.Errors` および `YieldOptimization.Timeouts`は、リクエストが成功するたびに 0 として出力されます。CloudWatch で **Sum** (SampleCount ではない) を使用して、実際のエラー数またはタイムアウト数を取得します。 `NoBid`および `BidRequestThrottled`は でカウントされません`Errors`。これらは、正当な不必要な条件とバックプレッシャー条件の個別のシグナルです。

## ログイベント
<a name="yield-optimization-troubleshooting-log-events"></a>

yield Optimization は、`MidasMMSService/ads_interaction_log`ロググループにイベントを生成します。


| イベントタイプ | 説明 | 
| --- | --- | 
| RAW\_BID\_REQUEST | APS に送信された OpenRTB 入札リクエスト JSON 全体。これを使用して、テンプレートの補間を検証します。 | 
| RAW\_BID\_RESPONSE | 入札価格と VAST XML を含む、APS からの未加工の OpenRTB 入札レスポンス。 | 
| FILLED\_AVAIL | すべての広告を含む完全な表示。YO 広告には、bidId、、bidPrice、currency、impressionIdおよび fillMode: "YIELD\_OPTIMIZATION"がありますseatId。 | 

エラーイベントは、、`YieldOptimizationSupport`、`OrtbBidRequestBuilder`、 などのロガー`MidasMMSService/application.log`を使用して で出力されます`HttpOrtbRequestSubmitter``OrtbResponseProcessor`。

## CloudWatch Insights クエリの例
<a name="yield-optimization-troubleshooting-insights"></a>

### YO エラーを確認する
<a name="yield-optimization-troubleshooting-insights-errors"></a>

```
fields @timestamp, message.sessionId, message.message, log.logger, log.level
| filter message.awsAccountId = 'YOUR_ACCOUNT_ID'
  and (log.level = 'ERROR' or log.level = 'WARN')
  and (log.logger like /YieldOptimization/
    or log.logger like /OrtbResponseProcessor/
    or log.logger like /HttpOrtbRequestSubmitter/
    or log.logger like /OrtbBidRequestBuilder/)
| sort @timestamp desc
| limit 100
```

**ロググループ**: `MidasMMSService/application.log`

### 入札リクエストとレスポンスをカウントする
<a name="yield-optimization-troubleshooting-insights-count"></a>

```
fields @timestamp, sessionId, eventType
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and (eventType = 'RAW_BID_REQUEST' or eventType = 'RAW_BID_RESPONSE')
| stats count(*) by eventType
```

**ロググループ**: `MidasMMSService/ads_interaction_log`

### いっぱいになった表示で YO 広告を検索する
<a name="yield-optimization-troubleshooting-insights-filled"></a>

各`FILLED_AVAIL`イベントには`creativeAds`配列が含まれています。その配列内の YO 広告には`fillMode: "YIELD_OPTIMIZATION"`、、`bidId`、、`impressionId``bidPrice``seatId`、および という追加の入札メタデータが含まれます`currency`。これを使用して、YO によって埋められた表示、表示ごとに挿入された YO 広告の数、および入札あたりの収益属性を確認します。

```
fields @timestamp, sessionId, avail.availId, avail.numAds, avail.fillRate, avail.filledDuration
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and eventType = 'FILLED_AVAIL'
  and @message like /YIELD_OPTIMIZATION/
| sort @timestamp desc
| limit 50
```

特定のセッションの個々の YO 広告エントリ (入札 ID と価格) を取得するには:

```
fields @timestamp, sessionId, avail.availId, avail.creativeAds
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and eventType = 'FILLED_AVAIL'
  and sessionId = 'YOUR_SESSION_ID'
| sort @timestamp desc
| limit 20
```

結果の`creativeAds`配列のクライアント側で、 のエントリをフィルタリングします`fillMode == "YIELD_OPTIMIZATION"`。

**ロググループ**: `MidasMMSService/ads_interaction_log`

### 未解決のテンプレート変数を確認する
<a name="yield-optimization-troubleshooting-insights-unresolved"></a>

```
fields @timestamp, sessionId, @message
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and eventType = 'RAW_BID_REQUEST'
  and @message like /\{[A-Z_]+\}/
| sort @timestamp desc
| limit 20
```

**ロググループ**: `MidasMMSService/ads_interaction_log`

### YO レイテンシーと成功率の測定
<a name="yield-optimization-troubleshooting-insights-latency"></a>

```
fields @timestamp, @message
| filter customerId = 'YOUR_ACCOUNT_ID'
  and (@message like /YieldOptimization/ or @message like /ortb_/)
| limit 10000
```

**ロググループ**: `MidasMMSService/service_log`

**注記**  
`service_log` は、アカウント ID フィールドに `customerId` ( ではなく`awsAccountId`) を使用します。

## イールドリフトの計算
<a name="yield-optimization-troubleshooting-yield-lift"></a>

yield Optimization の収益への影響を測定するには、以下を使用して CloudWatch ダッシュボードを作成します。

1. **増分フィルレート:** 広告が挿入される YO 機会の割合`Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)`を示します。または、可用性ごとのネイティブメトリクス`Average(YieldOptimization.FillRate)`に を使用します。

1. 1 **時間あたりの収益:** 時間の`Sum(YieldOptimization.Revenue)`経過とともに、YO からの顧客あたりの収益の合計が表示されます。 は、アカウント全体の平均 CPM `Sum(YieldOptimization.BidPriceAdsInserted)`を提供します。

1. **Duration filled:** `Sum(YieldOptimization.FilledDuration)` against `Sum(YieldOptimization.BidDuration)`は、リクエストされた期間のうち実際に満たされた時間を示します。

## 一般的な問題
<a name="yield-optimization-troubleshooting-common-issues"></a>

### 歩留まりの最適化がトリガーされない
<a name="yield-optimization-troubleshooting-not-triggering"></a>


| 症状 | チェック | 解決策 | 
| --- | --- | --- | 
| YO メトリクスはまったくない | YO は再生設定で設定されていますか? | コンソールまたは API で YO を有効にします。 | 
| SkipMinUnfilledDurationNotExceeded 出力 | プライマリ ADS がほとんどのブレークを満たしています | プライマリフィルで十分であることを低くMinimumUnfilledDurationするか、受け入れます。 | 
| SkipPersonalizationTimeoutExceeded 出力 | プライマリ ADS が遅すぎて YO の時間が残らない | プライマリ ADS レイテンシーを最適化するか、パーソナライゼーションタイムアウト SDC 設定を確認します。 | 

### 入札リクエストが失敗する
<a name="yield-optimization-troubleshooting-bidrequests-failing"></a>


| 症状 | チェック | 解決策 | 
| --- | --- | --- | 
| BidRequestConfigurationError のメトリクス | テンプレートに必須フィールドがないか、空です | 特定のエラー ( などapp.bundle is required) application.logを確認します。テンプレートを修正するか、プレイヤーパラメータが送信されていることを確認します。 | 
| APS からの HTTP 204 | YieldOptimization.NoBid 増分 | APS は入札なしを返しました。エラーではありません。プレースホルダー値 ({UPPER\_CASE} パターン) RAW\_BID\_REQUESTを検査し、バンドルと storeurl が実際の低い入札フロアであることを確認します。 | 
| APS からの HTTP 429 | YieldOptimization.BidRequestThrottled 増分 | APS がスロットリングしています。バックオフリクエストレート。永続的な場合は、APS サポートに連絡して TPS 制限を引き上げます。 | 
| APS からの HTTP 400 | 無効なリクエスト JSON | で APS エラーメッセージを確認しますRAW\_BID\_RESPONSE。JSON 構造が OpenRTB 仕様と一致することを確認します。 | 
| APS からの HTTP 500/503 | APS サーバーエラーまたはオーバーロード | 一時的な問題。YieldOptimization.Errors をモニタリングします。永続的な場合は、APS サポートにお問い合わせください。 | 

### 返されたが挿入されていない広告
<a name="yield-optimization-troubleshooting-not-inserted"></a>


| 症状 | チェック | 解決策 | 
| --- | --- | --- | 
| AdsReturned > 0 だが AdsInserted = 0 | 挿入中にフィルタリングされた広告 | スキップの理由として、重複したクリエイティブ、残りのしきい値を超えた、広告バリアントが見つからない (トランスコードが完了していない) などのFILLED\_AVAILログを確認します。 | 

## APS エラーコードリファレンス
<a name="yield-optimization-troubleshooting-error-codes"></a>


| コード | 意味 | 一般的な原因 | 
| --- | --- | --- | 
| 200 | 入札の成功 | 正しく動作している。 | 
| 204 | 入札なし | リクエストは有効ですが、利用可能な入札はありませんでした。これはテンプレートのエラーを示すものではありません。 | 
| 400 | 不正なリクエスト | OpenRTB 仕様に従って無効な JSON、必須フィールドがありません。 | 
| 500 | サーバーエラー | APS の内部問題、サービススロットリング、タイムアウト。 | 
| 503 | サービスの過負荷 | APS バックプレッシャー。積極的に再試行しないでください。 | 
| 429 | スロットル済み | APS はリクエストのスロットリングを手動で開始しました。永続的な場合は、APS サポートにお問い合わせください。 | 