隨選影片(VOD)廣告插入程式包含廣告解析、廣告插入和廣告播放階段。 對於廣告追蹤,TVSDK必須通知遠端追蹤伺服器每個廣告的播放進度。 發生意外情況時,TVSDK會採取適當的動作。
TVSDK會聯絡廣告傳送服務(例如Adobe Primetime ad decisioning),並嘗試取得與廣告視訊資料流對應的主要播放清單檔案。 在廣告解析階段中,TVSDK會向遠端廣告傳送伺服器發出HTTP呼叫,並剖析伺服器的回應。
TVSDK支援下列型別的廣告提供者:
中繼資料廣告提供者
廣告資料會以純文字JSON檔案編碼。
Primetime廣告決策廣告提供者
TVSDK會傳送要求(包括一組目標定位引數和資產識別碼)至Primetime ad decisioningback-end伺服器。 Primetime ad decisioningresponse會以包含所需廣告資訊的同步化多媒體整合語言(SMIL)檔案回應。
自訂廣告標籤提供者
處理從伺服器端將廣告燒錄到串流中的情況。 TVSDK不會執行實際的廣告插入,但需要追蹤插入伺服器端的廣告。 此提供者會設定TVSDK用來執行廣告追蹤的廣告標籤。
在此階段可能會發生下列其中一種容錯移轉情況:
無法擷取資料,例如,因為缺乏連線或伺服器端錯誤,例如找不到資源等。
已擷取資料,但格式無效。
例如,發生此狀況可能是因為剖析傳入資料失敗。
TVSDK會發出有關錯誤的警告通知,並繼續處理。
TVSDK會將替代內容(廣告)插入與主要內容對應的時間軸中。
當廣告解決階段完成時,TVSDK會擁有分組到廣告插播的廣告資源有序清單。 每個廣告插播會使用以毫秒為單位的開始時間值,定位在主要內容時間軸上。 廣告插播中的每個廣告都有duration屬性,也以ms表示。 廣告插播中的廣告會被鏈結,因此,廣告插播的持續時間等於個別構成廣告的持續時間總和。
在此階段中可能會發生容錯移轉,而廣告插入期間的時間表上可能會發生衝突。 對於廣告插播開始時間/持續時間值的特定組合,廣告區段可能會重疊。 當廣告插播的最後部分與下一個廣告插播中第一個廣告的開始相交時,就會發生這種重疊。 在這些情況下,TVSDK會捨棄稍後的廣告插播,並繼續廣告插入程式,並使用清單中的下一個專案,直到插入或捨棄所有廣告插播為止。
TVSDK會發出有關錯誤的警告通知,並繼續處理。
TVSDK會下載廣告區段並在裝置的畫面上轉譯它們。
現在,TVSDK已解析廣告、將廣告定位在時間軸上,並嘗試在畫面上轉譯內容。
下列主要錯誤類別可能發生在下列階段中:
TVSDK會將觸發的事件轉送至您的應用程式,包括於以下情況觸發的通知事件:
發生容錯移轉。
由於容錯移轉演演算法,設定檔已變更。
已考慮所有容錯移轉選項,且無法自動執行其他動作。
您的應用程式需要採取適當的動作。
無論是否發生錯誤,TVSDK都會呼叫 onAdBreakComplete
針對每個 onAdBreakStart
和 onAdComplete
代表每 onAdStart
. 但是,如果區段無法下載,則時間表可能會出現間隙。 當間隙夠大時,播放點位置和報告的廣告進度中的值可能會顯示不連續。