串流視訊追蹤是高度依賴時間的操作,有時 Media Collection API 追蹤呼叫未依照順序到達後端。在此情況下,後端會嘗試根據 playerTime
物件中提供的時間戳記,將事件加入佇列及重新排序。此操作有一些限制。目前,如果順序錯亂之呼叫間的延遲時間超過一秒,重新排序就可能會失敗。在未來的更新中,「可接受的延遲時間」可能會最佳化和可設定。
當事件通過的網路有時會導致延遲時,就會發生順序錯亂事件。
例如,您可以傳送一個 adBreakStart
事件,然後傳送一個 adStart
事件。這是一個常見的使用案例,因為在廣告插播中需要開始廣告。
如果廣告準備就緒且無需緩衝,則兩個事件幾乎立即發生,且兩個事件的 playerTime.ts
彼此非常接近 - 但它們絕不應該相等。
事件的「playerTime.ts」絕不應該與任何事件相等,因為排序演算法不知道哪個事件先發生。每 2 個連續事件的時間戳記應該相差至少 1 毫秒。
因為這兩個事件在觸發網路呼叫時彼此發生的時間非常接近,所以它們可能會未依順序到達。在此範例中,adStart
事件在 adBreakStart
事件之前到達。
事件會有一個定時時段:5 秒或最多 10 個事件。事件在傳送到處理管道之前會被緩衝。當滿足條件時 - 經過 5 秒或收到超過 10 個事件,事件將根據 playerTime.ts
重新排序,然後以新順序傳送到處理管道。
有一個例外事件會立即傳送到處理管道,即 sessionStart
事件。