MediaTailor からの広告スキップのトラブルシューティング - AWS Elemental MediaTailor

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

MediaTailor からの広告スキップのトラブルシューティング

広告スキップは、MediaTailor のお客様が報告する最も一般的な問題の 1 つです。このセクションでは、再生中に広告がスキップされる理由の詳細な分析と、適切な広告挿入を保証するソリューションを提供します。

症状と影響

広告スキップが発生すると、次の症状が発生することがあります。

  • 予想される広告時間枠中に広告が表示されない

  • 広告ではなくコンテンツで満たされた広告ブレーク

  • 異なる表示セッション間での広告再生の不整合

  • さまざまなスキップ理由を持つAdSkippedイベントを示す CloudWatch ログ

広告スキップは収益生成に直接影響し、迅速に対処しないと視聴者のエクスペリエンスが低下する可能性があります。

一般的な原因

MediaTailor は、ロググループからのFILLED_AVAILイベントログメッセージで広告がスキップされる特定の理由をMediaTailor/AdDecisionServerInteractionsログに記録します。これらのスキップ理由を理解することは、効果的なトラブルシューティングに不可欠です。

一般的な広告スキップの理由
理由のスキップ 説明
NEW_CREATIVE 広告はまだトランスコードされていません。これは、MediaTailor が挿入前にトランスコードを必要とする新しい広告クリエイティブに遭遇した場合に発生します。
PROFILE_NOT_FOUND セッションの設定に関連付けられた MediaConvert トランスコードプロファイルが存在しないため、広告の準備ができません。
TRANSCODE_ERROR 広告トランスコードプロセスでエラーが発生し、完了できませんでした。
TRANSCODE_IN_PROGRESS 広告トランスコードはまだ進行中であり、まだ挿入する準備ができていません。
INTERNAL_ERROR 広告の処理中に内部 MediaTailor エラーが発生し、挿入が妨げられました。
AVAIL_DURATION_EXCEEDED 広告が広告時間枠の残りの期間に収まらない。
LEFTOVER_AVAIL_EXCEEDED_THRESHOLD 挿入された可能性のあるすべての広告の累積期間は、セッション用に設定されたパーソナライゼーションしきい値を満たしていません。
VAST_PARSING_ERROR 広告決定サーバーからの VAST レスポンスにエラーが含まれているか、形式が正しくありません。
ADS_TIMEOUT 広告決定サーバーは、設定されたタイムアウト期間内に応答しませんでした。
MEDIA_FILE_UNAVAILABLE VAST レスポンスで指定された広告メディアファイルにアクセスできません。
SESSION_INITIALIZATION_FAILED MediaTailor セッションは、多くの場合、セッション変数が正しくないため、正しく初期化できませんでした。
EARLY_CUE_IN 広告ブレークは、早期のキューインシグナルが原因で予想よりも早く終了し、広告が完全に挿入されなくなりました。
NO_VARIANT_MATCH 広告クリエイティブには、コンテンツストリームのエンコードパラメータ (ビットレート、解像度、コーデック) に一致するバリアントがありません。
NO_MODEL_CREATIVE_MATCH 広告クリエイティブが、現在の再生設定で予想されるモデルまたは形式の要件と一致しません。
REJECTED_REPLICA_VAST レプリカまたは重複するコンテンツ検出ポリシーにより、VAST レスポンスが拒否されました。
INVALID_VAST_WRAPPER_AD VAST ラッパー広告には、広告挿入の成功を妨げる無効なラッパー要素または不正な形式のラッパー要素が含まれています。
IMPORT_ERROR 広告のインポートプロセス中にエラーが発生しました。広告が挿入のために処理されません。
IMPORT_IN_PROGRESS 広告インポートプロセスは現在進行中であり、まだ完了していません。

これらの特定のスキップ理由以外にも、次のような一般的な原因があります。

  • セッション変数の設定が正しくない

  • 広告決定サーバー (ADS) の接続の問題

  • 同じ広告コンテンツのクリエイティブ IDs に一貫性がない

  • マニフェスト形式のプレイヤー互換性の問題

  • 広告セグメント配信に影響する CDN 設定の問題

トラブルシューティングのステップ

広告スキップの問題を診断して解決するには、次の手順に従います。

  1. 特定のスキップ理由を特定する

    CloudWatch Logs Insights を使用して、スキップされた広告のMediaTailor/AdDecisionServerInteractionsロググループをクエリします。

    fields @timestamp, avail.availId, skippedAds.0.skippedReason, skippedAds.0.creativeUniqueId | filter eventType = "FILLED_AVAIL" and ispresent(skippedAds.0.skippedReason) | sort @timestamp desc

    このクエリは、特定の理由を含む最新の広告スキップイベントを返し、パターンを識別するのに役立ちます。

  2. セッション変数設定を確認する

    セッション変数が正しくないと、広告スキップの一般的な原因になります。以下を確認してください。

    • 必要なすべてのセッション変数が ADS URL テンプレートで適切に設定されている

    • 動的変数が正しくフォーマットされている (適切な構文MediaTailor 動的広告変数については「」を参照)

    • プレイヤーパラメータが MediaTailor に正しく渡されている

    セッション変数を使用して適切に設定された ADS URL の例:

    https://my-ads-server.com/ads? sessionId=[session.id]& playerParams=[player_params.param1]& deviceType=[player_params.device]& correlator=[session.avail_duration_ms]
  3. NEW_CREATIVE の問題を解決する

    NEW_CREATIVE 理由付きで広告がスキップされている場合:

    MediaTailor は、クリエイティブ ID、AWS アカウント ID、トランスコードバリアントセット (基盤となるコンテンツストリームの再生レンディション) の 3 つの主要な要因に基づいて広告をトランスコードします。クリエイティブ ID またはトランスコードバリアントセットの一部が異なる場合、MediaTailor は広告をトランスコードを必要とする新しいバリアントとして認識します。これには、最も近い 8,000 ビットに丸めた場合のビットレートの変更が含まれます。これは、基になるコンテンツストリームがプライマリマニフェストを変更したときに発生する可能性があります。

    ビットレートの変更やクリエイティブ ID の競合など、NEW_CREATIVE シナリオの詳細については、この手順の後の詳細な NEW_CREATIVE 分析セクションを参照してください。

    1. 広告決定サーバーが同じ広告コンテンツに対して一貫したクリエイティブ IDsを返すことを確認します。

    2. コンテンツストリームが一貫したビットレートとバリアントセットを維持しているかどうかを確認する

    3. 再生前に広告がトランスコードされるように、広告プリフェッチの実装を検討してください (「」を参照広告のプリフェッチ)。

    4. 永続的な問題については、AWS サポートに連絡して追加のトラブルシューティングサポートを依頼してください。

  4. ADS 接続の問題に対処する

    広告が ADS_TIMEOUTまたは関連する理由でスキップされている場合:

    • MediaTailor から広告決定サーバーにアクセスできることを確認する

    • ADS が設定されたタイムアウト期間内に応答しているかどうかを確認します。

    • ピーク期間中に ADS がリクエストボリュームを処理できることを確認する

    • プライマリ ADS が使用できない場合のフォールバック広告戦略の実装を検討する

  5. VAST レスポンスの問題を解決する

    広告が VAST_PARSING_ERRORまたは でスキップされている場合MEDIA_FILE_UNAVAILABLE

    • VAST 仕様に照らして VAST レスポンス形式を検証する

    • VAST レスポンス内のすべてのメディアファイル URLsがパブリックにアクセス可能であることを確認します。

    • VAST XML で特殊文字の適切なエンコードを確認する

    • VAST レスポンスに MediaTailor と互換性のある形式のメディアファイルが含まれていることを確認する

  6. 期間不一致の問題に対処する

    広告が AVAIL_DURATION_EXCEEDEDまたは でスキップされている場合LEFTOVER_AVAIL_EXCEEDED_THRESHOLD

    • ADS が利用可能な広告時間枠期間内に収まる広告を返していることを確認します。

    • コンテンツ内の広告ブレークマーカーが意図した期間を正しくシグナリングしているかどうかを確認します。

    • ユースケースに適した場合は、パーソナライゼーションのしきい値を調整することを検討してください。

  7. CloudWatch メトリクスのモニタリング

    主要な MediaTailor メトリクスの CloudWatch アラームを設定して、広告スキップの問題をプロアクティブに検出します。

    • AdDecisionServer.Ads.Skipped - スキップされた広告の数

    • AdDecisionServer.Timeouts - ADS タイムアウトの数

    • Avail.FilledDuration - 埋められた広告時間枠の期間

    • Avail.SlateOnly - スレートのみで満たされた広告時間枠の数

    使用可能なメトリクスの詳細については、「Amazon CloudWatch メトリクス AWS Elemental MediaTailor によるモニタリング」を参照してください。

  8. バリアントの一致と形式の問題に対処する

    NO_VARIANT_MATCH、、NO_MODEL_CREATIVE_MATCHEARLY_CUE_INまたは形式関連の理由で広告がスキップされる場合:

    • NO_VARIANT_MATCH コンテンツストリームのエンコードパラメータ (ビットレート、解像度、コーデック) に一致するバリアントで広告クリエイティブが使用可能であることを確認します。互換性のある形式で広告を提供するように広告サーバーを設定します。

    • NO_MODEL_CREATIVE_MATCH 再生設定のクリエイティブモデルの要件を確認し、広告サーバーが予想される形式と仕様に一致する広告を提供していることを確認します。

    • EARLY_CUE_IN コンテンツストリームのキューインシグナルが適切に時間指定され、広告ブレークに広告挿入のための十分な期間があることを確認します。EXT-X-CUE-IN タグまたは SCTE-35 splice_insert メッセージがないか確認します。

  9. VAST ラッパーとインポートの問題を解決する

    広告が REJECTED_REPLICA_VAST、、INVALID_VAST_WRAPPER_ADIMPORT_ERRORまたは でスキップされている場合IMPORT_IN_PROGRESS

    • REJECTED_REPLICA_VAST 広告サーバーの設定で重複するコンテンツ検出ポリシーを確認します。VAST レスポンスに一意のクリエイティブコンテンツが含まれていることを確認し、同じセッション内で同じ広告を提供しないようにしてください。

    • INVALID_VAST_WRAPPER_AD VAST ラッパーレスポンスを VAST 仕様に照らして検証します。すべてのラッパー要素が適切にフォーマットされ、有効な VASTAdTagURI が含まれていることを確認します。

    • IMPORT_ERROR および IMPORT_IN_PROGRESS 広告インポートプロセスの問題を示します。広告クリエイティブソースファイルでアクセシビリティと形式の互換性を確認します。インポートの進行状況をモニタリングし、失敗したインポートを再試行します。

詳細な NEW_CREATIVE 分析

このセクションでは、根本的な原因や高度なトラブルシューティング手法など、NEW_CREATIVE 広告スキップシナリオに関する包括的な情報を提供します。

ビットレート変更のシナリオ

ビットレートが変更されると、最も近い 8,000 ビットに丸められた後にビットレートが一致しない場合、NEW_CREATIVE がスキップされる可能性があります。これは一般的に、次の場合に発生します。

  • 基盤となるコンテンツストリームがプライマリマニフェストを変更する

  • 新しいセッションは、既存のセッションとは異なるバリアントで作成されます。

  • コンテンツストリームのビットレートが再生セッション間で一貫性がない

クリエイティブ ID の競合

MediaTailor がトランスコード済みのメディアファイルに対して別のクリエイティブ ID を検出すると、次のシーケンスが発生します。

  1. 広告は理由 NEW_CREATIVE でスキップされます

  2. これにより、不要なトランスコーディングが試行されます。

  3. クリエイティブが DUPLICATE_TRANSCODE または COPY_DEDUP としてマークされている

注記

MediaTailor は、トランスコードされた広告を有効期限切れにしたり削除したりしません。これらは MediaTailor 所有の S3 バケットに無期限に保存されます。

ETAG 処理

ETAG は、特定のバージョンの広告プレイリストまたはマニフェストに関連付けられた一意の識別子です。MediaTailor はクリエイティブ ID を使用して広告アセットを識別しますが、リクエストごとにクリエイティブ ID が変更されると、広告が新しいクリエイティブとしてマークされ、挿入されない場合があります。

警告

クリエイティブ ID が一意である保証がないため、誤った広告が表示される可能性があります。

期間形式の問題

サーバー側の広告挿入 (SSAI) では、マニフェストファイルに特定の期間パラメータ形式が必要です。期間形式が正しくないと、広告挿入が失敗する可能性があります。

EXT-X-CUE-OUT 期間パラメータ

EXT-X-CUE-OUT タグ期間パラメータは、ISO 8601 期間形式ではなく整数値としてフォーマットする必要があります。

期間形式の要件
形式 ステータス
整数 (正しい) 32 サポート - 32 秒を表します
10 進数 (正しい) 30.000 サポート - 30 秒を表します
ISO 8601 (誤) PT32S サポートされていない - 挿入が失敗する

正しいマニフェスト形式の例:

#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXTINF:10.0, segment1.ts #EXT-X-CUE-OUT:30 #EXTINF:10.0, segment2.ts #EXT-X-CUE-IN #EXTINF:10.0, segment3.ts
重要

すべての EXT-X-CUE-OUT 期間パラメータで、広告挿入の問題を防ぐために整数形式を使用していることを確認します。

広告マーカー形式の検証

広告マーカーの形式を検証し、期間解析の問題を特定するには:

  1. AD_MARKER_FOUND イベントで CloudWatch Logs の広告マーカー形式を確認する

  2. FILLED_AVAIL イベントでFORMAT_ERRORスキップ理由を探す

  3. コンテンツマニフェストの期間値がサポートされている形式を使用していることを確認します。

  4. さまざまな期間形式でテストして互換性の問題を特定する

VOD ストリームの最適化

Video On Demand (VOD) ストリームは、パフォーマンスに影響を与える可能性のある複数の ADS リクエストを生成できます。MediaTailor は、この動作に対処するための最適化機能を提供します。

複数の ADS リクエストの問題

デフォルトでは、VOD ストリームは MediaTailor ログに複数の MAKING_ADS_REQUEST イベントを生成する場合があります。これは、VOD コンテンツ内の広告ブレークごとに広告決定サーバーへの個別の ADS リクエストがトリガーされるためです。

VOD ストリームが過剰な ADS リクエストを生成しているかどうかを確認するには、次の CloudWatch Logs Insights クエリを使用します。

fields @timestamp, sessionId, eventType, adBreakIndex | filter eventType = "MAKING_ADS_REQUEST" | stats count() by sessionId | sort count desc | limit 20

VOD 並列化機能

MediaTailor には、VOD コンテンツの ADS リクエスト処理を最適化するための並列化機能が用意されています。この機能は、再生設定の maxConcurrentAdsRequestsパラメータを使用して設定できます。

設定例:

{ "Name": "OptimizedVODConfig", "VideoContentSourceUrl": "https://example.com/content/", "AdDecisionServerUrl": "https://example.com/ads", "maxConcurrentAdsRequests": 3 }

この設定により、同時 ADS リクエストの数が制限され、サーバーの負荷が軽減され、応答時間が短縮されます。

ラップされた VAST レスポンス処理

並列化機能により、ラップされた VAST レスポンスの処理も最適化されます。これはプログラムによる広告シナリオで一般的です。ラップされた VAST レスポンスには、実際のメディアファイルに到達するためにラップ解除する必要がある VAST タグの複数のレイヤーが含まれています。

セッション変数のトラブルシューティング

セッション変数は、広告のターゲティングと選択に重要な役割を果たします。セッション変数の設定が正しくないと、広告スキップの問題の一般的な原因になります。

セッション変数の一般的な問題

セッション変数で以下の問題が発生すると、広告がスキップされる可能性があります。

  • 必須変数の欠落: 広告決定サーバーには、指定されていない特定の変数が必要になる場合があります。

  • 変数構文が正しくない: 変数は正しい構文を使用する必要があります (例: [session.id]ではなく${session.id}

  • URL エンコードの問題: 変数値の特殊文字には適切な URL エンコードが必要になる場合があります

  • プレイヤーパラメータの不整合: プレイヤーパラメータはセッション間で一貫して渡す必要があります

  • 動的変数解決の失敗: 解決できない変数は空の文字列に置き換えられます

  • SCTE-35 UPID 解析の問題: セグメンテーション UPID 処理の問題により、セッション変数の解決に失敗する可能性があります。

セッション変数の解決の検証

セッション変数が適切に解決されていることを確認するには:

  1. MediaTailor 設定のデバッグログ記録を有効にする

  2. 実際の ADS リクエスト URL のMediaTailor/AdDecisionServerInteractionsロググループを確認する URLs

  3. テンプレート URL 内のすべての変数が適切な値に置き換えられていることを確認します。

  4. 解決の失敗を示している可能性のある空の文字列に置き換えられた変数を探します。

解決された ADS リクエスト URL を示すログエントリの例:

{ "eventType": "MAKING_ADS_REQUEST", "sessionId": "abcd1234-5678-efgh-9012-ijklmnopqrst", "requestUrl": "https://my-ads-server.com/ads?sessionId=abcd1234-5678-efgh-9012-ijklmnopqrst&playerParams=mobile&deviceType=android&correlator=30000", "timestamp": "2025-06-20T19:00:00Z" }

SCTE-35 UPID 解析変数とセッション変数

SCTE-35 セグメンテーション UPID 処理に関する問題は、セッション変数の問題を引き起こす可能性があります。

  • 形式要件: UPID は 12 segmentation_upid_typeで、適切な処理format_identifierのために を含める必要があります。

  • 解析ルール: デコードされた UPID には、複数の値のコロン区切り文字を含めることができます。テンプレート変数とデコードされた UPID トークンの数は同じである必要があります。

  • 無効な形式: 解析が失敗するため、値のない二重コロン (例: ::または :46175218::4053) は避けてください。

  • 形式識別子の処理: MediaTailor は、最初の 4 バイトが format_identifier であることを前提としています。欠落している場合、private_data は最初の 4 バイトを切り捨て、ADS が想定とは異なる値を受け取る可能性があります。

高度な CloudWatch Logs Insights クエリ

広告挿入の問題の詳細なトラブルシューティングには、以下の特殊な CloudWatch Logs Insights クエリを使用します。

クリエイティブ IDs の検索

ads_interaction_log の FILLED_AVAIL イベントからクリエイティブ IDs を識別するには:

fields @timestamp, sessionId, eventType | filter sessionId like /sessionId/ and eventType!='BEACON_FIRED' | sort @timestamp desc
注記

を、調査している実際のセッション ID sessionIdに置き換えます。

包括的なセッション分析

特定のセッションの広告挿入動作の詳細な分析:

fields @timestamp, sessionId, eventType, creativeId, skipReason, adBreakIndex | filter sessionId = "your-session-id-here" | filter eventType in ["FILLED_AVAIL", "SKIPPED_AVAIL", "MAKING_ADS_REQUEST"] | sort @timestamp asc | limit 100

NEW_CREATIVE スキップ分析

NEW_CREATIVE 広告スキップのパターンを分析するには:

fields @timestamp, sessionId, creativeId, skipReason, MediaFileSourceUrl | filter skipReason = "NEW_CREATIVE" | stats count() by creativeId, MediaFileSourceUrl | sort count desc | limit 50

広告のスキップを防ぐためのベストプラクティス

広告スキップの問題を最小限に抑えるために、以下のベストプラクティスを実装します。

  • 広告プリフェッチの実装: MediaTailor のプリフェッチ機能を使用して、再生前に広告がトランスコードされるようにします。実装の詳細については広告のプリフェッチ、「」を参照してください。

  • 一貫したクリエイティブ IDs を維持する: 広告決定サーバーがセッション間で同じ広告コンテンツに対して一貫したクリエイティブ IDs を使用していることを確認します。

  • 適切な期間フォーマットを確認する: ISO 8601 形式の代わりに EXT-X-CUE-OUT 期間パラメータに整数値を使用します。

  • VOD 最適化を設定する: 複数の広告ブレークを持つ VOD ストリームに maxConcurrentAdsRequests を設定し、サーバーの負荷を軽減します。

  • トランスコードパターンのモニタリング: CloudWatch ログのトランスコード効率をモニタリングし、トランスコードの問題を示すパターンに気付いた場合は AWS サポートにお問い合わせください。

  • ETAG 整合性の検証: 不要な再トランスコードを防ぐために、メディアファイルの URIs が同じコンテンツに対して一貫していることを確認します。

  • 体系的なトラブルシューティングを実装する: 体系的なアプローチに従います。スキップ理由の特定、根本原因の分析、解決策の実装、修正の検証です。

  • ADS パフォーマンスの最適化: 広告決定サーバーが迅速に応答し、ピークトラフィック量を処理するように設定します。

  • 適切なエラー処理を実装する: 広告を挿入できない場合に広告時間枠を埋めるようにスレートコンテンツを設定します。

  • 広告挿入メトリクスのモニタリング: CloudWatch アラームを設定して、広告スキップの問題を早期に検出します。

  • 徹底的にテストする: さまざまなデバイスやネットワーク条件にわたって広告挿入ワークフローを検証します。

  • フォールバック戦略を実装する: プライマリ広告ソースが失敗した場合のバックアップ広告ソースまたはデフォルト広告を設定します。

広告スキップ問題のトラブルシューティングの詳細については、以下の関連トピックを参照してください。