視頻點播(VOD)廣告插入過程由廣告解析、廣告插入和廣告播放階段組成。 對於廣告跟蹤,TVSDK必須通知遠程跟蹤伺服器每個廣告的播放進度。 當出現意外情況時,TVSDK會採取適當的操作。
TVSDK聯繫廣告傳遞服務,例如Adobe Primetime廣告決定,並嘗試獲取與廣告的視頻流對應的主播放清單檔案。 在廣告解析階段,TVSDK對遠程廣告傳遞伺服器進行HTTP調用並解析伺服器的響應。
TVSDK支援以下類型的廣告提供程式:
元資料廣告提供程式
廣告資料以純文字檔案JSON檔案編碼。
黃金時段廣告決策廣告提供商
TVSDK將包括一組目標參數和資產標識號的請求發送到黃金時段廣告決策後端伺服器。 黃金時段廣告決策用包含所需廣告資訊的同步多媒體整合語言(SMIL)文檔響應。
自定義廣告標籤提供程式
處理從伺服器端將廣告刻錄到流中的情況。 TVSDK不執行實際廣告插入,但需要跟蹤在伺服器端插入的廣告。 此提供程式設定TVSDK用於執行廣告跟蹤的廣告標籤。
在此階段中可能發生以下故障切換情況之一:
無法檢索資料,因為例如,缺少連接或伺服器端錯誤,如找不到資源等。
已檢索資料,但格式無效。
這可能是因為(例如)入站資料分析失敗。
TVSDK發出有關該錯誤的警告通知並繼續處理。
TVSDK將備用內容(廣告)插入與主內容對應的時間軸中。
當廣告解析階段完成時,TVSDK具有被分組為廣告分段的廣告資源的有序清單。 每個廣告中斷通過使用以毫秒(ms)表示的開始時間值定位在主內容時間線上。 廣告片段中的每個廣告都具有持續時間屬性,該屬性也以ms表示。 廣告片段中的廣告被連結,因此,廣告片段的持續時間等於各個合成廣告的持續時間之和。
在此階段中可能發生故障切換,在廣告插入期間可能在時間線上發生衝突。 對於廣告中斷開始時間/持續時間值的特定組合,廣告段可能會重疊。 當廣告中斷的最後部分與下一個廣告中斷中第一個廣告的開始相交時,會發生這種重疊。 在這些情況下,TVSDK放棄以後的廣告中斷,並繼續廣告插入過程,並在清單中的下一項中繼續,直到所有廣告中斷都被插入或丟棄。
TVSDK發出有關該錯誤的警告通知並繼續處理。
TVSDK下載廣告段並在設備螢幕上呈現這些廣告段。
現在,TVSDK已解析廣告,將廣告定位在時間軸上,並嘗試在螢幕上呈現內容。
以下主要錯誤類可能在以下階段發生:
TVSDK將觸發的事件轉發到您的應用程式,包括在以下情況下觸發的通知事件:
發生故障轉移。
配置檔案因故障轉移算法而更改。
已考慮所有故障轉移選項,並且不能自動執行其他操作。
您的應用程式需要採取相應的操作。
無論是否發生錯誤,TVSDK調用 onAdBreakComplete
每 onAdBreakStart
和 onAdComplete
每 onAdStart
。 但是,如果無法下載段,則時間線中可能存在間隙。 當間隙足夠大時,播放頭位置值和所報告的廣告進度值可能會出現不連續。