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