Home 技術記事 スケールマニフェスト操作によって何百万人もの人々と個人的になる方法
Applications

スケールマニフェスト操作によって何百万人もの人々と個人的になる方法

About The Author

Outline

パーソナライズされた視聴体験を1対1レベルで実現することで、テレビの視聴体験は一変しています。 視聴者は、一つのサイズではなく、視聴者のデバイスタイプ、場所、履歴、人口統計などのデータに基づいて、ターゲットを絞った関連性の高い広告、カスタマイズされたコンテンツ、新しいプログラムの推奨事項、正確なDRM/ブラックアウト管理を取得できます。

しかし、パーソナライズされた動画ストリームを数百万人の視聴者に配信することは、特にスポーツなどのライブ番組では、野球のサイクルに挑戦するのと同じくらい困難です。 キックオフ、残業、試合終了時など、必見の瞬間に視聴者のボリュームが数十万にも膨らみます。 パーソナライゼーションをサポートするためのインフラストラクチャには、適応性と拡張性が十分ではないとします。 その場合、パーソナライズされたエクスペリエンスはゲームオーバーとなり、OTTの世界ではビジネス全体がリスクにさらされる可能性があります。

パーソナライゼーションにおけるマニフェストサーバの中心的役割

OTTパーソナライゼーションは 、マニフェストサーバーのパフォーマンスに依存して、コンテンツ、広告、再生指示の独自のプレイリストを生成します。 マニフェストサーバは、次の依存関係と競合する必要があります。

  • 広告サーバーのレイテンシ ー—広告サーバーとの通信によってレイテンシーが増加する可能性があります。これは、特に複数のホップが関係する場合にワークフローに考慮する必要があります。
  • 収益化/レポーティング —広告が再生されたら、広告インプレッションを測定して収益化を可能にするために、ビーコンを広告サーバーに送信する必要があります。
  • インターネットのステートレスな側面 —パーソナライズされたマニフェストが大規模に機能するためには、視聴者ごとに複数のリクエストにわたってステートを維持する必要があります。
  • DRM/認証 :マニフェストサーバは、デジタル著作権管理(DRM)、セッションレベルの暗号化、および認証に関するタブを保持する必要があります。
  • ブラックアウト/コンテンツの権利と制限 —ユーザーの場所によっては、ストリーミングコンテンツにさまざまなブラックアウトルールが適用される場合があります。これらはすべて正確に管理する必要があります。
  • コンテンツの推奨事項—オンライン視聴者は、ユーザーがコンテンツ を把握し、ユーザーに合わせて推奨事項をカスタマイズして、検索と発見のプロセスを支援することを期待しています。
  • コンテンツのローカリゼーション —主要なイベントでは、オーディオトラック、クローズドキャプション、字幕など、適切な地域のバリエーションをユーザーに提供することが重要です。

リアルタイムでのストリームのパーソナライズ

このブログシリーズの1の一部で説明したように、ライブまたはVODフィードは、Slicerソフトウェアアプリケーションによって取り込み、エンコード、およびパッケージ化されます。 広告境界を挿入して、コンテンツ所有者が視聴者の体験をカスタマイズできるようにすることができます。 広告がインジェストされると、クラウドで実行されているSlicerを介して処理され、よりブロードキャストのような再生体験が得られます。

スライサーがライブストリームまたはVODストリームの取り込みを開始すると、バックエンドインフラストラクチャと継続的に通信し、利用可能なセグメント数についてデータベースを更新し続けます。 マニフェストサーバーは、そのデータを使用して、各ビューアーのエクスペリエンスをパーソナライズします。 プレーヤーがストリームを要求すると、マニフェストサーバは、マニフェストファイルにリストするビデオセグメントとオーディオセグメントを決定します。マニフェストファイルはプレイリストとして機能します。 マニフェストをユーザーレベルで動的に変更またはカスタマイズする機能により、表示エクスペリエンスをカスタマイズできます。 ライブビデオの場合、新しいマニフェストが数秒ごとに要求されるため、表示条件の変化に応じてマニフェストサーバーによって動的に調整が適用されます。

ビデオストリームのパーソナライズにおけるマニフェストサーバの中心的役割

上記のように、マニフェストパーソナライゼーションの中核はコミュニケーションです。 ほとんどのOTTビジネス要件では、ターゲットを絞ったパーソナライズされた広告をリアルタイムで提供するための広告サーバーとの通信を意味します。 視聴者のIPアドレス、位置情報、デバイスタイプなどの個々のデータは、厳密なPIIルールと規制を遵守しながら、基本的にキャプチャできるすべての情報であり、広告決定システムに提供されます。 このソリューションは、ライブ配信中に広告を配信するときに視聴者に関連するものを学習するのに十分な堅牢性を備えています。 また、このシステムは、ユーザーごとのブラックアウト制限やコンテンツ権利の管理などの課題に対応するのに十分な堅牢性を備え、コンテンツの推奨やその他のローカライズなどの重要なパーソナライゼーション機能もサポートしています。

拡張可能なマニフェストインフラストラクチャの設計

当社の動画プラットフォームでは、マニフェストサーバーは、各視聴者のカスタムストリーミングマニフェストを生成する責任があります。 また、コンテンツの制限や推奨事項など、上記の他の要件にも注意する必要があります。 このモデルでは、統合されたストリームを1つ送信します。つまり、クライアントがストリームの途中で広告がロードされるのを待っている間、「バッファホイール」の問題はありません。

レジリエントなマニフェスト配信システムを構築するために、世界中のさまざまな地域に分散したマニフェスト生成サーバーのクラスターをクラウドに維持しています。 たとえば、米国では、これらのサーバーは5つの地域に分けられています。 米国に拠点を置くプレイヤーから新しいストリームのリクエストが届くと、そのリクエストは米国のゾーンの1つにランダムにルーティングされます。

「雷を鳴らす群れ」の課題

これは直感に反するように思われるかもしれませんが、カスケード障害モードを防ぐために行われます。 米国の視聴者の大多数は、国の東部に位置しています。 もし、それらすべてを最も近いゾーンにルーティングして、クラウドプロバイダーがその地域で障害を経験した場合、視聴者の大多数がその障害を経験することになります。 問題をさらに複雑にすると、視聴者全員がストリームを更新し、視聴者を次に最も近いヘルシーゾーンに誘導している場合、障害ゾーンからのすべての視聴者が次に近いゾーンにDogpileするという「Thundering Herd」問題が発生することになります。 予期しないトラフィックの急増により、新しいゾーン内のシステムが追加の需要に合わせて拡張できるようになるまで、二次的な障害が発生する可能性があります。

代わりに、米国の視聴者をランダムに分散することで、初期障害の影響を軽減し、フェールオーバートラフィックを他の正常なゾーンに均等に分散できます。

ストリーミングプラットフォームでは、マニフェストサーバーの負荷をゾーン間で分散します。 これにより、視聴者の急増時に特定のゾーンが過負荷になるのを防ぐことができます。特に、フェイルオーバー中に視聴者が突然隣接するゾーンに移動した場合はなおさらです。

各ゾーンには、関連するセッションデータを格納する専用の個別のデータストアがあります。 ビューアがゾーンにルーティングされたら、そのビューアのセッションを作成し、ゾーンのセッションクラスタに保存します。 セッションは、ビューアに関するデータと、そのビューアのセッションをどのようにカスタマイズしたいかについて、お客様が提供したパラメータの束です。 インターネットのステートレスな性質がもたらす課題を克服するために、マニフェストサーバーは、プレーヤーに返されるマニフェストに含まれる各セッションのURLを構築します。 プレーヤーからの後続のリクエストは、視聴者のセッションが作成されて保存されたゾーンに直接ルーティングされます(他のゾーンの1つにランダムにルーティングされるのではありません)。

以下の3つのグラフに示されているように、オーディエンスの規模や、オーディエンスがローカルであるか地理的に分散しているかに応じて、イベントごとにさまざまな要件があります。 ライブイベントをサポートするために放送局が直面するインフラストラクチャの課題を示す3つの例を見てみましょう。

最初のシナリオでは、食べ物を食べるコンテストを特集します(はい、これらのうちの1つをライブ配信しました)。これは、分散しているが少数の視聴者のサイズを示しているためです。 食を食べるコンテストが主流になる日が来るかもしれませんが、今のところ、幅広い地域で少数の視聴者を引き付けるニッチなイベントです。 マニフェストサーバの負荷は、複数のゾーンとマニフェストサーバクラスタに簡単に分散されます。 ここでは、各地域に適した広告を簡単に挿入し、権利や停電を管理できるようにすることで、パーソナライゼーションの価値が明らかになります。

このシナリオは、同じ地域に多数の視聴者がいるテキサス州のフットボール選手権ではかなり変化します。 これにはいくつかの方法があります。 上記で説明したように、視聴者のエクスペリエンスに影響を与えることなく、すぐに地理的に離れたゾーンにあるマニフェストサーバーに視聴者を割り当てることができることがわかりました。 さらに、各ゾーンの視聴レベルを監視し、必要に応じてゾーンごとにマニフェスト生成サーバーを自動的にスピンアップするシステムを備えています。

NBAファイナルなどの大規模なイベントでは、予想される視聴者数に基づいて事前にスケールすることがあります。 それでも、自動スケーリングシステムが100万人近くの視聴者を処理したイベントが複数あり、予熱を必要としませんでした。 スケーラビリティの向上に加えて、ゾーンに依存しない方法でマニフェストサーバ全体に負荷を瞬時に分散できるため、ネットワーク全体の信頼性と冗長性が大幅に向上します。

プレーヤーのリクエストと広告ビーコン

業界全体でさまざまな変化やトレンドが発生しているため、クラウドのスケーリングがこれまで以上に重要になっています。 主な要因は、プレーヤーからの要求の間隔が短くなることです。 当社の標準的なライブリニア8秒「What’s next」プレイヤーリクエストは、5秒に駆動され、低レイテンシが重要なストリームでは、2秒ごとに短縮されます。 これは、サーバが(8秒間隔と比較して2秒間隔で)4倍の要求に応答する必要があるため、CPU使用率に大きな影響を与えます。 さらに、エラーを回避するために、ブラックアウトとコンテンツの推奨事項も以前より頻繁にチェックする必要があります。

同様に、アドテックの世界はより複雑で要求の厳しいものになっています。 ストリームに挿入される広告ごとに、広告サーバーには少なくとも5つのビーコンがあり、レポート作成のために使用されます。 サーバーサイド広告挿入(SSAI)ソリューションは、 顧客が広告主から支払いを受けるように、ビーコンを確実に送信するために必要です。 5つのビーコンが最小ですが、さらに多くのビーコンが存在する可能性があります。 実際には、1つの広告に30から100までのビーコンがレポート対象になっているケースがあります。

さらに、広告サーバーの複雑なネットワークは、顧客のキャンペーンでより一般的になっています。 複数のアドネットワークホップが発生すると、遅延の問題が発生する可能性があります。 たとえば、ネットワーク#1は「この休憩中の広告のリストです」と言っても、その休憩中の広告#2が別のネットワークへのリクエストを必要とすることを検出するだけです。 AD#3ではさらに2つのホップが追加されています。

上記の例では、広告中断はCPU使用率を2倍または3倍にすることができます。 ライブビデオプレーヤーのリクエストは、この要因を10〜30%複雑にする可能性があります。

今後の展開-マイクロサービスとスケーラビリティ

複雑さが増すにつれて、マニフェストサーバーで以前処理されていたさまざまなワークロードをより小さなマイクロサービスに分離することが、私たちが取ってきたステップの1つです。 最初のステップは、広告サーバーの通信とビーコンを自社のサービスに移行し、広告サーバーの遅延という課題に対処することです。 この広告プロキシサービスは、今後のブログ記事でさらに詳しく説明するいくつかの高度な機能を提供します。

今後も、マニフェストサーバーからより多くの作業を削除し、よりターゲットを絞ったスケーラビリティアプローチを提供するために、他のマイクロサービスの開発を継続していきます。 まもなく、複数のクラウドプロバイダーからゾーンを追加して、1つのクラウドプロバイダーの障害に対する復元力を高めます。

スケーラブルなSSAIとマイクロサービスを組み合わせることで、 サーバーコスト、コードベースの構造、および広告トラフィックに固有のその他の特性を最適化できます。 さらに、広告サーバーのレイテンシー、ブラックアウトの制限、収益化など、いくつかの重要な課題を克服できます。 同時に、処理の負荷を複数のゾーンに分散させることで、当社のライブ・ビデオ・ストリーミング・サービスは広範囲に拡張し、主要な課題を克服することができます。これにより、配信ネットワークに負担をかけることなく、何百万ものパーソナライズされたストリームを同時に確実に配信することができます。