翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティングとモニタリング
このページは、歩留まり最適化のパフォーマンスのモニタリング、一般的な問題の診断、設定が正しく動作していることの検証に役立ちます。
メトリクス
MediaTailor は、収量最適化に関する以下の CloudWatch メトリクスを発行します。特に明記されていない限り、すべてのメトリクスはconfigurationNameディメンションとともに出力されます。
入札リクエストメトリクス
| メトリクス | 説明 |
|---|---|
YieldOptimization.BidRequest |
入札リクエストの機会が特定されると、1 として出力されます。 |
YieldOptimization.BidResponse |
成功した入札レスポンスが受信されると、1 として出力されます。 |
YieldOptimization.BidDuration |
入札でリクエストされたブレーク期間 (秒)。表示期間からプライマリ広告期間を引いた値から計算されます。 |
YieldOptimization.Latency |
ミリ秒単位の APS へのラウンドトリップレイテンシー。 |
YieldOptimization.NoBid |
APS が HTTP 204 (一致する需要なし) を返すと、1 として出力されます。リクエスト自体は有効でした。 |
YieldOptimization.BidRequestThrottled |
APS が HTTP 429 (スロットリング) を返すと、1 として出力されます。APS はバックプレッシャーを適用しています。再試行する前にバックオフします。 |
広告挿入メトリクス
| メトリクス | 説明 |
|---|---|
YieldOptimization.AdsInserted |
表示に挿入された YO 広告の数。 |
YieldOptimization.AdsReturned |
BidResponse で返された広告の数 (フィルタリング前)。0 より大きい場合にのみ出力されます。 |
YieldOptimization.FilledDuration |
YO 広告で埋められた期間 (ms)。 |
YieldOptimization.UnfilledDuration |
入札リクエストで APS に送信された期間 (ms) (機会ギャップ)。 |
YieldOptimization.FillRate |
可用性あたりのフィルレート: トランスコードされた YO 期間を事前 YO 未入力期間で割った値。分子はトランスコードされ、分母は VAST ベース (バンパーを減算しない) であるため、値は 1.0 を超える可能性があります。 |
収益と料金のメトリクス
| メトリクス | 説明 |
|---|---|
YieldOptimization.Revenue |
oRTB 入札レスポンスの price 属性から取得された顧客の総収益。挿入された広告全体の料金の合計。 |
YieldOptimization.IndicativeBidRevenue |
すべての RETURNED 入札のインプレッションごとの表示値の合計 (インプレッションあたりの入札価格、挿入あたりの入札価格ではありません)。非推奨ウィンドウRevenue中に と一緒にデュアルエミットされ、ダッシュボードがカットオーバーされると削除されます。新しいダッシュボードRevenueには を使用します。 |
YieldOptimization.BidPriceAdsInserted |
yield Optimization によって挿入された各広告の CPM 料金。入札レスポンス cur (通貨) 属性によってディメンションが決まります。顧客ごとに出力されないため、これはアカウント全体です。 |
YieldOptimization.BidPriceAdsReturned |
BidResponse で返される各入札の CPM 料金 (挿入へのフィルタリング前)。ディメンションは ですcur。顧客ごとに出力されないため、これはアカウント全体です。 |
エラーとスキップのメトリクス
| メトリクス | 説明 |
|---|---|
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。これらは、正当な不必要な条件とバックプレッシャー条件の個別のシグナルです。
ログイベント
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を使用して で出力されますHttpOrtbRequestSubmitterOrtbResponseProcessor。
CloudWatch Insights クエリの例
YO エラーを確認する
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
入札リクエストとレスポンスをカウントする
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 広告を検索する
各FILLED_AVAILイベントにはcreativeAds配列が含まれています。その配列内の YO 広告にはfillMode: "YIELD_OPTIMIZATION"、、bidId、、impressionIdbidPriceseatId、および という追加の入札メタデータが含まれます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
未解決のテンプレート変数を確認する
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 レイテンシーと成功率の測定
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) を使用します。
イールドリフトの計算
yield Optimization の収益への影響を測定するには、以下を使用して CloudWatch ダッシュボードを作成します。
-
増分フィルレート: 広告が挿入される YO 機会の割合
Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)を示します。または、可用性ごとのネイティブメトリクスAverage(YieldOptimization.FillRate)に を使用します。 -
1 時間あたりの収益: 時間の
Sum(YieldOptimization.Revenue)経過とともに、YO からの顧客あたりの収益の合計が表示されます。 は、アカウント全体の平均 CPMSum(YieldOptimization.BidPriceAdsInserted)を提供します。 -
Duration filled:
Sum(YieldOptimization.FilledDuration)againstSum(YieldOptimization.BidDuration)は、リクエストされた期間のうち実際に満たされた時間を示します。
一般的な問題
歩留まりの最適化がトリガーされない
| 症状 | チェック | 解決策 |
|---|---|---|
| YO メトリクスはまったくない | YO は再生設定で設定されていますか? | コンソールまたは API で YO を有効にします。 |
SkipMinUnfilledDurationNotExceeded 出力 |
プライマリ ADS がほとんどのブレークを満たしています | プライマリフィルで十分であることを低くMinimumUnfilledDurationするか、受け入れます。 |
SkipPersonalizationTimeoutExceeded 出力 |
プライマリ ADS が遅すぎて YO の時間が残らない | プライマリ ADS レイテンシーを最適化するか、パーソナライゼーションタイムアウト SDC 設定を確認します。 |
入札リクエストが失敗する
| 症状 | チェック | 解決策 |
|---|---|---|
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 サポートにお問い合わせください。 |
返されたが挿入されていない広告
| 症状 | チェック | 解決策 |
|---|---|---|
AdsReturned > 0 だが AdsInserted = 0 |
挿入中にフィルタリングされた広告 | スキップの理由として、重複したクリエイティブ、残りのしきい値を超えた、広告バリアントが見つからない (トランスコードが完了していない) などのFILLED_AVAILログを確認します。 |
APS エラーコードリファレンス
| コード | 意味 | 一般的な原因 |
|---|---|---|
| 200 | 入札の成功 | 正しく動作している。 |
| 204 | 入札なし | リクエストは有効ですが、利用可能な入札はありませんでした。これはテンプレートのエラーを示すものではありません。 |
| 400 | 不正なリクエスト | OpenRTB 仕様に従って無効な JSON、必須フィールドがありません。 |
| 500 | サーバーエラー | APS の内部問題、サービススロットリング、タイムアウト。 |
| 503 | サービスの過負荷 | APS バックプレッシャー。積極的に再試行しないでください。 |
| 429 | スロットル済み | APS はリクエストのスロットリングを手動で開始しました。永続的な場合は、APS サポートにお問い合わせください。 |