イベントの順序の制御 controlling-the-order-of-events

ストリーミングビデオトラッキングは時間に大きく依存する操作で、メディアコレクション API トラッキング呼び出しがバックエンドに到達する順序は乱れることがあります。 このような場合、バックエンドは、playerTime オブジェクトで指定されたタイムスタンプに基づいてイベントをキューに追加したり、並べ替えたりするよう試みます。 この問題は、いくつかの制限によって発生します。 現在のところ、順不同の呼び出し間で遅延が 1 秒を超えると、並べ替えに失敗することがあります。 今後の更新では、「許容可能な遅延時間」を最適化して設定できるようになる可能性があります。

順不同のイベントの例

イベントがネットワークを通過すると、順不同のイベントが発生し、遅延の原因になる場合があります。

例えば、adBreakStart イベントの後に adStart イベントを送信できます。 これは、広告の時間内に広告を開始する必要があるため、一般的な使用例です。

広告の準備が整い、バッファーが不要な場合、ほぼ瞬時に両方のイベントが発生し、両方のイベントの playerTime.ts は非常に近づきますが、等しくなることはありません。

並べ替えアルゴリズムはどのイベントが最初に発生したかを認識しないため、どのようなイベントでも、イベントの「playerTime.ts」が等しくなることはありません。 2 つの連続したイベントには、少なくとも 1 ミリ秒のタイムスタンプの違いがあるはずです。

ネットワーク呼び出しの発生時には、両方のイベントが非常に近い時間で発生するので、到着時の順序が正しくなくなる場合があります。 この例では、adStart イベントが adBreakStart イベントの前に到達します。

イベントの時間枠(5 秒または最大 10 個のイベント)があります。 イベントは、処理パイプラインに送信する前にバッファリングされます。 条件が満たされた場合 — 5 秒を経過したか 10 個を超えるイベントが受信されると、playerTime.ts に基づいてイベントが並べ替えられ、新しい順序で処理パイプラインに送信されます。

IMPORTANT
処理パイプラインに直ちに送信される例外イベントがあります。これは sessionStart イベントです。
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb