翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MediaTailor イベントフローの問題のトラブルシューティング
AWS Elemental MediaTailor イベントフローを理解することは、広告挿入の問題をトラブルシューティングするための強力な基盤となります。イベントのシーケンス、タイミング、パターンを分析することで、問題が発生する場所をすばやく特定し、ターゲットを絞ったソリューションを実装できます。
このセクションでは、イベントフロー分析を使用して問題を診断するための実践的なガイダンスを提供します。基本的なイベントフローの概念については、「」を参照してください広告挿入イベントフロー。
不完全なイベントフローの特定
不完全なイベントフローは、マニフェストのパーソナライゼーション (MediaTailor がパーソナライズされた広告情報をマニフェストに挿入するプロセス) を成功させる前に、予想される一連のイベントが停止したときに発生します。フローの中断箇所を特定すると、広告挿入の失敗の根本原因を特定するのに役立ちます。
不完全な一般的なフローパターン
イベントフローの障害ポイントが異なると、次のような特定のタイプの問題が示されます。
-
広告機会の検出後にフローが停止する: MediaTailor が ADS リクエストを実行できないようにする広告マーカーまたはマニフェスト自体に関する問題を示します。ADS 接続、設定、またはタイムアウトの問題は、ADS リクエストの実行後に発生します。
-
ADS リクエスト後にフローが停止する: ADS レスポンスの問題、VAST 解析の問題、クリエイティブ処理の失敗、ADS タイムアウト、接続エラー、リクエストが行われたときにのみ検出された無効な ADS URLs などの設定の問題を提案します。
-
追跡ビーコンがない: 追跡設定の問題、サーバー側のレポートの問題、またはクライアント側の実装ギャップを示している可能性があります。
不完全なフロー分析のための CloudWatch クエリ
これらの Amazon CloudWatch Logs Insights クエリを使用して、不完全なイベントフローを特定します。必要な分析のタイプに基づいて、適切なロググループに対してこれらのクエリを実行します。
ロググループの選択:
-
MediaTailor/AdDecisionServerInteractions - 広告決定サーバーのインタラクション、広告機会、ADS 関連の障害を分析するクエリに使用します。
-
MediaTailor/TranscodeService - トランスコード問題、クリエイティブ処理の失敗、またはその他の ADS 関連以外の問題が原因で広告が挿入されなかった問題を分析するために使用します。
例 マニフェストのパーソナライゼーションを成功させることなく広告機会を特定する
ロググループ: MediaTailor/AdDecisionServerInteractions
次のクエリは、マニフェストのパーソナライゼーションが成功しなかった広告機会を識別します。
fields @timestamp, eventType, avail.availId, sessionId | filter eventType = "AD_MARKER_FOUND" | stats count() as total_opportunities by avail.availId | join ( fields @timestamp, eventType, avail.availId | filter eventType = "FILLED_AVAIL" | stats count() as successful_fills by avail.availId ) on avail.availId | where ispresent(total_opportunities) and not ispresent(successful_fills) | sort total_opportunities desc
例 イベントフローの完了率を分析する
ロググループ: MediaTailor/AdDecisionServerInteractions
次のクエリは、さまざまなイベントタイプの完了率を分析します。
fields @timestamp, eventType, avail.availId | filter eventType in ["AD_MARKER_FOUND", "MAKING_ADS_REQUEST", "VAST_RESPONSE", "FILLED_AVAIL", "BEACON_FIRED"] | stats count() by eventType, avail.availId | sort avail.availId, eventType
例 ビーコンイベントが欠落しているセッションを検索する
ロググループ: MediaTailor/AdDecisionServerInteractions
次のクエリは、avails を満たしているが、対応するビーコンイベントがないセッションを識別します。
fields @timestamp, eventType, sessionId, avail.availId | filter eventType = "FILLED_AVAIL" | stats count() as filled_avails by sessionId | join ( fields @timestamp, eventType, sessionId | filter eventType = "BEACON_FIRED" | stats count() as beacon_events by sessionId ) on sessionId | where filled_avails > 0 and (not ispresent(beacon_events) or beacon_events = 0) | sort filled_avails desc
例 トランスコード関連の広告挿入の失敗を特定する
ロググループ: MediaTailor/TranscodeService
次のクエリは、広告挿入の成功を妨げるトランスコードの問題を特定します。
fields @timestamp, eventType, sessionId, requestId | filter eventType in ["TRANSCODE_IN_PROGRESS", "INTERNAL_ERROR", "MISSING_VARIANTS", "PROFILE_NOT_FOUND"] | stats count() as transcode_issues by eventType, sessionId | sort transcode_issues desc
イベントタイミングの問題の分析
イベントタイミング分析は、パフォーマンスのボトルネックを特定し、広告挿入ワークフローを最適化するのに役立ちます。異常なタイミングパターンは、多くの場合、視聴者のエクスペリエンスに影響する根本的な問題を示します。
パフォーマンスタイミングのしきい値
これらのタイミングしきい値を使用して、潜在的なパフォーマンスの問題を特定します。
-
合計フロー時間が 5 秒を超える: ビューワーエクスペリエンスに影響を与え、ADS パフォーマンスの問題、オリジンサーバーの問題 (マニフェスト取得タイムアウトなど)、または NAT Gateway、DynamoDB、EC2、またはその他のシステムコンポーネントのインフラストラクチャの問題を含む内部 MediaTailor の問題を示している可能性があります。
-
2 秒を超える ADS 応答時間: ADS パフォーマンスの問題またはネットワークレイテンシーの問題を示します。
-
1 秒を超えるマニフェストパーソナライゼーション: クリエイティブ処理の遅延、オリジンサーバーの問題 (マニフェスト取得タイムアウトなど)、または NAT Gateway、DynamoDB、EC2、またはその他のコンポーネントによるインフラストラクチャの制約を含む内部 MediaTailor システムの問題を示す可能性があります。
タイミング分析クエリ
これらのクエリを使用して、イベントタイミングパターンを分析します。
例 イベントフローの合計期間の測定
次のクエリは、イベントフローの合計期間を測定し、5 秒を超えるイベントフローを識別します。
fields @timestamp, eventType, avail.availId | filter avail.availId = "your-avail-id" | filter eventType in ["AD_MARKER_FOUND", "FILLED_AVAIL"] | sort @timestamp asc | stats min(@timestamp) as start_time, max(@timestamp) as end_time by avail.availId | eval duration_seconds = (end_time - start_time) / 1000 | where duration_seconds > 5
例 ADS レスポンスタイミングの分析
次のクエリは、ADS 応答時間を分析し、2 秒を超える応答時間を特定します。
fields @timestamp, eventType, avail.availId | filter avail.availId = "your-avail-id" | filter eventType in ["MAKING_ADS_REQUEST", "VAST_RESPONSE"] | sort @timestamp asc | stats min(@timestamp) as request_time, max(@timestamp) as response_time by avail.availId | eval ads_response_seconds = (response_time - request_time) / 1000 | where ads_response_seconds > 2
例 スローマニフェストのパーソナライゼーションを特定する
次のクエリは、1 秒以上かかるマニフェストのパーソナライゼーションプロセスを識別します。
fields @timestamp, eventType, avail.availId | filter avail.availId = "your-avail-id" | filter eventType in ["VAST_RESPONSE", "FILLED_AVAIL"] | sort @timestamp asc | stats min(@timestamp) as response_time, max(@timestamp) as filled_time by avail.availId | eval personalization_seconds = (filled_time - response_time) / 1000 | where personalization_seconds > 1
一般的なイベントフローの問題と解決策
このセクションでは、頻繁に発生するイベントフローの問題の解決策を、問題のタイプと症状別に整理して提供します。
広告決定サーバーリクエストの失敗
症状: 広告機会の検出後にイベントフローが停止します。ADS リクエストイベントはログに記録されません。
一般的な原因と解決策
-
ADS URL 設定エラー: 再生設定の ADS URL が正しくアクセス可能であることを確認します。広告インタラクションログには、ADS リクエストイベント (
MAKING_ADS_REQUEST
) が表示されますが、対応する VAST レスポンスは表示されません。多くの場合、ERROR_UNKNOWN
または同様のエラーイベントが伴います。 -
ネットワーク接続の問題: ファイアウォールルールや DNS 解決など、MediaTailor と ADS 間のネットワーク接続を確認します。
-
SSL/TLS 証明書の問題: ADS が信頼できる認証機関からの有効な SSL 証明書を使用していることを確認します。特に Google 広告マネージャーの場合は、AWS サポート
に連絡して、Google の SSL 証明書を受け入れる設定フラグを有効にする必要がある場合があります。
診断クエリ
次のクエリは、イベントシーケンスを追跡して ADS リクエストの失敗を診断するのに役立ちます。
fields @timestamp, eventType, sessionId | filter sessionId = "your-session-id" | filter eventType in ["AD_MARKER_FOUND", "MAKING_ADS_REQUEST", "ERROR_ADS_IO", "ERROR_UNKNOWN_HOST"] | sort @timestamp asc
広告決定サーバーのレスポンスの失敗
症状: ADS リクエストは成功しましたが、MediaTailor がレスポンスを受信しないか、解析エラーが発生します。
一般的な原因と解決策
-
無効な VAST 形式: VAST 仕様標準に照らして ADS VAST レスポンスを検証します。
-
ADS タイムアウトの問題: ADS タイムアウト設定を増やすか、ADS 応答時間を最適化します。
-
空の広告インベントリ: ADS 設定で広告インベントリの可用性とターゲット基準を確認します。
診断クエリ
次のクエリは、リクエストイベントとレスポンスイベントを調べることで、ADS レスポンスの失敗を診断するのに役立ちます。
fields @timestamp, eventType, sessionId | filter sessionId = "your-session-id" | filter eventType in ["MAKING_ADS_REQUEST", "VAST_RESPONSE", "EMPTY_VAST_RESPONSE", "ERROR_ADS_RESPONSE_PARSE", "ERROR_ADS_TIMEOUT"] | sort @timestamp asc
マニフェストパーソナライゼーションの失敗
症状: VAST レスポンスは受信されましたが、マニフェストのパーソナライゼーションが失敗するか、広告がスキップされます。
一般的な原因と解決策:
-
クリエイティブトランスコーディングの問題: 広告が で
NEW_CREATIVE
、挿入前にトランスコーディングする必要があるかどうかを確認します。MediaTailor/TranscodeService ログでMISSING_VARIANTS,
や などのエラーイベントを調べることでINTERNAL_ERROR
、トランスコードエラーを確認することもできますPROFILE_NOT_FOUND
。 -
期間の不一致の問題: 広告期間が利用可能な広告時間枠期間内に収まることを確認します。
-
パーソナライゼーションのしきい値の問題: 再生設定でパーソナライゼーションのしきい値設定を確認します。
診断クエリ
次のクエリは、VAST レスポンスと入力済みの表示を調べることで、マニフェストのパーソナライゼーションの失敗を診断するのに役立ちます。
fields @timestamp, eventType, sessionId, skippedAds | filter sessionId = "your-session-id" | filter eventType in ["VAST_RESPONSE", "FILLED_AVAIL", "WARNING_NO_ADVERTISEMENTS"] | sort @timestamp asc
スキップされた広告理由のクエリ
次のクエリは、広告がスキップされた理由に関する詳細情報を提供します。
fields @timestamp, eventType, sessionId, skippedAds.reason, skippedAds.creativeUniqueId | filter sessionId = "your-session-id" | filter eventType = "WARNING_NO_ADVERTISEMENTS" or ispresent(skippedAds) | sort @timestamp asc
スキップされた広告理由とクリエイティブな一意の IDs
次のクエリでは、各表示の最初の 2 つの広告について、理由やクリエイティブな一意の IDs など、スキップされた詳細な広告情報を提供します。
fields @timestamp, eventType | filter sessionId = "your-session-id" | filter eventType = "FILLED_AVAIL" | fields avail.skippedAds.0.vastDuration as SkippedDur_Ad0, avail.skippedAds.0.skippedReason as Ad0_SkipReason, avail.skippedAds.0.creativeUniqueId as SkippedCreative0_UID | fields avail.skippedAds.1.vastDuration as SkippedDur_Ad1, avail.skippedAds.1.skippedReason as Ad1_SkipReason, avail.skippedAds.1.creativeUniqueId as SkippedCreative1_UID | sort @timestamp desc
ビーコンの失敗の追跡
症状: マニフェストのパーソナライゼーションは成功しましたが、追跡ビーコンが欠落または失敗しています。
一般的な原因と解決策
-
クライアント側の実装の問題: ほとんどの追跡ビーコンの問題は、クライアント側の追跡に十分な頻度で追跡 URLsポーリングしない、またはプレイヤー固有のビーコン射撃ロジックの問題など、クライアント側の実装の問題に起因します。
-
URL アクセシビリティの問題の追跡: VAST レスポンスの追跡 URLs にアクセスできることを確認し、適切なレスポンスを返します。URLsに到達できない場合、または MediaTailor が内部問題を検出してレスポンス配信の追跡が成功しない場合、問題が発生する可能性があります。
-
プレイヤーセグメントリクエストの問題: クライアントプレイヤーが実際にセグメントをリクエストしない場合、ビーコンの追跡に見かけの失敗が発生する可能性があります。これにより、ビーコンは送信されません。ビーコンは追跡失敗として表示されますが、実際にはビーコンの問題ではなくプレイヤーの実装の問題です。
診断クエリ
次のクエリは、満たされた表示とビーコンイベントを調べることで、ビーコン追跡の失敗を診断するのに役立ちます。
fields @timestamp, eventType, sessionId | filter sessionId = "your-session-id" | filter eventType in ["FILLED_AVAIL", "BEACON_FIRED", "ERROR_FIRING_BEACON_FAILED"] | sort @timestamp asc
イベントフローモニタリングのベストプラクティス
これらのモニタリングプラクティスを実装して、イベントフローの問題をプロアクティブに特定して解決します。
CloudWatch アラームの設定
Amazon CloudWatch アラームを作成して、主要なイベントフローメトリクスをモニタリングします。
-
フロー完了率アラーム: 成功したマニフェストのパーソナライゼーションと広告機会の比率が許容可能なしきい値を下回った場合に警告します。
-
ADS 応答時間アラーム: 平均 ADS 応答時間をモニタリングし、パフォーマンスしきい値を超えたときに警告します。
-
エラー率アラーム: エラーイベントの頻度を追跡し、特定のエラータイプの異常なスパイクを警告します。
定期的なモニタリングクエリ
これらのクエリを定期的に実行して、イベントフローの状態を可視化します。
例 毎日のイベントフローの成功率
次のクエリは、イベントフローの成功率の毎日の概要をイベントタイプ別に示します。
fields @timestamp, eventType | filter @timestamp > datefloor(@timestamp, 1d) | stats count() as total_events by eventType | sort total_events desc
例 時間単位のエラー率の傾向
次のクエリは、エラー率を時間単位で追跡し、傾向のある問題を特定します。
fields @timestamp, eventType | filter eventType like /ERROR_/ | stats count() as error_count by datefloor(@timestamp, 1h) as hour | sort hour desc
パフォーマンス最適化ガイダンス
イベントフロー分析を使用して広告挿入のパフォーマンスを最適化します。
-
ADS 最適化: ADS プロバイダーと協力して応答時間を最適化し、レイテンシーを短縮します。
-
クリエイティブ準備: コンテンツプロファイルに合わせて広告クリエイティブを事前にトランスコードし、処理の遅延を軽減します。
-
設定チューニング: イベントフロー分析に基づいて、タイムアウト設定、パーソナライゼーションしきい値、およびその他の設定パラメータを調整します。
その他のトラブルシューティングリソース
イベントフロー分析以外のトラブルシューティングガイダンスについては、以下を参照してください。
-
ログ形式の詳細な情報と技術仕様については、「」を参照してくださいログの表示。
-
一般的な広告挿入問題の包括的なトラブルシューティングについては、「」を参照してください一般的な の問題のトラブルシューティング。
-
モニタリングとアラートの設定のガイダンスについては、「」を参照してくださいAmazon CloudWatch メトリクス AWS Elemental MediaTailor によるモニタリング。
-
デバッグログ記録の手順については、「」を参照してくださいデバッグログの生成。