View a markdown version of this page

トラブルシューティングとモニタリング - AWS Elemental MediaTailor

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

トラブルシューティングとモニタリング

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

メトリクス

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 ダッシュボードを作成します。

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

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

  3. Duration filled: Sum(YieldOptimization.FilledDuration) against Sum(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 サポートにお問い合わせください。