SCTE-35マーカー解析とマルチプラットフォームプレイヤー統合によるクライアントサイド広告挿入 (CSAI)
あるビデオストリーミングプラットフォームは、ウェブ、モバイル、コネクテッドTVアプリ全体でクライアントサイド広告挿入 (CSAI) を実装する必要がありました。これにより、サーバーサイド挿入では提供できない、完全な広告インタラクションサポート(クリック可能なオーバーレイ、コンパニオンバナー、スキップボタン)を備えた、パーソナライズされたデバイスレベルの広告体験が可能になります。
プロジェクトを相談する
課題
このプラットフォームは以前、SSAI(サーバーサイド広告挿入)のみを使用していましたが、収益化はうまくいっていたものの、インタラクティブな広告体験には大きな制約がありました。
- SSAIによって結合された広告は、クリック可能なオーバーレイ、コンパニオンバナー、またはインタラクティブな広告ユニットをサポートできませんでした
- プレミアム広告購入者が要求するクライアントサイドの広告イベント(クォータイル進行、ビューアビリティ、クリックスルー)を追跡する機能がありませんでした
- コネクテッドTVプラットフォーム(Roku, Fire TV, Apple TV)は、ネイティブ広告フレームワークと認証要件のためにCSAIを期待していました
- HLS/DASHマニフェスト内のSCTE-35マーカーはクライアント側で解析される必要がありましたが、各player SDKはキューイベントを異なる方法で処理しました
- アドポッド管理(複数の広告で複数スロットの広告ブレイクを埋めること)にはクライアントサイドのオーケストレーションが必要でした
- ウェブプラットフォームでの収益を保護するために、広告ブロッカーの検出とフォールバックロジックが必要でした
- コンテンツバッファを中断せずに広告をプリロードするには、慎重なプレイヤーのライフサイクル管理が必要でした
私たちのソリューション
当社は、HLS/DASHマニフェストからSCTE-35マーカーを解析し、VAST/VMAP広告サーバーと通信し、ウェブ (Video.js/Shaka)、iOS (AVPlayer)、Android (ExoPlayer)、およびコネクテッドTVプレイヤー全体で広告再生ライフサイクルを管理する、統合された広告オーケストレーションレイヤーを備えたクロスプラットフォームCSAIフレームワークを構築しました。
アーキテクチャ
- コンテンツ配信: AWS MediaPackage + CloudFrontを介したSCTE-35マーカー付きのHLS/DASHストリーム
- 広告決定サーバー: VAST 4.2およびVMAPをサポートするGoogle Ad Manager (GAM) / SpotX
- ウェブプレイヤー: カスタムSCTE-35キューパーサーとGoogle IMA SDK統合を備えたVideo.js
- iOSプレイヤー:
AVDateRangeMetadataGroupリスナーとIMA iOS SDKを備えたAVPlayer - Androidプレイヤー:
MetadataOutputリスナーとIMA Android SDKを備えたExoPlayer - コネクテッドTV: 広告フレームワークアダプターを備えたプラットフォームネイティブプレイヤー(Roku RAF, Fire TV IMA, Apple TV AVKit)
- 広告分析: インプレッション、クォータイル、完了、クリック、ビューアビリティ追跡のためのカスタムイベントパイプライン
- フォールバック: 広告のフィルが利用できない場合、または広告ブロッカーが検出された場合のスレート/ハウス広告配信
SCTE-35 クライアントサイド解析
HLSマニフェストマーカー
SCTE-35信号は、クライアントによって解析される2つの形式でHLSマニフェストに表示されます。
EXT-X-DATERANGE (HLS v7+)- プレイヤーは
SCTE35-OUTおよびSCTE35-IN属性を持つ#EXT-X-DATERANGEタグをリッスンします - 属性には、広告ブレイクの長さを表す
PLANNED-DURATIONと、イベント相関のためのIDが含まれます - 現代のプレイヤー(AVPlayer, ExoPlayer, Shaka)に推奨されるフォーマット
#EXT-X-CUE-OUT:DURATION=は広告ブレイクの開始を示します#EXT-X-CUE-INはコンテンツへの復帰を示します- 古いプレイヤーやエンコーダーとの下位互換性のためにサポートされています
DASHマニフェストマーカー
- SCTE-35信号は、
schemeIdUri="urn:scte:scte35:2013:xml"を持つDASH MPD内の要素として表示されます 要素には、presentationTime、duration、およびbase64エンコードされたSCTE-35バイナリペイロードが含まれます- Shaka PlayerとExoPlayerは、イベントリスナーAPIを介してこれらをネイティブに解析します
マーカー処理フロー
- 検出 — プレイヤーのメタデータリスナーがマニフェスト解析中にSCTE-35キューイベントを検出
- 抽出 — マーカーからブレイク期間、イベントID、およびセグメンテーションタイプを抽出
- 広告リクエスト — ターゲティングパラメータ(コンテンツID、ジャンル、デバイスタイプ、ユーザーセグメント、地域)とともにVAST/VMAPリクエストを広告決定サーバーに送信
- ポッド計画 — 広告レスポンスを解析してアドポッド(ブレイク期間を埋める広告クリエイティブの順序付きリスト)を構築
- プリロード — 広告ブレイク開始時の遅延をなくすため、コンテンツ再生中に広告クリエイティブをプリロード
- 一時停止と切り替え — キューポイントでコンテンツ再生を一時停止し、プレイヤーを広告再生に切り替え
- 広告再生 — クォータイル追跡、コンパニオンバナー表示、クリックスルー処理とともに広告を順次再生
- 再開 — ポッド完了後、キューポイントの直後のフレームからコンテンツ再生を再開
プラットフォーム固有の実装
Web (Video.js + IMA SDK)
- カスタムVideo.jsプラグインが
textTrackキュー変更イベントを介して#EXT-X-DATERANGEメタデータをインターセプトします - Google IMA HTML5 SDKがVAST広告リクエスト、広告再生、コンパニオンレンダリングを管理します
- クリックスルーとスキップボタンをサポートするために、ビデオ要素の上に広告コンテナオーバーレイを配置
- カナリアリクエストによる広告ブロッカー検出 — 検出時にはハウス広告またはコンテンツ再開にフォールバック
- VMAPまたは手動のキューポイントスケジューリングによるプレロール、ミッドロール、ポストロールのサポート
iOS (AVPlayer + IMA SDK)
- SCTE-35キューの検出には
AVPlayerItem.navigationMarkerGroupsとAVDateRangeMetadataGroupを使用 AVPlayerItemMetadataOutputデリゲートは、解析されたタイミングとペイロードとともに各キューイベントで発火します- Google IMA iOS SDKは、別の
AVPlayerインスタンスでVASTリクエストと広告再生を処理します - プラットフォームの広告ポリシーに従い、広告ブレイク中にPicture-in-Picture (PiP) を一時停止
- バックグラウンドオーディオを処理 — バックグラウンドモードでは広告は再生されません
Android (ExoPlayer + IMA SDK)
MetadataOutputを持つPlayer.Listener.onMetadata()は、HLS/DASHからのSCTE-35イベントを捕捉します- Google IMA Android SDKはExoPlayerの
ImaAdsLoader拡張機能を介して統合されています - 広告再生には、コンテンツバッファを汚染しないように別の
MediaSourceを使用します - Activityライフサイクルを処理 — 構成変更やバックグラウンド化をまたいで広告の状態が保持されます
- Android TVとモバイルは、UIレイヤーの適応により同じ広告ロジックを共有します
コネクテッドTVプラットフォーム
Roku (RAF — Roku Ad Framework)- RokuのネイティブRAFライブラリは、HLSマニフェストからSCTE-35マーカーを直接解析します
- VASTエンドポイントで構成された
RAF.setAdUrl(); RAFは広告リクエスト、ポッド構築、および再生を処理します - RAFの
renderStitchedAdおよびrenderTrackingEventコールバックを介したコンパニオン広告のサポート - Roku認証にはRAFの使用が必要 — カスタム広告プレイヤーはレビュー時に却下されます
- Fire TVのLeanback UIに適合したAndroid ExoPlayer + IMA SDK実装を使用
- 広告オーバーレイ上のスキップボタンおよび「詳細はこちら」クリックスルーのためのD-padナビゲーション
- VASTリクエストでの広告ターゲティングにはFire TV Ad IDを使用
- ネイティブ広告ブレイクUIインジケーター用の
interstitialTimeRangesを備えたAVPlayerViewController AVPlayerItemMetadataCollectorを介して解析されるSCTE-35キュー- クリーンなコンテンツ/広告分離のために、別の
AVQueuePlayerで管理される広告再生 - インタラクティブな広告要素のためのtvOSリモートクリックハンドラー
アドポッド管理
- ポッドフィル — 複数のVAST広告を組み合わせて、指定されたブレイク期間を埋めます
- ウォーターフォール — プライマリアドサーバーがフィルなしを返した場合、セカンダリ/ターシャリデマンドソースを順次クエリします
- 期間適合 — ポッドビルダーは、ブレイク期間内(±0.5秒の許容範囲)に収まる広告の組み合わせを選択します
- 重複排除 — 同じ広告クリエイティブが1つのポッド内で2回表示されないようにします
- フリークエンシーキャッピング — 広告疲れを避けるため、ユーザーごと、セッションごとにクライアントサイドで上限を適用します
- バンパリング — 短いバンパークリエイティブ(「We'll be right back」/「Welcome back」)でアドポッドを包みます
広告イベント追跡と分析
- 標準VASTイベント —
impression,start,firstQuartile,midpoint,thirdQuartile,complete,skip,clickThrough - ビューアビリティ — 広告ビューポートの可視性と期間しきい値に基づいてMOAT/IASビューアビリティピクセルが発火されます
- カスタムイベント — アプリレベルイベント(広告ブレイク開始/終了、ポッドフィルレート、プリロードタイミング、フォールバックトリガー)
- サーバーパイプライン — クライアントは軽量イベントコレクターにイベントを発火し、それがGAM、MOAT、および社内分析ウェアハウスに分散されます
- 調整 — 不一致検出のためのクライアントサイドイベントとのサーバーサイドログ調整
広告ブロッカー処理 (ウェブ)
- 検出 — 既知の広告ドメインへのカナリアVASTリクエスト; タイムアウトまたはブロックは広告ブロッカーを示します
- フォールバック戦略 — ファーストパーティCDNドメインからハウス広告またはプロモーション予告編を配信
- コンテンツゲーティング — オプションのソフトゲート: コンテンツ再生前にユーザーにサイトをホワイトリストに追加するよう促します
- 分析 — ブラウザ、地域、ページごとに広告ブロッカー検出率を追跡
主要機能
- クロスプラットフォームCSAI — ウェブ、iOS、Android、Roku、Fire TV、Apple TV全体での統合された広告挿入
- SCTE-35クライアント解析 — HLS
EXT-X-DATERANGE,CUE-OUT/IN, およびDASHEventStream解析 - インタラクティブ広告 — すべてのプラットフォームでクリック可能なオーバーレイ、コンパニオンバナー、スキップボタン
- アドポッドオーケストレーション — ウォーターフォール、期間適合、重複排除による複数広告ブレイクのフィル
- プリロード — ゼロレイテンシーの広告トランジションのために、コンテンツ再生中に広告クリエイティブをプリロード
- ビューアビリティ追跡 — プレミアム広告購入者のビューアビリティ要件を満たすためのMOAT/IAS統合
- コネクテッドTVコンプライアンス — 認証要件を満たすRoku RAF, Fire TV IMA, およびApple TV AVKit統合
- 広告ブロッカー耐性 — ウェブ上での検出とファーストパーティハウス広告へのフォールバック
成果
技術スタック
caseStudyDetail.more ケーススタディ
その他の技術実装事例をご覧ください
SCTE-35アドマーカーシグナリング&メディアトレーラー挿入パイプライン
あるストリーミングメディア企業は、SCTE-35アドマーカーをライブおよびVODストリームに挿入し、プロモーション用トレーラー(プレロール、ミッドロール、ポストロール)を正確なタイミングで挿入できる堅牢な自動化パイプラインを必要としていました。これにより、FASTチャンネル、ライブイベント、オンデマンドコンテンツライブラリ全体での収益化が可能になります。
AWS Media Services による SRT 経由の FAST Channel ストリーミング
あるメディア企業は、Secure Reliable Transport (SRT) プロトコルを使用して、FAST Channel 向けの信頼性の高い低遅延の配信フィードを確立する必要がありました。これにより、予測不能なインターネット接続を介して、リモートスタジオ、クラウドプレイアウトシステム、およびシンジケーションパートナーから高品質なコンテンツを取り込むことが可能になります。
よくある質問
MicrocosmWorksは、base64エンコードされたSCTE-35 splice_info_sectionデータを含むEXT-X-DATERANGEタグを抽出し、スプライスコマンドをデコードし、適切なブレイク期間でVAST/VMAP広告サーバーへの広告決定リクエストをトリガーするマニフェストパーサーを実装しました。このパーサーは、ライブおよびVODマニフェストの両方で、time_signalとsplice_insertの両方のコマンドタイプを処理します。
MicrocosmWorksは、iOS向けのAVPlayer、Android向けのExoPlayer、ウェブ向けのhls.js、そしてRokuおよびFire TV向けのネイティブプレイヤーに対応するプラットフォーム固有のアダプターを備えた、共有の広告再生SDKを構築しました。このSDKは、impession、quartile tracking、completionといった広告のライフサイクルイベントをすべてのプラットフォームで正規化し、再生デバイスに関わらず統合されたレポート作成を保証します。
MicrocosmWorksは、プレーヤーがad serverの応答を最大3秒間待機し、その後デフォルトのスレートを再生するか、次のコンテンツセグメントにスキップするタイムアウトおよびフォールバック戦略を実装しました。SDKはまた、コンテンツ再生中に今後のad breakのVAST応答をプリフェッチし、実際のブレークポイントでの遅延を最小限に抑えます。
MicrocosmWorksは、MOAT、IAS、DoubleVerifyと互換性のあるビューアビリティ検証のためにOpen Measurement SDK (OM SDK) を統合しました。また、トラッキングの実装は、インプレッションカウントとクォータイルイベントのためにIAB VAST 4.2の仕様に準拠しています。システムは、正確な広告完了率レポートのためにIABのVideo Ad Serving Template測定ガイドラインもサポートしています。
MicrocosmWorksは、ad technologyの実装を$30~$50/時間の料金で提供しています。SCTE-35 parsing、VAST/VMAP integration、およびiOS、Android、web、CTV向けのmulti-platform player SDKsを含むフル機能のCSAIシステムは、通常600~900 development hoursを要します。追加のplatform adapterごとに、base implementationに約80~120時間が追加されます。